Guided TUI automation and visual testing workflow. Use when testing terminal applications, validating TUI layouts, or automating interactive CLI tools.
From tuivisionnpx claudepluginhub mistakeknot/interagency-marketplace --plugin tuivisionThis skill uses the workspace's default tool permissions.
SKILL-compact.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Guides using Bun as runtime, package manager, bundler, and test runner for JS/TS projects with Node comparisons, migration steps, and Vercel deployment.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
This skill guides you through testing terminal user interfaces using tuivision's MCP tools.
The tuivision MCP server provides these tools:
| Tool | Purpose |
|---|---|
spawn_tui | Start a TUI app in a virtual terminal |
send_input | Send keystrokes (text, arrows, ctrl+c, etc.) |
get_screen | Get terminal state as text or structured data |
get_screenshot | Render terminal to PNG or SVG image |
resize_session | Change terminal dimensions |
list_sessions | Show all active sessions |
close_session | Clean up a session |
spawn_tui command="htop" cols=120 rows=40
Returns a session_id for subsequent operations.
For Bubble Tea / Charm apps (Go TUI frameworks), add TTY compatibility flags:
spawn_tui command="./my-bubbletea-app" cols=120 rows=40 use_script=true answer_queries=true
use_script: Wraps in script command for /dev/tty accessanswer_queries: Auto-responds to ANSI terminal queriesAfter spawning, give the app time to initialize:
Send input using send_input:
# Type text
send_input session_id="..." input="hello world"
# Special keys
send_input session_id="..." key="enter"
send_input session_id="..." key="ctrl+c"
send_input session_id="..." key="up"
# Sequence of keys
send_input session_id="..." keys=["tab", "tab", "enter"]
Special keys supported:
up, down, left, right, home, end, pageup, pagedownenter, tab, backspace, delete, escapectrl+c, ctrl+d, ctrl+z, ctrl+lf1 through f12Get terminal content:
# Quick text view
get_screen session_id="..." format="text"
# With cursor position
get_screen session_id="..." format="compact"
# Full cell data (colors, attributes)
get_screen session_id="..." format="full"
Take screenshots for visual inspection:
# PNG screenshot (returned as base64 image)
get_screenshot session_id="..." format="png"
# SVG for scalable output
get_screenshot session_id="..." format="svg" font_size=16
Always close sessions when done:
close_session session_id="..."
get_screen with format="text"get_screen returning empty/errorget_screen format="full" to verify color/attribute rendering.ctrl+c or q before close_session for graceful app shutdown.use_script=true and answer_queries=true for Go TUI apps.1. spawn_tui command="htop" cols=120 rows=40
2. [wait 200ms]
3. get_screenshot session_id="..." format="png"
4. send_input session_id="..." key="q"
5. close_session session_id="..."
1. spawn_tui command="vim test.txt" cols=80 rows=24
2. send_input session_id="..." key="i" # insert mode
3. send_input session_id="..." input="Hello, World!"
4. send_input session_id="..." key="escape"
5. get_screen session_id="..." format="text"
6. send_input session_id="..." keys=[":","q","!","enter"]
7. close_session session_id="..."
Bubble Tea apps (Go) require TTY compatibility flags:
1. spawn_tui command="./my-bubbletea-app" cols=80 rows=24 use_script=true answer_queries=true
2. [wait 500ms for app to initialize]
3. get_screenshot session_id="..." format="png"
4. send_input session_id="..." key="down"
5. get_screen session_id="..." format="text"
6. send_input session_id="..." key="q"
7. close_session session_id="..."
Why these flags? Bubble Tea queries terminal capabilities (cursor position, colors) before rendering. Without responses, the app hangs waiting. use_script provides /dev/tty access, and answer_queries auto-responds to ANSI queries.