lazy-tmux

Integrations

Integrations teach lazy-tmux about the interactive programs you run in a pane. Each one declares how to recognize its program, what program-specific state to record on save, what to replay on restore, and — optionally — a live status to surface in the picker. They plug into a registry, so the core save/restore logic stays untouched.

Claude Code

lazy-tmux TUI picker showing a live status glyph for each Claude Code window: working, waiting for a decision, waiting for input, and idle

A window running claude is restored as claude --resume <session-id>, so the conversation continues instead of starting fresh.

Antex

A window running antex is restored as antex resume <session-id>. On every save, lazy-tmux rereads the rollout metadata and selects the newest session for that pane's working directory, so switching sessions is reflected in the next snapshot.

The integration is enabled by default. Its data directory can be changed with [integrations.antex] and the home option (default: ~/.antex).

Status dots

For live sessions, each claude window shows a colored status glyph in the State column, so you can tell at a glance which Claude is busy and which one is waiting for you — without switching around. Each state has both a distinct shape and color, so it stays readable in monochrome terminals: ◐ green = working (an animated half-circle spinner), ? amber = waiting for your answer to a question or permission, ◌ blue = waiting for input, ○ grey = idle. The dots refresh live while the picker is open, and the working state animates.

Working/idle is detected out of the box. For the precise “waiting for your answer” state, install the Claude Code hooks once: lazy-tmux claude-hooks (merges into ~/.claude/settings.json, preserving your existing hooks; lazy-tmux claude-hooks --uninstall removes them).

Author: Anton Grishin (alchemmist), anton.ingrish@gmail.com

OpenSource: alchemmist/lazy-tmux

© 2026 lazy-tmux