A Rust terminal workspace that runs coding agents in persistent panes, tracks which ones are working, blocked, or idle, and lets agents control it via CLI and socket API.
alchemmist/lazy-tmux
A Go CLI for tmux that saves sessions, windows, panes and commands, then restores them lazily from a TUI picker.
- Stars
- 244
- Forks
- 9
- Open issues
- 55
- Last commit
- 4 days ago
What is it?
lazy-tmux is a command-line tool for saving and restoring tmux sessions. It captures windows, pane layouts, running commands and optionally scrollback history, so you can kill the tmux server and bring your work back later.
Restoration is lazy: you choose which sessions or windows to bring back from an interactive TUI tree-and-table browser with fuzzy search, or from a lighter fzf-based picker. An autosave daemon snapshots all sessions in the background, and a bootstrap option can restore the latest session when tmux starts.
The project also tracks Codex, Antex and Claude Code agent sessions in panes, restoring the original conversation only when its identity has been verified. It supports tmux versions from 2.9 through 3.7b and is installable via Homebrew, AUR and Docker.
Key features
- 01Saves current, specific or all sessions, including windows, panes, layouts and running commands.
- 02Lazy restore brings back only the sessions or windows you select.
- 03Background autosave daemon snapshots sessions periodically.
- 04Interactive TUI picker with tree view, table and fuzzy search.
- 05Optional fzf-based picker and a sessions-only mode for popups.
- 06Optional scrollback capture and replay.
Use cases
- Restoring a full development environment after rebooting or killing the tmux server.
- Switching quickly between many tmux sessions from a popup picker.
- Keeping long-running commands like npm or docker-compose laid out across panes after a restart.
Quick start
- 1
Build from source after cloning the project
make build - 2
The binary is written to bin/lazy-tmux; run it from there
bin/lazy-tmux
Things to know
- Requires Go and a cloned repository to build from source; no install command is given in the README.
- Agent integrations for Codex and Claude need lifecycle hooks installed and trusted manually inside each client.
- Full configuration and usage details are only documented on the external website.
Topics
FAQ
- What is lazy-tmux?
- A Go CLI for tmux that saves sessions, windows, panes and commands, then restores them lazily from a TUI picker. lazy-tmux is a command-line tool for saving and restoring tmux sessions. It captures windows, pane layouts, running commands and optionally scrollback history, so you can kill the tmux server and bring your work back later.
- Is lazy-tmux free to use? What license does it have?
- lazy-tmux is open source under the MIT license. Check the license terms before using it in commercial products.
- Is lazy-tmux still maintained?
- Actively maintained. The last commit to lazy-tmux was on Oct 17, 2026.
- What can I use lazy-tmux for?
- Restoring a full development environment after rebooting or killing the tmux server. Switching quickly between many tmux sessions from a popup picker. Keeping long-running commands like npm or docker-compose laid out across panes after a restart.
- How do I install lazy-tmux?
- Build from source after cloning the project: make build The binary is written to bin/lazy-tmux; run it from there: bin/lazy-tmux
- Where can I get lazy-tmux?
- The source code and installation instructions are on GitHub: https://github.com/alchemmist/lazy-tmux
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Claude Code plugin that adds a live status line showing context usage, rate limits, active tools, running agents, and todo progress.
A terminal markdown reader and renderer that displays .md files and repos with styled formatting in the CLI.
A customizable status line for Claude Code CLI that shows model, git branch, token usage, usage limits and more, with Powerline support and themes.
A CLI that runs a terminal command and renders its colored ANSI output as a window-style PNG screenshot.
Open-source ngrok alternative that exposes a local HTTP server at a public HTTPS URL with one command.