tmux-test
Test klaude-code interactively using tmux with synchronous task completion. Use when testing UI features, verifying changes, or debugging interactive behavior. Eliminates polling/sleep by using KLAUDE_TEST_SIGNAL for precise synchronization.
When & Why to Use This Skill
This Claude skill enables interactive testing of klaude-code within a tmux environment, utilizing synchronous task completion to eliminate inefficient polling. It provides a robust framework for developers to verify UI features, debug interactive behaviors, and automate sequential agent requests with precise synchronization through the KLAUDE_TEST_SIGNAL environment variable.
Use Cases
- UI Feature Verification: Testing how the agent interacts with user interfaces in a controlled, observable tmux session to ensure visual and functional accuracy.
- Automated Regression Testing: Executing sequential prompts and using the 'wait-for' signal to validate agent performance across multiple tasks without manual intervention.
- Interactive Debugging: Capturing specific scrollback history and pane output to diagnose complex agent behaviors and state changes in real-time.
- CI/CD Pipeline Integration: Incorporating interactive agent tasks into automated testing workflows by replacing arbitrary sleep timers with precise task completion signals.
| name | tmux-test |
|---|---|
| description | Test klaude-code interactively using tmux with synchronous task completion. Use when testing UI features, verifying changes, or debugging interactive behavior. Eliminates polling/sleep by using KLAUDE_TEST_SIGNAL for precise synchronization. |
tmux-test
Test klaude-code in an interactive tmux session with synchronous task completion.
Quick Start
# Create session and start klaude with signal
tmux new-session -d -s test -x 120 -y 30
tmux send-keys -t test 'KLAUDE_TEST_SIGNAL=done uv run klaude' Enter
sleep 3 # Wait for startup only
# Send request and wait for completion (no polling needed)
tmux send-keys -t test 'your prompt here' Enter
tmux wait-for done # Blocks until task completes
# Capture output
tmux capture-pane -t test -p -S -50
# Cleanup
tmux kill-session -t test
Key Points
KLAUDE_TEST_SIGNAL=<channel>: Environment variable that enables task completion signalingtmux wait-for <channel>: Blocks until the signal is sent (task completes)- Signal is only sent when main agent task finishes (not sub-agents)
- Use
-S -Nwith capture-pane to get N lines of scrollback history
Common Patterns
Multiple Sequential Requests
for prompt in "request 1" "request 2"; do
tmux send-keys -t test "$prompt" Enter
tmux wait-for done
tmux capture-pane -t test -p -S -30
done
Capture Full Output
tmux capture-pane -t test -p -S - # Entire scrollback