skip to content
install

Two steps to your first match.

Install the Claude Code plugin and run terminalhire init — that's it. init signs you in with GitHub via device flow for richer matches, or stay fully local. No website account needed to start.

01

Install the plugin (inside Claude Code)

One copy-paste. Run this in your terminal — it installs the CLI, adds the Claude Code plugin, and starts terminalhire init (your one-time consent + optional GitHub sign-in via device flow). No website account needed.

curl -fsSL terminalhire.com/install.sh | bash
▸ prefer to run it by hand? three commands inside Claude Code
/plugin marketplace add staqsIO/terminalhire-plugin
/plugin install terminalhire@staqs
terminalhire init
marketplace "staqs" added
installed terminalhire@staqs
one-time consent: statusLine nudge + ambient spinner
terminalhire v0.2.0 ready — matches surface in your Claude Code spinner

Prefer a standalone CLI (no Claude Code)? npm install -g terminalhire — then run terminalhire init.

02Browse matches — or let the spinner surface them as you work
terminalhire jobs
→ downloading index from terminalhire.com/api/index… (anonymous)
→ running match() locally against ~/.terminalhire/profile…
1 Staff Backend Eng · Vercel [oauth, typescript, node] 82% ↗ click title
2 Senior Auth Engineer · (partner) [oauth, postgresql] 74% share with partner agency? yes/no
3 Platform Eng · Ashby [typescript, api, react] 61% ↗ click title
❯ terminalhire save greenhouse:7954688 ✓ saved to your local profile
✦ profile never leaves your machine · no fingerprint sent
optional

Web account — dashboard + open-to-work passive discovery

The matching-relevant GitHub auth already happens inside terminalhire init (CLI device flow). This web sign-in is separate — it unlocks the web dashboard and opt-in recruiter passive discovery. You do not need to do both to get matches. Scope: read:user · public repos only · never private repos.

// what we read from GitHub (read:user scope only)
public user profile (login, name, public email if set)
public repos — languages, topics (forks excluded)
public PR activity (merged PRs in public repos)
private repos — never requested, never accessible
org membership, email list, SSH keys, webhooks
write access of any kind
Sign in with GitHub (web account)

Privacy tiers

Tier 1 (GitHub-verified) is recommended because it solves the cold-start problem. Tier 0 is always available — no account, no data shared unless you explicitly approve a lead.

Tier 0

Local · No account

always available
  • Run terminalhire jobs — downloads the public index anonymously, no fingerprint sent
  • Matching runs against your local encrypted profile — it never leaves your machine
  • Apply-direct: opens employer URL, no data shared, no payload
  • For partner-agency roles: explicit "Share with [partner agency name]? yes/no" prompt
  • Profile encrypted at rest (~/.terminalhire/profile)
  • Employer-repo sessions excluded by default (corp email / git remote detection)
  • Ambient spinner: top local matches shown in the Claude Code spinner while you work — profile never leaves your machine, zero egress
  • Disable spinner only: terminalhire spinner --off (reversible)
  • statusLine nudge after terminalhire jobs — at most once per session
  • Cross-device profile sync
  • Recruiter passive discovery
  • Pre-populated skill tags (you build the profile manually)

Tier 1

GitHub-verified Profile · Opt-in

recommended
  • Everything in Tier 0
  • Sign in with GitHub → instant skill tags from public repos (scope: read:user only)
  • Seniority inference from account age, repo count, followers
  • Cross-device profile sync (explicit opt-in; still encrypted in transit)
  • Open-to-work passive discovery by registered recruiters
  • Verified GitHub identity strengthens lead anti-fraud signals
  • Revoke anytime — server profile deleted, recruiter copies via DPA

What gets installed

terminalhire

CLI binary — run "terminalhire jobs" to download the index and match against a profile that never leaves your device

~/.terminalhire/profile

Encrypted local profile (AES-256-GCM). Never uploaded in Tier 0.

~/.terminalhire/config.json

Local config: tier, nudge toggle, employer-repo exclusion preference

~/.terminalhire/consent.ndjson

Local-only consent log of every lead action you approved or declined

Requirements

Node.js>= 18.0
npm / pnpm / bunany modern
Shellzsh, bash, fish
OSmacOS, Linux, WSL2