interactive-shell

Drive full-screen terminal programs through a PTY wrapper with screen observation and structured input.

Updated Aug 4, 2026
One-click install
npx skills add https://github.com/tschallacka/ai-skills --skill interactive-shell-tschallacka
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: interactive-shell
Source: https://github.com/tschallacka/ai-skills/tree/main/interactive-shell
Command: npx skills add https://github.com/tschallacka/ai-skills --skill interactive-shell-tschallacka

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Agents cannot operate programs that only work in a real terminal—full-screen TUIs like nano, mc, lynx, pagers, installers, or another interactive CLI—because headless or piped invocations behave differently and cannot answer questions about interactive behavior. ## Core Features & Use Cases - PTY-backed wrapper with JSONL screen events: Start any command in a real pseudo-terminal and observe changed rows, cursor state, styles, and scrollback as structured events. - Compact observation commands: Use view, view-delta, rgbview, markup, elements, and observe to inspect the screen at the lowest token cost, including actionable element discovery and OSC 8 hyperlinks. - Structured input over a Unix socket: Send text, named keys, modifier combos, raw bytes, bracketed paste, mouse events, and resizes one request at a time, verifying each action against the next screen. - Vendor app profiles: Consult shipped profiles for common programs (mc, nano, vi, less, htop, tmux) and record new findings in an agent-writable appprofiles.d/ directory. - Use Case: An agent must edit a file in nano inside a terminal, confirm the save prompt, and exit—starting a session, observing the screen, sending CTRL-O and ENTER, and verifying the result from the actual screen rather than assuming keystrokes worked. ## Quick Start Start a session with interactive-shell --session my-id --cols 80 --rows 24 -- nano file.txt, then use interactive-shell-input --session my-id view to observe the screen and send keys one at a time.

Frequently Asked Questions about interactive-shell

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I control an interactive terminal program like nano or mc from an agent?▼

Start the program with the interactive-shell wrapper, which allocates a real PTY and exposes the screen through a Unix socket. Observe the screen with view or observe, then send one input at a time with interactive-shell-input, verifying each action against the next screen.

Why can't I test interactive CLI behavior with a headless or piped invocation?▼

A program's --print or piped mode is a different program: it renders no screen, takes different prompts, and may omit the behavior being tested. A headless run that disagrees with expectations is not evidence about the interactive session, so a real PTY is required.

What keyboard keys and modifiers can I send to a TUI application?▼

Named keys include ENTER, TAB, ESC, arrows, function keys F1-F12, and CTRL/ALT/SHIFT cursor variants. Use combo for arbitrary modifier combinations like Ctrl+Alt+Shift+H, and raw for explicit byte sequences encoded as hexadecimal.

Does the screen model support all terminal escape sequences?▼

No. The model covers common cursor movement, erase, alternate-screen, OSC, charset, line-drawing, scroll-region, and insert/delete-line controls, but it is not a complete terminal emulator. Non-ASCII glyph widths may be approximate, and ncurses extensions may be unsupported.

How do I click elements in a text-based user interface?▼

Use the elements command to discover actionable items such as OSC 8 hyperlinks with labels and coordinates, then click-id or click-label to activate them. For TUIs without semantic metadata, use click-at with 1-based coordinates and verify the result on the next screen.

What should I do before driving an unfamiliar TUI by trial and error?▼

Check the vendor appprofiles directory for a shipped profile covering the program's layout, keys, and quirks, and consult the application's built-in help or manpage first. Record new findings in the agent-writable appprofiles.d directory so later sessions avoid rediscovery.