Skip to content

/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.

From plugin
ralph-orchestrator
3.2k17 skills3 agents

Claude Code

$ npx -y skills add mikeyobrien/ralph-orchestrator --skill tui-debug-in-pane --agent claude-code

SKILL.md

tui-debug-in-pane.SKILL.md
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:WINDOW

2. 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
@mikeyobrien
Ships withralph-orchestrator

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

Stars on GitHub

Momentum

stars in total
3.2k
Star history of mikeyobrien/ralph-orchestrator on GitHub, a chart by star-history.com

Other skills on ralph-orchestrator.

code-assist
Auto-invoked

code-assist

Guides implementation of code tasks using test-driven development in an Explore, Plan, Code, Commit workflow. Acts as a Technical…

pdd
Auto-invoked

pdd

Transforms a rough idea into a detailed design document with implementation plan. Follows Prompt-Driven Development — iterative…

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip2w109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about tui-debug-in-pane.

Which coding agents can use tui-debug-in-pane?
tui-debug-in-pane installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.