.claude/skills/tmux-sender/SKILL.md
Sends commands to another tmux pane. Use when requests include phrases like "run it in another pane," "send via tmux," or "ask Claude Code to execute."
npx skillsauth add ssaattww/excelreport tmux-senderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides command sending and monitoring capabilities between tmux panes.
This skill follows the non-entry execution contract standard.
Required contract_extensions: pane_target, command_count.
See codex-execution-contract.md and non-entry-execution-contract-template.md for full rules.
input:
objective: "Send command to target pane and monitor completion"
contract_extensions: { pane_target: "codex-session:0.1", command_count: 2 }
output:
status: "completed"
quality_gate:
# Caller-supplied; tmux-sender passes this field through without interpreting it.
gate_id: "caller-quality-gate"
gate_type: "implementation"
trigger: "caller-defined validation"
criteria:
- "Caller provides a canonical quality gate payload"
- "Payload is forwarded unchanged"
result: "pass"
evidence:
- "Pane accepted command"
blockers: []
branching:
on_pass: "handoff"
on_fail: "caller_handles_failure"
max_cycles: 1
contract_extensions: { pane_target: "codex-session:0.1", command_count: 2 }
IMPORTANT: For automatic completion monitoring and notification to work:
multiagent:0.1)codex-session:0.1)Typical setup:
# Create tmux session with two panes
tmux new-session -s multiagent -n main
tmux split-window -h -t multiagent
# Left pane (0.0): Claude Code
# Right pane (0.1): Codex execution
# Or use separate sessions
tmux new-session -d -s codex-session
If Claude Code is NOT running in tmux, the monitoring script can still detect completion and save results, but automatic notification will not work.
tmux list-panes
❌ Wrong Way:
# This does NOT work
tmux send-keys -t pane:0.1 "command" Enter
✅ Correct Way:
# Send command and Enter separately
tmux send-keys -t pane:0.1 "command"
tmux send-keys -t pane:0.1 Enter
pane-number: Simple pane number (e.g., 1)session:window.pane: Full specification (e.g., codex-session:0.1)# Send command to Codex pane
tmux send-keys -t codex-session:0.1 'codex exec --model gpt-5.3-codex "task description"'
tmux send-keys -t codex-session:0.1 Enter
Automatically detect completion of long-running tasks (like Codex) and notify Claude Code.
# Basic monitoring (no notification)
scripts/monitor-completion.sh [pane-target] [search-pattern]
# With automatic Claude Code notification
scripts/monitor-completion.sh [pane-target] [search-pattern] [notify-pane]
| Parameter | Description | Default |
|-----------|-------------|---------|
| pane-target | tmux pane to monitor | codex-session:0.1 |
| search-pattern | Process search pattern | codex exec |
| notify-pane | Claude Code pane for notification (requires Claude Code running in tmux) | none |
| marker-file | Optional marker file path for inotifywait mode | none |
| notify-interval-sec | Interval between notification attempts (seconds) | 30 |
| save-result | Save pane output to file (1=yes, 0=no) | 0 |
| skip-when-working | Skip notification when target pane is busy (1=yes, 0=no) | 1 |
| force-notify-after-skips | Force notification after N consecutive skips (0=disabled) | 10 |
# Start monitoring in background
scripts/monitor-completion.sh \
codex-session:0.1 \
"codex exec" \
multiagent:0.1 &
# Execute Codex command
tmux send-keys -t codex-session:0.1 'codex exec --skip-git-repo-check -m gpt-5.3-codex --config model_reasoning_effort="high" --sandbox workspace-write --full-auto "task description"'
tmux send-keys -t codex-session:0.1 Enter
/tmp/codex-result-YYYYMMDD-HHMMSS.txt (if save-result=1)/tmp/codex-completed.flagskip-when-working=1force-notify-after-skips)notify-interval-sec seconds until killed❯, ›, ? for shortcuts, context left) before checking busy markers# Step 1: Launch monitoring script in background
scripts/monitor-completion.sh \
codex-session:0.1 \
"codex exec" \
multiagent:0.1 &
# Step 2: Execute Codex command
tmux send-keys -t codex-session:0.1 'codex exec --skip-git-repo-check -m gpt-5.3-codex --config model_reasoning_effort="high" --sandbox workspace-write --full-auto "implementation task"'
tmux send-keys -t codex-session:0.1 Enter
# On completion:
# - Results are saved automatically
# - Claude Code is awakened with "What happened?"
# - Ready to review results
tmux-sender owns completion detection, notification, and output pass-through only.quality_gate in this skill.workflow-entry or Codex skill) is responsible for all quality_gate validation.non-entry-execution-contract-template.md and quality-gate-evidence-template.md.# Create new session
tmux new-session -d -s codex-session
# Split panes
tmux split-window -h -t codex-session
# Attach to session
tmux attach -t codex-session
# Detach (leave session running)
# Press: Ctrl+b, d
# Check command success/failure
tmux send-keys -t 1 'command && echo "Success" || echo "Failed"'
tmux send-keys -t 1 Enter
# Use heredoc
tmux send-keys -t 1 "cat > /tmp/script.sh << 'EOF'
#!/bin/bash
echo 'complex script'
EOF"
tmux send-keys -t 1 Enter
tmux send-keys -t 1 'bash /tmp/script.sh'
tmux send-keys -t 1 Enter
# Error: can't find pane
# Solution: Use session:window.pane format
tmux send-keys -t codex-session:0.1 "command"
# Cause: Enter not sent correctly
# Solution: Always send in two steps
tmux send-keys -t 1 "command"
tmux send-keys -t 1 Enter # Separate command
# Check 1: Is process running?
ps aux | grep "codex exec"
# Check 2: Is pane reference correct?
tmux list-panes -t codex-session
# Check 3: Does script have execute permission?
chmod +x scripts/monitor-completion.sh
databases
Unified deterministic entry for workflow requests. Centralizes routing with stop/approval and sandbox controls.
tools
Use when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
development
Single-agent execution loop for implementation tasks. Replaces task-executor/quality-fixer subagent cycle with direct Codex skill-driven implementation and quality gates.
development
End-to-end lifecycle orchestration with a single Codex agent. Replaces subagent workflow coordination while preserving scale-based phases, stop points, and quality gates.