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.
Manages services in dedicated tmux panes within a claude-controlled window for persistent process oversight.
npx claudepluginhub sjungling/sjungling-claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
When running inside a TMUX session, you can manage services in dedicated panes without cluttering the user's current view. All Claude-created panes go in a dedicated "claude-controlled" window.
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 rebalance# Detection (already done by SessionStart hook)
echo $TMUX
# List windows
tmux list-windows -F "#{window_index}:#{window_name}"
# List all panes with titles
tmux list-panes -a -F "#{window_name}:#{pane_index}:#{pane_title}"
# Create claude-controlled window
tmux new-window -n "claude-controlled"
# Split pane (vertical)
tmux split-window -t claude-controlled -v
# Name a pane
tmux select-pane -t "target" -T "pane-name"
# Send command
tmux send-keys -t "target" "command here" Enter
# Send Ctrl+C
tmux send-keys -t "target" C-c
# Capture output
tmux capture-pane -t "target" -p -S -50
TMUX targets use the format: session:window.pane
claude-controlled:0 - First pane in claude-controlled windowclaude-controlled:0.api-server - Pane titled "api-server" in claude-controlledapi-serverUser: "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-controlledYou MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.