By tru2dagame
Surface Claude Code agent state into @pane_* tmux options for the TmuxVTab macOS sidebar
A vertical tab bar for tmux, built as a lightweight macOS companion app for Ghostty.

Add to your ~/.tmux.conf or ~/.tmux.conf.local:
set -g @plugin 'tru2dagame/TmuxVTab'
Then press prefix + I to install. TmuxVTab will automatically download the pre-built binary from GitHub Releases and start.
git clone https://github.com/tru2dagame/TmuxVTab.git ~/.tmux/plugins/TmuxVTab
~/.tmux/plugins/TmuxVTab/bin/tmuxvtab start
Requires macOS 15+ and Swift 6.0+.
git clone https://github.com/tru2dagame/TmuxVTab.git
cd TmuxVTab
swift build -c release
bin/tmuxvtab start # starts using locally built binary
Stream per-turn agent state (status, prompt, permission mode, subagents, wait
reason) into the sidebar in real time. The hook handler binary comes from
tru2dagame/tmux-agent-sidebar
— a stability fork of hiroppy/tmux-agent-sidebar
that pulls binaries from its own release pipeline. The TmuxVTab TPM install
auto-downloads it on first start, so no extra @plugin line is needed.
In any running Claude Code session:
/plugin marketplace add ~/.tmux/plugins/TmuxVTab
/plugin install tmuxvtab@tru2dagame
/reload-plugins
This registers 16 hook events (SessionStart, UserPromptSubmit, Stop,
Notification, SubagentStart, …) that write @pane_* tmux options. TmuxVTab
reads those options on every poll.
Verify it's working — send any prompt in a Claude pane, then:
tmux show-options -p -t <pane> @pane_agent # → claude
tmux show-options -p -t <pane> @pane_status # → running / idle
tmux show-options -p -t <pane> @pane_prompt # → your last prompt
All commands are available as tmux command aliases (no keybindings needed):
| Command | Shell | tmux command mode (prefix :) |
|---|---|---|
| Toggle (restart/start) | tmux vtab | vtab |
| Start | tmux vtab-start | vtab-start |
| Stop | tmux vtab-stop | vtab-stop |
| Dock left | tmux vtab-left | vtab-left |
| Dock right | tmux vtab-right | vtab-right |
| Always on top | tmux vtab-pin | vtab-pin |
| Follow Ghostty focus | tmux vtab-unpin | vtab-unpin |
Settings (left/right, pin/unpin) are persisted and take effect immediately without restarting.
Font size is adjustable via right-click context menu on the panel.
# Press prefix + U to update all plugins, then restart:
tmux vtab
cd ~/.tmux/plugins/TmuxVTab
git pull
rm -f .build/release/TmuxVTab # remove old binary
tmux vtab # downloads new release binary and starts
TmuxVTab is a native macOS app (AppKit + SwiftUI) that runs as a background agent:
NSWorkspace notifications and CGWindowListCopyWindowInfo pollingNSPanel that tracks Ghostty's window frameThe hook handler binary and the @pane_* data model come from
hiroppy/tmux-agent-sidebar —
TmuxVTab's live agent state is a thin macOS UI on top of that work. We mirror
that codebase at tru2dagame/tmux-agent-sidebar
so TmuxVTab installs stay reproducible.
MIT
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub tru2dagame/tmuxvtab --plugin tmuxvtabMemory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Editorial "Web Designer" bundle for Claude Code from Antigravity Awesome Skills.