A cool, opinionated tmux setup for people who keep a lot of terminals open. It replaces a wall of scattered Terminal.app tabs with one organized, persistent, searchable tmux workspace — and gives you a live dashboard of everything running.
It's the tmux-native successor to ~/terminal-manager/tm.py: instead of poking
Terminal.app over AppleScript, it drives the tmux server directly (much faster,
and it can act on panes, not just view them).
~/tmux-manager/install.shIdempotent and safe to re-run. It links the tm* tools into ~/.local/bin,
wires ~/.tmux.conf to source tmux.conf (backing up anything already there),
and preserves your old Terminal.app manager as tm-old. Then open a new terminal
(or source ~/.zshrc). brew install fzf is recommended for the fuzzy pickers.
Check everything with tm doctor.
| Command | What it does |
|---|---|
tm |
Attach/create your workspace (or, inside tmux, open the switcher) |
tm <name> |
Jump to a project session — creates it if missing |
tm pick |
Fuzzy project launcher (scans ~ and ~/Documents) |
tm switch |
Fuzzy switch across every session · window · pane, with live preview |
tm dash |
Full-screen dashboard of every pane everywhere |
tm find |
Fuzzy-search the current pane's scrollback → clipboard |
tm ls |
Pretty session list |
tm save [name] |
Snapshot all sessions/windows/panes/cwd to disk |
tm restore [name] |
Rebuild a saved workspace (survives reboots) |
tm import |
Pull open Terminal.app tabs into tidy per-project sessions |
tm doctor |
Self-check the install |
tm cheatsheet |
Key reference |
A live curses view of every pane across every session, grouped by session, with
per-pane category badges (AI / TEST / GIT / EDIT / JS / PY / OPS), busy ● vs
idle ○ indicators, and a live output preview of the selected pane.
↑↓ jk navigate Enter jump to pane x kill pane
g / G top/bottom / filter X kill window
z zoom , $ rename win/sess n new window
R refresh q quit
prefix Space dashboard prefix | split right
prefix s switch panes prefix - split down
prefix g project picker Alt h/j/k/l move between panes
prefix S / w session/win tree prefix H/J/K/L resize
prefix c new window prefix z zoom
Alt 1..9 go to window N prefix x/X kill pane/window
Shift ←/→ prev/next window prefix e sync typing to all panes
prefix ? cheatsheet prefix r reload config
Copy mode is vi-style: prefix Enter to enter, v select, y yanks straight
to the macOS clipboard (pbcopy), prefix ] pastes.
tm importonce, to fold your current Terminal tabs into sessions.tm saveto snapshot;tm restoreafter a reboot.- Live in one tmux window;
prefix Spacewhenever you need to find or jump to any of your running terminals.
tmux.conf the config (sourced from ~/.tmux.conf)
bin/tm dispatcher CLI
bin/tm-dash the live dashboard (Python/curses)
bin/tm-status fast status-bar segments (git · cwd · battery)
bin/tm-persist save / restore snapshots
bin/tm-import Terminal.app → tmux consolidation
bin/tm-cheatsheet key reference
install.sh installer
State (snapshots, caches) lives in ~/.local/state/tm/.
- No plugin manager, no network needed — everything works offline and renders in Apple Terminal's default font (no nerd font required).
- Prefer nerd-font glyphs? Swap the
⑂/●/↑markers intmux.confandbin/tm-statusfor your preferred icons.