Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/coder-agent-tty
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, data, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/agent-tty
What's inside
- Skill name
agent-tty- Description
- Terminal and TUI automation CLI for AI agents. Use when the user needs to create a terminal session, run a command in a terminal, automate an interactive CLI or TUI, wait for terminal output, capture a TUI screenshot, export a terminal recording, or test a CLI workflow with reviewable artifacts.
- License
- Apache-2.0
- Instructions
- 109 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Terminal Automation with agent-tty
If `agent-tty` is not already available in the environment, fetch the current `README.md` from `coder/agent-tty` on GitHub and follow its installation instructions before continuing. Otherwise use `agent-tty` directly.
Examples use `jq` for JSON parsing; any JSON-processing tool works.
Prefer isolated homes, JSON envelopes, and renderer-backed artifacts so terminal workflows stay reviewable and reproducible.
## Core Workflow
Every terminal or TUI automation task should follow this pattern:
1. **Create an isolated home** with `--home`.
2. **Check prerequisites** with `doctor --json` before screenshot or recording work.
3. **Create a session** with `create --json`.
4. **Run setup commands** with `run` instead of simulating long shell typing.
5. **Wait on observable terminal state** with `wait` instead of blind sleeps.
6. **Inspect the current screen** with `snapshot`.
7. **Capture proof artifacts** with `screenshot` or `record export`.
8. **Destroy the session** when finished.
```bash
AGENT_HOME="$(mktemp -d)"
agent-tty --home "$AGENT_HOME" doctor --json
SESSION_ID=$(agent-tty --home "$AGENT_HOME" create --json -- /bin/bash | jq -r '.result.sessionId')
agent-tty --home "$AGENT_HOME" run "$SESSION_ID" 'printf "ready\n"'
agent-tty --home "$AGENT_HOME" wait "$SESSION_ID" --text 'ready' --json
agent-tty --home "$AGENT_HOME" snapshot "$SESSION_ID" --format text --json
agent-tty --home "$AGENT_HOME" screenshot "$SESSION_ID" --json
agent-tty --home "$AGENT_HOME" record export "$SESSION_ID" --format webm --json
agent-tty --home "$AGENT_HOME" destroy "$SESSION_ID" --json
```
## Essential Commands
```bash
# Environment and lifecycle
agent-tty --home <path> doctor --json
agent-tty --home <path> create --json -- /bin/bash
agent-tty --home <path> inspect <session-id> --json
agent-tty --home <path> destroy <session-id> --json
# In-session control
agent-tty --home <path> run <session-id> 'command here' --json
agent-tty --home <path> type <session-id> 'literal text' --json
agent-tty --home <path> paste <session-id> 'multiline payload' --json
agent-tty --home <path> send-keys <session-id> Enter Ctrl+C --json
agent-tty --home <path> batch <session-id> '[{"run":"htop","noWait":true},{"wait":{"screenStableMs":1000}}]' --json
# Observation and proof
agent-tty --home <path> wait <session-id> --text 'ready' --json
agent-tty --home <path> wait <session-id> --regex 'READY>$' --scope cursor-line --json
agent-tty --home <path> wait <session-id> --screen-stable-ms 1000 --json
agent-tty --home <path> snapshot <session-id> --format text --json
agent-tty --home <path> screenshot <session-id> --json
agent-tty --home <path> record export <session-id> --format webm --json
```
## Common Patterns
### Bootstrap a shell session
```bash
AGENT_HOME="$(mktemp -d)"
SESSION_ID=$(agent-tty --home "$AGENT_HOME" create --json -- /bin/bash | jq -r '.result.sessionId')
agent-tty --home "$AGENT_HOME" run "$SESSION_ID" 'pwd && ls -la' --json
agent-tty --home "$AGENT_HOME" snapshot "$SESSION_ID" --format text --json
```
`snapshot` and a matched `wait` carry an optional `screenHash` (a hash of the visible screen text). Compare it across calls to tell whether the visible screen actually changed instead of diffing full text; equal hashes mean identical visible content even when the event sequence advanced.
### Drive an interactive CLI or TUI
Use `batch` to run an ordered sequence of input-and-`wait` steps in one call instead of separate `run`/`wait`/`send-keys` invocations. Each `wait` step is anchored to a Wait Baseline — it only observes screen state produced _after_ the preceding input step, so the sequence cannot race ahead and match a stale screen. A batch stops at the first failed step by default (`--keep-going` attempts every step).
```bash
AGENT_HOME="$(mktemp -d)"
SESSION_ID=$(agent-tty --home "$AGENT_HOME" create --json -- /bin/bash | jq -r '.result.sessionId')
agent-tty --home "$AGENT_HOME" batch "$SESSION_ID" '[
{ "run": "<interactive-command>", "noWait": true },
{ "wait": { "screenStableMs": 1000 } },
{ "sendKeys": ["Down", "Down", "Enter"] },
{ "wait": { "text": "<expected-label>" } }
]' --json
agent-tty --home "$AGENT_HOME" screenshot "$SESSION_ID" --json
```
A `wait` can still match the _echo_ of a just-typed command. Add `"scope": "cursor-line"` to a wait step (or `--scope cursor-line` on a standalone `wait`) to restrict `text`/`regex` matching to the row the cursor is on — once Enter is pressed the cursor moves past the echoed line, so the echo cannot match. This is ideal for prompts, which render at the cursor; rendered lines are right-trimmed of trailing spaces, so anchor a prompt displayed as `READY> ` with `READY>$`. A standalone cursor-line wait issued right after an input command can still observe the pre-input screen (for example a repeated prompt in an echo-disabled application), so pass the input command's returned `seq` as `--after-seq`; `batch` wait steps are anchored automatically. For output that scrolls past the cursor, use a distinctive output token or `screenStableMs`.
### Export reviewer-facing artifacts
```bash
AGENT_HOME="$(mktemp -d)"
SESSION_ID=$(agent-tty --home "$AGENT_HOME" create --json -- /bin/bash | jq -r '.result.sessionId')
agent-tty --home "$AGENT_HOME" run "$SESSION_ID" 'printf "artifact proof\n"' --json
agent-tty --home "$AGENT_HOME" wait "$SESSION_ID" --text 'artifact proof' --json
agent-tty --home "$AGENT_HOME" screenshot "$SESSION_ID" --json
agent-tty --home "$AGENT_HOME" record export "$SESSION_ID" --format asciicast --json
agent-tty --home "$AGENT_HOME" record export "$SESSION_ID" --format webm --json
```
## Anti-Patterns
- **Do not reach for `tmux`, `screen`, or ad hoc PTY wrappers first** when `agent-tty` can provide an isolated, inspectable session.
- **Do not rely on blind `sleep` calls** when `wait --text`, `wait --idle-ms`, or `wait --screen-stable-ms` can observe terminal readiness directly.
- **Do not bypass `--json`** when another tool or agent needs machine-readable results.
- **Do not use external screenshot tools as the primary proof path** when `agent-tty screenshot` and `agent-tty record export` can produce renderer-backed artifacts tied to the session timeline.
- **Do not leave sessions running after the task ends**; destroy them explicitly.
- **Do not rewrite public examples into repo-local development invocations**; the public workflow should stay `agent-tty ...`.From coder/agent-tty, Apache-2.0.
More from coder/agent-tty
- 0.565score
improve
shadcn
Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.
SkillCFreshness: C★ 29Claude Code +9 - 0.557score
dogfood-tui
coder
Structured TUI dogfooding and QA workflow using agent-tty.
SkillCFreshness: C★ 29Claude Code +9 - 0.557score
eval-guide
coder
Guide for running statistically meaningful agent-tty evals with trials, parallelism, and A/B comparison.
SkillCFreshness: C★ 29Claude Code +9 - 0.557score
release-maintainer
coder
Internal maintainer SOP for version bumps, release PRs, tagging, publishing, and post-publish verification in this repository.
SkillCFreshness: C★ 29Claude Code +9 - 0.556score
agent-terminal
coder
Terminal and TUI automation CLI for AI agents.
SkillCFreshness: C★ 29Claude Code +9 - 0.540score
diagnosing-bugs
coder
Diagnosis loop for hard bugs and performance regressions.
SkillCFreshness: C★ 29Claude Code +9 - 0.535score
codebase-design
coder
Shared vocabulary for designing deep modules.
SkillCFreshness: C★ 29Claude Code +9 - 0.535score
tdd
coder
Test-driven development.
SkillCFreshness: C★ 29Claude Code +9 - 0.535score
domain-modeling
coder
Build and sharpen a project's domain model.
SkillCFreshness: C★ 29Claude Code +9 - 0.532score
to-issues
coder
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.
SkillCFreshness: C★ 29Claude Code +9 - 0.532score
improve-codebase-architecture
coder
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
SkillCFreshness: C★ 29Claude Code +9 - 0.532score
triage
coder
Move issues and external PRs through a state machine of triage roles — categorise, verify, grill if needed, and write agent-ready briefs.
SkillCFreshness: C★ 29Claude Code +9
Signals
- Stars
- 29
- Forks
- 3
- Open issues
- 1
- Last commit (this folder)
- Aug 21, 2026 (2 months ago)
- Last release
- Jun 23, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/coder/agent-tty
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from coder
- 0.833score

Coder
coder
Manage Coder workspaces, templates, and cloud development environments
ConnectorAFreshness: ARemote★ 17.2KClaude Code +3 - 0.686score
AGENTS.md · coder/coder
coder
AGENTS.md from coder/coder: 97 lines covering Autonomy and clarification, Task-specific guidance, Workflow, Essential commands and more.
TemplateAFreshness: A★ 17.2KCodex +5 - 0.557score
eval-guide
coder
Guide for running statistically meaningful agent-tty evals with trials, parallelism, and A/B comparison.
SkillCFreshness: C★ 29Claude Code +9 - 0.557score
dogfood-tui
coder
Structured TUI dogfooding and QA workflow using agent-tty.
SkillCFreshness: C★ 29Claude Code +9 - 0.557score
release-maintainer
coder
Internal maintainer SOP for version bumps, release PRs, tagging, publishing, and post-publish verification in this repository.
SkillCFreshness: C★ 29Claude Code +9 - 0.556score
agent-terminal
coder
Terminal and TUI automation CLI for AI agents.
SkillCFreshness: C★ 29Claude Code +9
Cite this page
agent-tty skill. Agent Mart. https://agentmart.dev/skills/coder-agent-tty (last updated 2026-10-24)