TMUX session awareness and process management. Automatically activates when running in a TMUX session (detected by SessionStart hook). Use when starting/stopping/restarting services in dedicated tmux panes, checking process status or logs, capturing pane output, managing the claude-controlled window, or when user references tmux panes, windows, or sessions by name. Not for one-off commands that don't need a persistent pane.
When running inside a TMUX session, manage services in dedicated panes without cluttering the current view. All Claude-created panes go in a dedicated "claude-controlled" window.
For the visual workflow diagram, see ./references/workflow.mmd.
When the user asks to start a service (e.g., "start the API server"):
# List windows, look for claude-controlled
tmux list-windows -F '#{window_index}:#{window_name}' | grep ':claude-controlled$'
# Create the claude-controlled window
tmux new-window -n "claude-controlled"
# If claude-controlled window already has panes, split it
tmux split-window -t claude-controlled -v
# Name the pane after the service
tmux select-pane -t claude-controlled -T "api-server"
tmux send-keys -t "claude-controlled:0.api-server" "npm run dev" Enter
sleep 2
tmux capture-pane -t "claude-controlled:0.api-server" -p -S -20
Check the output for errors. Report success or detected issues.
claude-controlled (all Claude-created panes go here)api-server, redis, vite-dev, postgres)When the user asks to interact with a process (e.g., "check the redis logs"):
tmux list-panes -a -F '#{window_name}:#{pane_index}:#{pane_title}'
Look for exact or partial match (e.g., "redis" matches pane titled "redis" or "redis-server").
Interact with it:
# Capture output
tmux capture-pane -t "window:pane" -p -S -50
# Send command (e.g., restart)
tmux send-keys -t "window:pane" C-c # Stop first
tmux send-keys -t "window:pane" "redis-server" Enter # Restart
List available panes and ask:
I couldn't find a pane named 'redis'. Here's what I see:
- [0:main] pane 0: "zsh"
- [1:dev] pane 0: "vim"
- [2:claude-controlled] pane 0: "api-server"
Which one should I use, or should I create a new one?
Use capture-pane to read recent output:
# Last 50 lines
tmux capture-pane -t "pane-target" -p -S -50
# Last 100 lines (for more context)
tmux capture-pane -t "pane-target" -p -S -100
After sending commands, capture output and look for common error patterns:
Error:, ERROR, error:Exception, exceptionFailed, FAILED, failedCannot, cannotReport issues proactively: "Started the server but detected an error: [snippet]"
# Send Ctrl+C to stop
tmux send-keys -t "pane-target" C-c
# Verify it stopped
sleep 1
tmux capture-pane -t "pane-target" -p -S -10
When running multiple services:
-v) for side-by-side logstmux select-layout -t claude-controlled even-vertical to rebalanceFor the full command reference (window/pane management, sending commands, capturing output, target syntax), see ./references/commands.md.
User: "Start a Redis server"
tmux split-window -t claude-controlled -vtmux select-pane -T "redis"tmux send-keys -t "claude-controlled:redis" "redis-server" Entersleep 2 && tmux capture-pane -t "claude-controlled:redis" -p -S -20User: "Check if Redis is still running"
tmux capture-pane -t "claude-controlled:redis" -p -S -30git status, ls)When the user's task is complete:
tmux kill-window -t claude-controlledSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer