/tui-debug-in-pane
Use when you need to reproduce or debug TUI rendering issues (garbled output, broken streaming, layout corruption) by running ralph in a tmux split pane and capturing live output.
$ npx -y skills add mikeyobrien/ralph-orchestrator --skill tui-debug-in-pane --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/tui-debug-in-pane
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when you need to reproduce or debug TUI rendering issues (garbled output, broken streaming, layout corruption) by running ralph in a tmux split pane and capturing live output.
SKILL.md
tui-debug-in-pane.SKILL.mdname: tui-debug-in-pane
description: Use when you need to reproduce or debug TUI rendering issues (garbled output, broken streaming, layout corruption) by running ralph in a tmux split pane and capturing live output.
metadata:
internal: true
tui-debug-in-pane
Debug TUI rendering bugs by launching ralph in a tmux split pane and capturing live output. The split keeps your main pane free for inspection commands.
When to Use
- Reproducing garbled or corrupted TUI output from a specific provider
- Investigating streaming rendering issues that only appear live
- Capturing TUI state for bug reports or diagnostics
Quick Reference
| Task | Command | |------|---------| | Identify current pane | `tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}'` | | Create split pane | `tmux split-window -h -t SESSION:WINDOW -c /path/to/repo` | | List panes | `tmux list-panes -t SESSION:WINDOW` | | Fix shell in pane | `tmux send-keys -t PANE "exec /path/to/fish" Enter` | | Send command | `tmux send-keys -t PANE "command" Enter` | | Capture output | `tmux capture-pane -t PANE -p -S -60` | | Quit TUI | `tmux send-keys -t PANE q` | | Force stop | `tmux send-keys -t PANE C-c` | | Kill split pane | `tmux kill-pane -t PANE` |
Procedure
1. Create the Split Pane
tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}'
tmux split-window -h -t SESSION:WINDOW -c /path/to/repo
tmux list-panes -t SESSION:WINDOW2. Fix Shell Environment
Split panes inherit the tmux server's default shell (bash), not the parent's. Tools like `pi` need fish (mise/Node).
tmux send-keys -t PANE "exec /nix/store/km9w9r1p4nl92y5fp4vfwsjymjig4axl-fish-3.7.1/bin/fish" Enter
tmux send-keys -t PANE "which pi && pi --version" Enter
3. Clean Up Before Running
rm -f .ralph/loop.lock
git worktree prune
4. Launch Ralph
# Prefer release binary (faster startup)
tmux send-keys -t PANE "target/release/ralph run -c CONFIG.yml -p 'prompt' --max-iterations N" Enter
# Or with cargo (must specify --bin for this workspace)
tmux send-keys -t PANE "cargo run --bin ralph -- run -c CONFIG.yml -p 'prompt' --max-iterations N" Enter
5. Capture and Analyze
sleep 20 # Pi/Kiro take 15-30s to start streaming
tmux capture-pane -t PANE -p -S -60
ls -lt .ralph/diagnostics/logs/ | head -5
6. Clean Up
tmux send-keys -t PANE q
tmux send-keys -t PANE C-c
tmux kill-pane -t PANE
Common Mistakes
- **Shell mismatch**: Split panes get bash by default. If tools fail with "command not found", switch to fish with `exec /path/to/fish`.
- **Stale loop lock**: If `.ralph/loop.lock` exists, ralph spawns worktree loops instead of running normally. Always delete it first.
- **Wrong backend in TUI header**: Without `cli.backend: pi` in the config, ralph uses claude regardless of hat settings.
- **Missing hat `name` field**: HatConfig requires `name`; omitting it causes a config parse error.
- **Premature capture**: Pi and Kiro take 15-30s before streaming text appears. Capture too early and you see an empty content area.
- **Ghost keystrokes**: If the TUI already exited, pressing `q` prepends it to your next command. Check if the TUI is still running before sending quit keys.
Read more
name: tui-debug-in-pane description: Use when you need to reproduce or debug TUI rendering issues (garbled output, broken streaming, layout corruption) by running ralph in a tmux split pane and capturing live output. metadata: internal: true
tui-debug-in-pane
Debug TUI rendering bugs by launching ralph in a tmux split pane and capturing live output. The split keeps your main pane free for inspection commands.
When to Use
- Reproducing garbled or corrupted TUI output from a specific provider
- Investigating streaming rendering issues that only appear live
- Capturing TUI state for bug reports or diagnostics
Quick Reference
| Task | Command | |------|---------| | Identify current pane | `tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}'` | | Create split pane | `tmux split-window -h -t SESSION:WINDOW -c /path/to/repo` | | List panes | `tmux list-panes -t SESSION:WINDOW` | | Fix shell in pane | `tmux send-keys -t PANE "exec /path/to/fish" Enter` | | Send command | `tmux send-keys -t PANE "command" Enter` | | Capture output | `tmux capture-pane -t PANE -p -S -60` | | Quit TUI | `tmux send-keys -t PANE q` | | Force stop | `tmux send-keys -t PANE C-c` | | Kill split pane | `tmux kill-pane -t PANE` |
Procedure
1. Create the Split Pane
tmux display-message -p '#{session_name}:#{window_index}.#{pane_index}'
tmux split-window -h -t SESSION:WINDOW -c /path/to/repo
tmux list-panes -t SESSION:WINDOW2. Fix Shell Environment
Split panes inherit the tmux server's default shell (bash), not the parent's. Tools like `pi` need fish (mise/Node).
tmux send-keys -t PANE "exec /nix/store/km9w9r1p4nl92y5fp4vfwsjymjig4axl-fish-3.7.1/bin/fish" Enter tmux send-keys -t PANE "which pi && pi --version" Enter
3. Clean Up Before Running
rm -f .ralph/loop.lock git worktree prune
4. Launch Ralph
# Prefer release binary (faster startup) tmux send-keys -t PANE "target/release/ralph run -c CONFIG.yml -p 'prompt' --max-iterations N" Enter # Or with cargo (must specify --bin for this workspace) tmux send-keys -t PANE "cargo run --bin ralph -- run -c CONFIG.yml -p 'prompt' --max-iterations N" Enter
5. Capture and Analyze
sleep 20 # Pi/Kiro take 15-30s to start streaming tmux capture-pane -t PANE -p -S -60 ls -lt .ralph/diagnostics/logs/ | head -5
6. Clean Up
tmux send-keys -t PANE q tmux send-keys -t PANE C-c tmux kill-pane -t PANE
Common Mistakes
- **Shell mismatch**: Split panes get bash by default. If tools fail with "command not found", switch to fish with `exec /path/to/fish`.
- **Stale loop lock**: If `.ralph/loop.lock` exists, ralph spawns worktree loops instead of running normally. Always delete it first.
- **Wrong backend in TUI header**: Without `cli.backend: pi` in the config, ralph uses claude regardless of hat settings.
- **Missing hat `name` field**: HatConfig requires `name`; omitting it causes a config parse error.
- **Premature capture**: Pi and Kiro take 15-30s before streaming text appears. Capture too early and you see an empty content area.
- **Ghost keystrokes**: If the TUI already exited, pressing `q` prepends it to your next command. Check if the TUI is still running before sending quit keys.
A hat-based orchestration framework that keeps AI agents in a loop until the task is done. "Me fail English? That's unpossible!" - Ralph Wiggum
Repo: mikeyobrien/ralph-orchestrator
Other skills on ralph-orchestrator.
- /code-assist
Guides implementation of code tasks using test-driven development in an Explore, Plan, Code, Commit workflow. Acts as a Technical Implementation Partner and TDD Coach — following existing patterns, avoiding over-engineering, and producing idiomatic, modern code.
Open skill - /code-task-generator
Generates structured .code-task.md files from descriptions or PDD implementation plans. Auto-detects input type, creates properly formatted tasks with Given-When-Then acceptance criteria.
Open skill - /evaluate-presets
Use when testing Ralph's hat collection presets, validating preset configurations, or auditing the preset library for bugs and UX issues.
Open skill - /find-code-tasks
Lists all code tasks in the repository with their status, dates, and metadata. Useful for getting an overview of pending work or finding specific tasks.
Open skill - /pdd
Transforms a rough idea into a detailed design document with implementation plan. Follows Prompt-Driven Development — iterative requirements clarification, research, design, and planning.
Open skill - /playwriter
Browser automation via Playwriter (remorses) using persistent Chrome sessions and the full Playwright Page API.
Open skill

