io.github.HurleySk/can-see
Let AI agents see and interact with terminal/CLI apps via PNG screenshots
Versions
No versions found.
Tools 21
launch Launch a CLI app in a virtual terminal. IMPORTANT: You MUST call
screenshot Capture the terminal as a PNG image
screenshot_region Capture a specific rectangular area of the visible terminal as a PNG image
screenshot_text_region Find text in the viewport and capture the surrounding area as a PNG. Searches visible viewport only (single-line match, returns first match top-to-bottom).
capture_baseline Snapshot current terminal state for later diff comparison (screenshot also auto-captures a baseline)
diff_screenshot Compare current terminal state against the baseline, return PNG with changed cells highlighted in red
get_cell_info Query character, colors, and text attributes at a specific cell or range of cells
read_scrollback Read text that has scrolled above the visible terminal viewport
start_recording Begin capturing terminal frames for an animated GIF (frames captured on output, not fixed interval)
stop_recording Stop recording and return the captured frames as an animated GIF. If the GIF exceeds the inline size limit (~4MB), frames are automatically trimmed. If still too large, the GIF is saved to a temp file and the path is returned. Use outputPath to always save to a specific file.
read_text Read the terminal buffer as plain text (for programmatic assertions instead of visual screenshots)
wait_for_text Wait until specific text appears in the terminal buffer (replaces sleep-and-screenshot polling)
wait_for_idle Wait until terminal output has been stable for a given duration. Use idleMs (default) for apps that stop producing output, or stableMs for apps with constant output like timers/spinners — stableMs compares buffer content instead of tracking raw PTY data.
wait_for_color Wait until a specific color appears at a position (or anywhere in the viewport)
wait_for_exit Wait until the process exits and return its exit code and signal
send_keys Send keystrokes to the app (e.g.,
send_text Type a string of text into the app
get_process_status Get the current process status — use to distinguish
list_sessions List all active terminal sessions
close Kill the app and clean up the session
close_all Kill all active sessions at once. Useful for cleanup between test runs or when sessions may have been orphaned.
Permissions 3
filesystem low shell high env_vars low Scan Findings 0
No scan findings.