A CLI tool that creates preconfigured tmux coding environments.
The following dependencies must be installed before using cde:
| Dependency | Required for | Link |
|---|---|---|
| Go | Building/installing cde |
https://go.dev/dl/ |
| tmux | All modes | https://github.com/tmux/tmux/wiki/Installing |
| Neovim | ide mode |
https://neovim.io/ |
| Claude Code | wtree mode |
https://docs.anthropic.com/en/docs/claude-code |
| lazygit | wtree mode |
https://github.com/jesseduffield/lazygit#installation |
| lazydocker | wtree mode |
https://github.com/jesseduffield/lazydocker#installation |
go install github.com/JohnVicenteAA/cde@latestcde [name] [flags]If no name is given, the current directory name is used.
| Flag | Short | Default | Description |
|---|---|---|---|
--mode |
-m |
ide |
Session mode (ide, wtree) |
--num |
-n |
2 |
Number of claude --worktree panes in wtree mode |
Default mode. Opens a tmux session with nvim and two shell panes.
+----------+----------+
| | |
| nvim | shell |
| +----------+
| | shell |
+----------+----------+
cde # uses current dir name
cde myproject # named session: myproject_ideOpens a tmux session with N Claude Code worktree panes, lazygit, and lazydocker. Requires a git repository.
+--------------------+--------------------+
| claude --worktree | claude --worktree |
+--------------------+--------------------+
| lazygit | lazydocker |
+--------------------+--------------------+
cde -m wtree # 2 claude panes (default)
cde -m wtree -n 4 # 4 claude panesSessions are named {name}_{mode}, with dots replaced by underscores. This allows running both modes side by side:
cde -m ide # session: dirname_ide
cde -m wtree # session: dirname_wtreeIf a session already exists, you'll be prompted to reattach or replace it.
The following .tmux.conf is optional but recommended for a better experience with cde:
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g mouse on
set -g set-titles on
set -g set-titles-string "#{window_name}"
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'