β¨ Features
- π― Keyboard-driven TUI β browse, create, and kill sessions in seconds
- π YAML workspaces β define sessions, windows, and pane layouts as code
- π Auto-restore β
tm restore brings your workspace back after reboot
- π·οΈ cfg tag β visually distinguish YAML-managed sessions from manual ones
- π¨ Catppuccin Mocha theme β soft pastel status bar, easy on the eyes
- β‘ One-command install β Go, tmux, shell integration, all set up automatically
πΈ Screenshot

π Quick Start
curl -fsSL https://raw.githubusercontent.com/dohwi/tmux-manager/main/install.sh | bash
That's it. This command:
- Installs Go (if missing)
- Builds
tmux-manager from the latest release
- Runs
tm setup β installs tmux (if missing), configures shell integration, status bar, and auto-restore
After installation, just run tm in a new terminal.
π¦ Commands
tm # Launch TUI
tm restore # Restore sessions from YAML
tm restore --dry-run # Preview what would be restored
tm setup # Install symlink and shell integration
tm setup --uninstall # Remove all integration
tm update # Update to the latest release
tm update --check # Check for updates without installing
tm version # Print version
β¨οΈ Keybindings
| Key |
Action |
β β j k |
Navigate sessions |
Enter |
Attach to session |
Ctrl+N |
Create new session |
Ctrl+R |
Rename session |
Ctrl+D |
Delete session |
Ctrl+C |
Quit |
βοΈ Configuration
Workspace definitions go in ~/.config/tmux-manager/sessions/*.yaml.
Single pane
sessions:
monitoring:
windows:
- panes:
- command: htop
Side-by-side
sessions:
dev:
windows:
- panes:
- command: nvim
directory: ~/projects/myapp
- command: lazygit
direction: right
directory: ~/projects/myapp
ββββββββββββββ¬βββββββββββ
β nvim β lazygit β
ββββββββββββββ΄βββββββββββ
Complex layout
sessions:
dev:
windows:
- panes:
- command: nvim
directory: ~/projects/myapp
- command: lazygit
direction: right
directory: ~/projects/myapp
- command: npm run dev
direction: down
directory: ~/projects/myapp
ββββββββββββββ¬βββββββββββ
β β lazygit β
β nvim ββββββββββββ€
β β npm run β
β β dev β
ββββββββββββββ΄βββββββββββ
Multi-window
sessions:
myapp:
windows:
- name: code
panes:
- command: nvim
directory: ~/projects/myapp
- command: lazygit
direction: right
directory: ~/projects/myapp
- name: infra
panes:
- command: docker-compose up
directory: ~/projects/myapp
- command: docker logs -f
direction: down
directory: ~/projects/myapp
Multiple sessions
sessions:
dev:
windows:
- panes:
- command: nvim
directory: ~/projects/myapp
- command: lazygit
direction: right
db:
windows:
- panes:
- command: psql myapp
directory: ~/projects/myapp
Field Reference
| Field |
Required |
Description |
sessions |
β
|
Map of session names to window definitions |
sessions[].windows |
|
Window list (default: one empty window) |
sessions[].windows[].name |
|
Window tab name |
sessions[].windows[].panes |
|
Pane layout within the window |
panes[].command |
|
Command to run in the pane |
panes[].directory |
|
Working directory (~/ supported) |
panes[].name |
|
Pane title |
panes[].direction |
|
Split direction: right or down (omit for first pane) |
π·οΈ cfg Tag
YAML-managed sessions appear with a cfg label in the TUI, so you can tell them apart from manually created ones.
β good-giraffe-drawing
detached
β myapp-dev
1 windows cfg
β tmux-manager
attached cfg
π Auto-Restore
tm setup adds this to ~/.profile:
tm restore 2>/dev/null
After a reboot, SSH login automatically restores your YAML-defined sessions. Existing sessions are skipped (idempotent).
| Path |
Purpose |
~/.local/bin/tm |
Symlink to the binary |
~/.zshrc |
nocorrect tm alias |
~/.profile |
tm restore for auto-restore on login |
~/.config/tmux-manager/ |
Config directory |
~/.config/tmux-manager/sessions/ |
YAML workspace definitions |
~/.config/tmux-manager/tmux.conf |
Catppuccin Mocha status bar + keybindings |
~/.tmux.conf |
Sources tmux-manager config |
π Requirements
- tmux β₯ 3.2 (auto-installed by
tm setup)
- Go β₯ 1.24 (auto-installed by install script)
- Linux or macOS
π€ Contributing
See CONTRIBUTING.md for guidelines. Issues and pull requests welcome.
π License
MIT Β© 2024β2026 dohwi