skip to content
terminalhire documentation

Claude Code surfaces

TerminalHire installs two optional, ambient surfaces inside Claude Code — a spinner overlay and a status line — plus a handful of in-session skills. The spinner and the status line read a local cache and call nothing. The skills do call the server: that is what they are for.

Spinner

terminalhire spinner --show                  # turn the job/contribution surface on
terminalhire spinner --off                   # turn it off, restore your prior spinner
terminalhire spinner --mode append|replace   # mix with Claude's defaults, or show only matches

The spinner leads with claimable first-party paid tasks when there is any. Below that, roles come before scraped paid tasks — roughly ten contribution opportunities per role, then one scraped paid task. Content stays fresh across sessions: recently-offered items are suppressed for a while so the spinner doesn't loop the same handful of matches indefinitely, and when your top matches run thin or one-note, selection widens into adjacent skill tags and other buckets (contribute) rather than repeating. If your eligible matches are genuinely few, repeats are allowed — the spinner never goes blank to preserve variety.

It writes spinnerVerbs and spinnerTipsOverride in Claude Code's own settings file — the same mechanism Claude Code reads for itself, so there is no separate plugin-only code path to keep in sync.

Status line

terminalhire statusline --on     # turn the status line on
terminalhire statusline --off    # remove it, restore whatever you had before

It carries counts of things waiting on you, in a fixed order — work someone approved you for first, then a message from a poster, then your own postings, then money, then your connections, and a release notice last:

✅ 1 approved — run: th claim start
📝 2 from your poster — run: th claim notes
🧭 1 claim awaits your decision — run: /approvals or th work
💎 3 paid tasks to claim — run: th work
💬 2 unread  ·  ✉ 1 intro request — run: th inbox
⬆ TerminalHire 0.42.24 — run: th update

Every segment ends at a command that acts, rather than at an id you would have to retype. Job matches and scores never appear here — that is what the spinner is for.

init offers it and Enter accepts, so you have it unless you answered n. It chains onto any status line you already had rather than clobbering it, and one command fully reverses that.

The /inbox skill

Inside a Claude Code session, /inbox (or asking "what's in my inbox") surfaces pending invitations, unread chats, and your connections as one selectable list — the in-session counterpart to terminalhire inbox's full-screen terminal TUI. Pick an item to accept an invite, read a thread, or reply, all inline, without leaving the conversation.

The /approvals skill, for posters

If you post a paid task, /approvals (or asking "anything I need to approve?") lists the postings waiting on you, in the same one-list shape as /inbox. It reads through your poster connector, not the CLI, so add that connector first from the connectors list on your dashboard's postings tab. Unlike the three surfaces above, it goes over the network: each step is a call to that connector.

Paste the review link for a claim and it pulls that claim's check results, its verification run, and the patch if our boundary checks held one. From there you can send the work back with a note, which records no verdict and leaves the claim open. Accepting work and paying stay in the browser, or happen automatically on a posting that accepts work after a missed deadline. The skill hands you the claim's review link for that, and nothing on the connector can do either.

Ask it to watch ("tell me when work comes in") and it checks on a timer, every 30 minutes unless you ask for another interval, through Claude Code's /loop. It only reads: each check asks how many postings wait on you, and when that changes it tells you what is new, with the review link. It stays quiet when nothing has changed. A resubmission after you ask for changes counts as new, so you hear about it again. It stops when you say so, or when your connector is signed out. You have your posting's decision window, 48 hours by default, to decide on a submission (see Your decision deadline); the watch is there so work does not sit unseen for most of them.

The other skills

Six more ship with the plugin, each the in-session form of the command it is named after: /claim walks a claim from preview to submission, /bounties and /jobs show what you matched, /connect and /chat cover the connection side, and /post drafts a posting. Ask in plain words and the right one runs — you do not have to remember the slash.

/audit-review is for TerminalHire reviewers on the allowlist only. It walks a paid human audit through terminalhire audits: take an order, read what the poster asked, clone the paid commit, write the report, and dry-run it. It publishes only when the reviewer says to.

Tuning nudges

terminalhire config --nudge session    # nudge at most once per session (default)
terminalhire config --nudge always     # nudge every render
terminalhire config --nudge every:N    # nudge every Nth render
terminalhire config --connect on|off   # opt in/out of ambient peer/poster surfacing