Terminal Skill
Manage persistent terminal sessions that survive disconnections and can be viewed from the web UI. Sessions run in the background and their output can be read at any time.
Tools
Health check
- terminal_check — Verify the terminal backend is available. Call before using other terminal tools.
- terminal_prepare_skill_prerequisites — Plan/apply prerequisite setup for built-in skills (install missing CLIs and run interactive auth in a terminal session).
Session management
- terminal_new_session — Create a persistent terminal session (e.g.
coding, dev).
- terminal_kill_session — Destroy a session and all its windows/panes.
- terminal_rename_session — Rename a session.
Window management
- terminal_new_window — Add a new window (tab) to a session. Optionally run a command.
- terminal_kill_window — Close a specific window.
- terminal_rename_window — Rename a window (e.g.
server, tests).
Pane management
- terminal_split_pane — Split a window into side-by-side or stacked panes.
Input / output
- terminal_send_keys — Type into a terminal (send keys or a command).
- terminal_read — Read the current visible content of a terminal without interrupting it.
Listing
- terminal_list — List all sessions, or list windows/panes within a session.
Run & capture
- terminal_run — Run a command in a session and return the output. Creates the session if needed.
Target format
Targets identify which terminal to interact with:
- Session:
coding
- Window:
coding:1 (by index) or coding:server (by name)
- Pane:
coding:1.0 (window 1, pane 0)
Setting up a multi-terminal workspace
When the user needs multiple terminals (e.g. editors, dev servers, test runners):
- terminal_check — ensure the backend is available.
- terminal_new_session — create a session (e.g.
dev).
- terminal_new_window — add windows for each purpose (
server, tests, editor).
- terminal_split_pane — split windows when side-by-side views are needed.
- terminal_send_keys — run commands in specific terminals.
- terminal_read — check output without interrupting.
- terminal_kill_window / terminal_kill_session — clean up when done.
Monitoring running processes
Use terminal_read to peek at what's happening without interrupting the process:
terminal_read({ target: "dev:server", lines: 100 })
This is useful for:
- Checking if a dev server has finished starting
- Reading build/test output
- Monitoring AI agent progress
Automated skill prerequisite setup
When users ask to set up dependencies automatically instead of copy/pasting commands:
terminal_prepare_skill_prerequisites({ skillId: "<skill>", mode: "plan" }) to preview actions
terminal_prepare_skill_prerequisites({ skillId: "<skill>", mode: "apply" }) to execute installs and auth flows
- If auth is pending, continue in the returned
authTarget using terminal_send_keys
Supported skill IDs: cursor-agent, codex-cli, gemini-cli, github, railway, terminal.
Session lifecycle
- Create →
terminal_new_session with a descriptive name
- Populate →
terminal_new_window / terminal_split_pane for each terminal
- Operate →
terminal_send_keys to run commands, terminal_read to monitor
- Reorganize →
terminal_rename_session / terminal_rename_window as needed
- Clean up →
terminal_kill_window for individual windows, terminal_kill_session when done
When to use
- Running interactive CLIs (Cursor agent, REPLs) that require a real terminal
- Setting up multi-terminal workspaces with dev servers, test runners, editors
- Monitoring long-running processes (builds, deployments, AI agents)
- Any command that needs to persist after the viber conversation ends
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: terminal-23description: Create, manage, and monitor persistent terminal sessions for running commands, dev servers, and interactive CLIs. Use when this capability is needed.4---56# Terminal Skill78Manage persistent terminal sessions that survive disconnections and can be viewed from the web UI. Sessions run in the background and their output can be read at any time.910## Tools1112### Health check1314- **terminal_check** — Verify the terminal backend is available. Call before using other terminal tools.15- **terminal_prepare_skill_prerequisites** — Plan/apply prerequisite setup for built-in skills (install missing CLIs and run interactive auth in a terminal session).1617### Session management1819- **terminal_new_session** — Create a persistent terminal session (e.g. `coding`, `dev`).20- **terminal_kill_session** — Destroy a session and all its windows/panes.21- **terminal_rename_session** — Rename a session.2223### Window management2425- **terminal_new_window** — Add a new window (tab) to a session. Optionally run a command.26- **terminal_kill_window** — Close a specific window.27- **terminal_rename_window** — Rename a window (e.g. `server`, `tests`).2829### Pane management3031- **terminal_split_pane** — Split a window into side-by-side or stacked panes.3233### Input / output3435- **terminal_send_keys** — Type into a terminal (send keys or a command).36- **terminal_read** — Read the current visible content of a terminal without interrupting it.3738### Listing3940- **terminal_list** — List all sessions, or list windows/panes within a session.4142### Run & capture4344- **terminal_run** — Run a command in a session and return the output. Creates the session if needed.4546## Target format4748Targets identify which terminal to interact with:4950- **Session:** `coding`51- **Window:** `coding:1` (by index) or `coding:server` (by name)52- **Pane:** `coding:1.0` (window 1, pane 0)5354## Setting up a multi-terminal workspace5556When the user needs multiple terminals (e.g. editors, dev servers, test runners):57581. **terminal_check** — ensure the backend is available.592. **terminal_new_session** — create a session (e.g. `dev`).603. **terminal_new_window** — add windows for each purpose (`server`, `tests`, `editor`).614. **terminal_split_pane** — split windows when side-by-side views are needed.625. **terminal_send_keys** — run commands in specific terminals.636. **terminal_read** — check output without interrupting.647. **terminal_kill_window** / **terminal_kill_session** — clean up when done.6566## Monitoring running processes6768Use **terminal_read** to peek at what's happening without interrupting the process:6970```71terminal_read({ target: "dev:server", lines: 100 })72```7374This is useful for:75- Checking if a dev server has finished starting76- Reading build/test output77- Monitoring AI agent progress7879## Automated skill prerequisite setup8081When users ask to set up dependencies automatically instead of copy/pasting commands:82831. `terminal_prepare_skill_prerequisites({ skillId: "<skill>", mode: "plan" })` to preview actions842. `terminal_prepare_skill_prerequisites({ skillId: "<skill>", mode: "apply" })` to execute installs and auth flows853. If auth is pending, continue in the returned `authTarget` using `terminal_send_keys`8687Supported skill IDs: `cursor-agent`, `codex-cli`, `gemini-cli`, `github`, `railway`, `terminal`.8889## Session lifecycle90911. **Create** → `terminal_new_session` with a descriptive name922. **Populate** → `terminal_new_window` / `terminal_split_pane` for each terminal933. **Operate** → `terminal_send_keys` to run commands, `terminal_read` to monitor944. **Reorganize** → `terminal_rename_session` / `terminal_rename_window` as needed955. **Clean up** → `terminal_kill_window` for individual windows, `terminal_kill_session` when done9697## When to use9899- Running interactive CLIs (Cursor agent, REPLs) that require a real terminal100- Setting up multi-terminal workspaces with dev servers, test runners, editors101- Monitoring long-running processes (builds, deployments, AI agents)102- Any command that needs to persist after the viber conversation ends103104---105> Converted and distributed by [TomeVault](https://tomevault.io/claim/dustland) — claim your Tome and manage your conversions.106<!-- tomevault:4.0:skill_md:2026-04-13 -->