skip to content
for developers

You have an agent. Point it at paid work.

Open-source issues worth merging, live roles, and founders’ paid tasks — surfaced in the terminal you already have open, matched against a profile that never leaves your machine.

What you build here is a record of changes maintainers who are not you chose to accept, and you decide whether to publish it.

curl -fsSL terminalhire.com/install.sh | bash
Or follow the full install guide →
~/projects/my-appclaude code
add rate limiting to the auth endpoints
Editedsrc/middleware/rateLimit.ts
Editedsrc/routes/auth.ts
Fits your typescript + api work(esc to interrupt · 7s)
Staff Backend Eng @ Vercel· 82% match⌘-click
profile never leaves your machine · no fingerprint sent
how it works

Three steps, then it runs itself.

for developers

You have an agent and nothing to point it at.

  1. 01Install the pluginOne bash line installs the Claude Code plugin and CLI. Run terminalhire init for one-time consent — it can sign you into GitHub for richer matches, or skip it. No website account needed.
  2. 02Matched work finds youOpen-source issues worth merging, live roles, and founders’ paid tasks — matched against a local profile that never leaves your machine. Our server never sees your stack or identity.
  3. 03Ship it, and keep the recordYou work the job in your own environment, with your own tools. When a maintainer or a founder accepts it, that acceptance lands on your record — attested by someone who is not you.
Install the plugin →
proof of work

Anyone can claim senior. You can prove it.

Every job leaves a record of whether the work was taken, and it faces both ways. To a founder it is a filter — the beginning of being able to hand work to someone without reading every line first. To a developer it is a portable history of work that strangers accepted, attested by the maintainers who merged it. Your résumé tells your story; this is the part of it someone else signed off on, one click from the code.

  • Someone else merged your codea maintainer on an established repo (≥50★, ≥10 contributors) accepted your PR — attested by a team that isn’t you, and checkable on GitHub.
  • It’s a credential, and it growsevery accepted contribution raises your Proof of Work — 3 merges into repos you don’t own reads as exactly that. Earned, not a skills list you wrote about yourself.
  • Three ways to earn itan open-source issue pays nothing and still counts, a public bounty pays, and a founder’s private task pays. All three land in the same record.
  • Claim it without leaving Claude Codeterminalhire contribute finds an issue matched to your stack; ship it in an isolated worktree, and the merge lands on your public résumé.
Start your Proof of Work →
~/projects/my-appterminalhire
// $ terminalhire contribute · matched to your stack
Credential-building work, matched to you
1 fix: race condition in connection pool 94% → 2.1k★ · 40 contributors
2 feat: add retry backoff to webhook sender 88% → 610★ · 22 contributors
merged → Proof of Work +1
privacy

Your code stays yours. Structurally.

The credential is only worth something if it’s really yours — so privacy is enforced by architecture, not policy. Matching is local, GitHub scope is read-only public, and the only thing that crosses the wire is a payload you explicitly approved.

  • Public GitHub onlywe register just the read:user scope. Private repos, org membership, and commit history are structurally inaccessible.
  • We never see your codematching happens in a subprocess that never sends your code anywhere — source code cannot reach our servers.
  • Never leaves your machine, zero egressthe broad pool is aggregated server-side; your machine downloads it and matches offline.
  • Named consent, per opportunitynever "share with recruiters?" — always "Share with [partner agency name]?", approved explicitly.
lead-payload.tsthe only thing sent
// the only payload that ever crosses the wire to a buyer
type LeadPayload = {
opportunityId: string // the specific role
buyerLegalName: 'Northstar Talent' // named, not a category
approvedFields: { skillTags, seniorityBand, contactEmail }
consentText: string // shown at approval
// ✗ no source code, no file paths, no employer names
}
owned channel

Proof of Work, weekly.

Merged-PR receipts, winnable open-source issues, and what actually reads as proof to the people who decide to hire you. Double opt-in — unsubscribing deletes your email entirely.

Proof of Work

One email a week: merged-PR receipts, winnable OSS issues, and what actually counts as proof.

One command, and it is running.

Install the plugin and matched work surfaces in the tool you already have open. Everything up to accepting the diff runs today.