hauntty
Use hauntty/ht when explicitly requested, when working with existing hauntty sessions, or when Rex is unavailable.
Skill by seruman
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/seruman-hauntty
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
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. Checked Oct 25, 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/hauntty
What's inside
- Skill name
hauntty- Description
- Use hauntty/ht when explicitly requested, when working with existing hauntty sessions, or when Rex is unavailable. Supports persistent shell state, long-running processes, human attach/detach, interactive terminals, screen dumps, scrollback, and waiting for terminal output.
- License
- MIT
- Instructions
- 229 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# hauntty Use `ht`, the hauntty CLI, to drive persistent terminal sessions from Pi's normal `bash` tool. hauntty is a terminal session daemon, not a task runner. Prefer terminal primitives: create/attach sessions, send text or keys, wait for screen content, and dump the screen/scrollback. ## When to use Use hauntty instead of one-shot `bash` when any of these matter: - shell state should persist across commands (`cwd`, exported env, activated venv/dev shell) - a server, watcher, REPL, debugger, or TUI should keep running - the user may need to attach and interact manually, e.g. password prompts - terminal screen state or scrollback is useful context - commands should run in a real PTY rather than non-interactive shell Do not use hauntty for simple non-interactive commands where `bash` is enough. ## Mental model - A session is a named shell/PTY managed by the hauntty daemon. - When a session's process ends, hauntty can keep saved terminal state under that session name for later inspection or restore. - `ht new` creates a session without attaching. - `ht send` types bytes or keys into an existing session. - `ht wait` polls the current plain screen until text/regex appears. - `ht dump` reads the screen, optionally including scrollback. - `ht attach` is for the human to enter the terminal directly. - The daemon auto-starts for `attach`, `new`, or `restore`; inspection commands require a running daemon. ## Core commands ```bash ht new <session> [command ...] # create/start without attaching ht attach <session> [command ...] # attach, creating if needed ht attach -r <session> # read-only attach ht send <session> '<text>' # send literal text, no implicit Enter ht send <session> --key enter # send a key ht send <session> --key ctrl+c # send modified key ht wait <session> '<text>' # wait for substring on screen ht wait -e <session> '<regex>' # wait for regex ht dump <session> # current plain screen ht dump -S <session> # include scrollback ht dump -J -S <session> # include scrollback and join soft wraps ht list # live sessions ht list --all # live and dead sessions ht status # daemon/session status ht kill <session> # kill session ht restore <session> # restore saved state and attach ht new -f <session> [command ...] # discard saved state for that name and create ht prune # remove saved state for ended sessions ``` Global options: ```bash ht --socket <path> ... # override daemon socket HAUNTTY_SOCKET=<path> ht ... # same via env ``` ## Sending text and keys `ht send` does not add a newline. To run a shell command, include a newline in the text or send Enter separately. Prefer `printf`/ANSI-C quoting for newlines and special characters: ```bash ht send dev $'npm test\n' ht send dev 'npm test' ht send dev --key enter ``` Multiple text arguments are sent in order as separate byte chunks; multiple `--key` flags are sent in order after text chunks. Key notation is case-insensitive. Supported modifiers: - `ctrl` / `control` - `shift` - `alt` / `opt` / `option` - `super` / `cmd` / `command` Supported named keys: - `enter` / `return` - `escape` / `esc` - `tab`, `backspace`, `space` - arrows: `up`, `down`, `left`, `right` - `home`, `end`, `pageup` / `pgup`, `pagedown` / `pgdn` - `insert`, `delete` / `del` - `f1` through `f12` - printable single characters, e.g. `a`, `]`, `/` Examples: ```bash ht send dev --key ctrl+c ht send dev --key ctrl+shift+z ht send dev --key cmd+p ht send dev --key up --key enter ``` ## Waiting and dumping `ht wait` checks the plain current screen, not full scrollback. Defaults: - substring match, not regex - timeout: `30000` ms - interval: `100` ms - all rows unless `--row` is set Examples: ```bash ht wait dev 'Compiled successfully' ht wait -t 120000 dev 'ready' ht wait -e dev 'Tests:.*passed' ht wait --row 0 dev 'server running' ``` After a wait, inspect output with `dump`:
From seruman/pi-things, MIT.
More from seruman/pi-things
- 0.587score
git-wt
seruman
Use for requests to create, locate, list, or remove Git worktrees, including immediately after cloning a repository, or to carry uncommitted work into a…
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
rex
seruman
Runs persistent shells, dev servers, long-running commands, and interactive programs in Rex.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
tdd
seruman
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
teteyectl
seruman
Control and inspect a running Teteye terminal through its teteyectl CLI.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
terminal-browser
seruman
Render a real Chromium browser in the terminal and control terminal-browser-managed tabs through CDP.
SkillBFreshness: B★ 1Claude Code +9 - 0.499score
ast-grep-refactor
seruman
Structural refactoring and safe code rewrites with ast-grep across supported languages.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
git-hunks
seruman
Selective hunk-level staging and commits with git-hunks.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
sumocli
seruman
Query Sumo Logic operational logs from the command line using sumocli.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
web-search-guidance
seruman
Use for precise web searches when the user needs better query construction, domain scoping, file-type filtering, recency filtering, language targeting, or…
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
wb-browser
seruman
Use the installed wb CLI for persistent browser automation with compact page JSON and screenshots.
SkillCFreshness: C★ 1Claude Code +9 - 0.477score
diagnosing-bugs
seruman
Diagnosis loop for hard bugs and performance regressions.
SkillCFreshness: C★ 1Claude Code +9 - 0.472score
codebase-design
seruman
Shared vocabulary for designing deep modules.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 13, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/seruman/pi-things
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from seruman
- 0.587score
git-wt
seruman
Use for requests to create, locate, list, or remove Git worktrees, including immediately after cloning a repository, or to carry uncommitted work into a…
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
rex
seruman
Runs persistent shells, dev servers, long-running commands, and interactive programs in Rex.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
tdd
seruman
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
teteyectl
seruman
Control and inspect a running Teteye terminal through its teteyectl CLI.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
terminal-browser
seruman
Render a real Chromium browser in the terminal and control terminal-browser-managed tabs through CDP.
SkillBFreshness: B★ 1Claude Code +9 - 0.499score
ast-grep-refactor
seruman
Structural refactoring and safe code rewrites with ast-grep across supported languages.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
hauntty skill. Agent Mart. https://agentmart.dev/skills/seruman-hauntty (last updated 2026-10-24)