go to mux, (yet) another fuzzy tmux session picker: live sessions, SQLite presets, optional zoxide paths, sticky templates. It help you to jump right into your work, then let tmux do its best on the rest of your workflow.
go install github.com/fm39hz/gotomux@latest
# binary: $(go env GOPATH)/bin/gotomuxgit clone https://github.com/fm39hz/gotomux.git && cd gotomux
make install # or: make build && ./gotomux
make pkg # Arch: dist/*.pkg.tar.zstNeeds: tmux. Optional: zoxide (zoxide query -l).
# adjust path if needed
bind-key C-b display-popup -E -w 80% -h 70% "$HOME/go/bin/gotomux"
bind-key C-e display-popup -E -w 90% -h 90% "$HOME/go/bin/gotomux -e"
bind-key -n C-f run-shell "$HOME/go/bin/gotomux -f >/dev/null 2>&1; tmux display-message 'Froze #{session_name}'"tmux source-file your config.
C-b = picker, C-f = freeze, C-e = edit current session preset (-e defaults to #{session_name} inside tmux).
CLI:
gotomux # interactive picker
gotomux -f [name] # freeze session (arg, else current, else pick)
gotomux -e [name] # edit preset in $EDITOR
gotomux -h # help| Key | Action |
|---|---|
| type | filter (diacritics folded) |
enter |
connect |
ctrl-n / ctrl-p |
next / prev |
ctrl-x |
kill active |
ctrl-f |
freeze → preset |
ctrl-e / ctrl-d |
edit / delete preset |
ctrl-t |
sticky shape from selection |
? / esc |
help / quit |
| Item | Enter |
|---|---|
| Active | attach / switch |
| Preset | load if missing, then attach |
| Create / Zoxide | live → same-name preset → sticky shape @ project root |
State: $XDG_DATA_HOME/gotomux/state.db (presets · shapes · sticky · usage)
Layouts: $XDG_CONFIG_HOME/gotomux/layouts/<id>.json, 1-1 reflect with DB (backup / git / hand-edit)
Local first.
- Picker sources: create · tmux · preset · zoxide
- Freeze / load, sticky templates, rank + accent fold
-
go install/ CI / local Arch package - Remote tmux as one pool (
tmux@host; server: tmux + ssh only) - AUR publish
make help && make testAlso: Bubble Tea, gotmux, modernc sqlite.