Highlights
- Kill from the popup: highlight a session and press
ctrl-x— the list refreshes in place. In windows mode (@session-wizard-windows on),ctrl-xkills just the highlighted window. No new tmux keybinding. (#23, thanks @cgimenes; closes the ask in #16) - Optional preview pane:
set -g @session-wizard-preview onpreviews live pane content for sessions/windows and a directory tree (eza if installed,lsotherwise) for directories. Off by default. (#21, thanks @zykowal) - pre-create-session-hook:
set -g @session-wizard-pre-create-session-hook '<script>'runs before session creation with<session-name> <directory>; print two lines to override them, print nothing to keep them, exit non-zero to abort. Ships withexamples/resolve-session-conflict-hook.shfor same-name/different-directory conflicts. (#20, thanks @mandos; design discussion in #19, thanks @rbelem) - post-create-session-hook:
set -g @session-wizard-post-create-session-hook '<script>'runs only when a session is actually created (never on reuse) — build project layouts automatically. Ships withexamples/project-layout-hook.sh. - Debug logging:
set -g @session-wizard-log-file '<path>'. (#20)
Fixes
- Never-attached sessions (e.g. restored by tmux-resurrect) no longer pile at the top of the list; ordering is by last attach, locale-independent. (#18, thanks @maxbol)
- macOS:
~abbreviation silently never worked with stock BSD grep ("invalid character range"); full-path/short-path session names and the directory list now show~as intended. Note for existing macOS users: sessions created before this fix underfull-path/short-pathmode were named without the~prefix; new sessions for the same directories will use the (correct)~names, so an old session for a directory won't be re-used — kill the old one once and re-create via the wizard. t <path-that-does-not-resolve>with no tmux server running no longer leaks the bootstrap session and a temp directory.- Picker stderr noise suppressed when no tmux server is running.
Development
- The test suite is now safe to run on your machine (isolated tmux socket; works even from inside tmux) and passes on stock macOS.
- The Docker test image is plain Alpine (no Nix required, works on Apple Silicon); the Nix flake remains as a community-maintained dev environment.
- CI (GitHub Actions): shellcheck + full suite on Linux (GNU userland) and macOS (BSD userland) for every PR.
- CONTRIBUTING.md documents the design principles and test workflow.
Compatibility
- All new behaviour is opt-in; defaults unchanged.
- The
ctrl-x: kill sessionhint line requires fzf ≥ 0.64 — the binding works on older fzf; only the hint is hidden.