Skip to content
Agentmart
Submit a tool

hauntty

Use hauntty/ht when explicitly requested, when working with existing hauntty sessions, or when Rex is unavailable.

Skill by seruman

IndexedMIT★ 1
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from seruman

Cite this page

hauntty skill. Agent Mart. https://agentmart.dev/skills/seruman-hauntty (last updated 2026-10-24)