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