hty
Puppeteer for the terminal. Let AI agents drive any interactive CLI — editors, REPLs, auth flows, scaffolding wizards — by reading the screen and sending keys.
Install
Point your AI agent at the skill:
Install hty using this skill: https://hty.sh/skill.md
It teaches the agent when to reach for hty, how to drive sessions, and handles installing the hty CLI itself.
Or install the skill directly via the skills CLI :
npx skills add LatentEvals/hty --skill htyInstalling hty yourself? See all methods →
Why hty exists
Unlock a world of TUI and CLI software for your AI agent.
If you’ve used agents, you’ve seen them struggle with things like create-next-app, or watched them try to stage a sprawling diff by shuffling files into /tmp, rm-ing changes, and getting hopelessly confused. If only they could use git add -p. Well, now they can.
hty wraps any interactive program in a persistent PTY session. Your agent reads the rendered terminal the way you do and types the way you would.
# agent decides to use hty to create its terminal
hty run --name create-next-app -- create-next-app my-app
# agent looks at the terminal to see what to do
hty snapshot create-next-app
# agent sees: "Would you like to use TypeScript? (Y/n)"
hty send create-next-app --text "y\n"
# ...repeat for each remaining prompt...
# delete the terminal session
hty delete create-next-appWhat you get
- Any interactive program works.
vim,psql,btop,git add -p,gh auth login,create-next-app— if a human can use it, an agent can too. - Sessions persist. The server auto-starts and keeps sessions alive across invocations. Pick up where you left off.
- Watch live. Open another terminal and run
hty watchto see exactly what the agent sees, in real time. - Full replay. Every session is recorded.
hty replayplays it back through a fresh VT engine — debug what happened, or demo it to your team. - Wait primitives that actually work.
--textfor substring match,--idlefor output settling,--exitfor process completion. All with timeouts. Nosleep 2and hope. - Remote observation. SSH tunnel to a remote machine and
watchorattachto sessions running there. No protocol changes needed. - Single binary, zero dependencies. One
curl | shand you’re running. Built on Ghostty’s production-grade VT engine in Zig.
Get started in 30 seconds
curl -fsSL https://raw.githubusercontent.com/LatentEvals/hty/main/scripts/install.sh | sh
hty run --name demo -- top
hty wait demo --text "PID" --timeout 5000
hty snapshot demo
hty kill demo
hty logs demo # still works — the recording is preserved
hty delete demo # permanently remove the session and its log