Project architect: @alchemmist
Cli written on Go for saving and restoring tmux sessions lazy. Key features:
--session-sort or --window-sort (by last-used, time, size, name, command, etc.).fzf integration via --fzf-engine (lighter and no dependencies binary, but without full keyboard control and TUI picker); add --windows to pick a specific window instead of a whole session.npm, docker-compose, nvim).Chekout lazy-tmux.xyz for more informaiton about installation and usage!
Just for bulding from source you need to have installed go and cloned this project. After that run:
make build
Binary will compiled in bin/lazy-tmux. For more development options run make help.
[!WARNING] tmux version requirement: lazy-tmux requires tmux 3.6 or tmux 3.6a. Older versions may not work correctly.
lazy-tmux reads an optional TOML config file. It is looked up in this order:
$LAZY_TMUX_CONFIG (explicit path)$XDG_CONFIG_HOME/lazy-tmux/lazy-tmux.toml~/.config/lazy-tmux/lazy-tmux.tomlThe file is optional — a missing file just uses the built-in defaults. Settings are layered: built-in defaults → config file → command-line flags, so a flag always overrides the file for that run.
# ~/.config/lazy-tmux/lazy-tmux.toml — all keys are optional
tmux_bin = "tmux" # tmux binary to use
data_dir = "~/.local/share/lazy-tmux" # where snapshots are stored
save_interval = "5m" # daemon autosave interval (Go duration)
restore_timeout = "5s" # max wait for restored pane commands to start (0 disables)
# Allowlist of commands lazy-tmux may replay on restore, matched by program
# name. Omit the key to restore every command (default). Set it to restore only
# these programs; set it to [] to restore no commands at all.
restore_allowlist = ["nvim", "vim", "htop", "less", "tail", "ssh"]
[scrollback]
enabled = false # capture shell pane scrollback
lines = 5000 # max scrollback lines per pane
—
$ claude mcp add lazy-tmux \
-- python -m otcore.mcp_server <graph>