See why work fits.
Local matching uses your skill profile and related skills to rank opportunities. Your matching profile stays on your machine.
How matching works ↗terminalhire / developers
Find paid coding tasks and open-source issues that fit your stack. Use your own agents and tools, and build a record of work other people accept.
CLI, Claude Code, and your MCP-compatible editor.
terminalhire bounties
PAID TASK
acme / payments
Retry the same event.Write once.
Read the scope. Preview before you claim.
01 / Paid work
Read what the poster needs, choose a task, and work in your own environment. Payment follows acceptance of the finished work.
Preview the task, price and access before claiming. Private-repository work needs the poster’s approval before you get access.
terminalhire claim preview <id>Start the workspace and bring your editor, agents and test workflow. The posting determines whether you receive a repository or a smaller set of files.
terminalhire claim start <id>The poster reviews your branch and can ask for changes. When they accept and payment succeeds, you receive 90% of the posted price.
terminalhire claim submit <id>We check submitted work in a fresh Google Confidential Space virtual machine. Recorded results show the outcome and any checked evidence of the run environment.
A separate branch.
An exact revision to check.
Network disconnects before tests run.
The result stays for review.
Process illustration · each submission has its own result.
The patch becomes a commit on a separate branch. That commit is queued for a run.
A machine boots for this run, with a venue workload image checked through Google’s attestation.
Dependencies install through an allowed list of hosts. The measured tests run without external network access.
The result records the commit, test command, outcome and available venue evidence. The VM is torn down.
Our intake checks Google’s signature, the approved venue image digest, the hardware claims, Secure Boot and disabled debugging before recording Confidential Space evidence. This identifies the run environment; Google does not certify the patch’s correctness. Read each run’s evidence: older runs and local checks can use a different environment. Repository access for the developer is still governed by the posting.
Handle an empty batch
Pull request #42async function flush(batch) {+ if (!batch.length) return; await writeBatch(batch);}A pull request. A maintainer’s merge. A link to the code.
02 / Open source
You don’t need a paid task to do work that counts. Find issues on established projects, contribute with your own tools, and earn a merge from someone outside your team.
Terminalhire uses stack fit and signals like maintainer activity and competing PRs to help you choose where to spend your time. The maintainer still decides what gets merged.
Proof of Work links qualifying contributions back to the original pull requests. You choose whether to publish your record.
03 / Your toolkit
The useful parts of Terminalhire, together. Install once, then use the surfaces that suit your workflow.
Local matching uses your skill profile and related skills to rank opportunities. Your matching profile stays on your machine.
How matching works ↗Use the CLI directly, connect an MCP client, or see matches through the Claude Code and editor surfaces.
Connect your tools ↗Trajectory reads local Claude Code sessions to show your current stack and how it is changing. Review it locally, and choose whether to share a derived view.
Explore trajectory ↗Discover opted-in peers. Contact is exchanged when both sides accept an introduction, with chat available in the terminal.
How connections work ↗The working details
For first-party paid tasks, the poster saves a card before publishing. When they accept the work and the charge succeeds, you receive 90%; Terminalhire retains 10% and covers payment processing. A saved card is not escrow or a guarantee of payment.
Open-source contributions are generally unpaid. External bounties follow their own platform’s payment terms.
The whole repository is the default, with read-only access that includes history and every branch. Your workspace starts at the commit pinned when you claim. A poster can choose a narrower set of files instead. Terminalhire grants no push access; your change returns through the platform on a separate branch.
The boundary refuses changes to recognized CI and build files, git internals, and changes to existing package.json scripts or their install and pre/post hooks. A package-lock.json (v2 or v3) or yarn.lock (v1) change is accepted with the package.json change it belongs to, when every new entry comes from the npm registry with its integrity hash. Other lockfiles are refused. Detected network calls, obfuscated code and unclassified manifest changes wait for the poster’s review. New dependencies and new scripts apply unless the poster turns that off.
Your matching profile and skill fingerprint stay on your machine. Connected actions such as claiming work, submitting a patch, publishing a profile or accepting an introduction send the data needed for that action.
Read the privacy details ↗Yes. Run terminalhire jobs for matched roles. Job search is there when you need it; you can take tasks and contribute without looking for a new job.
Ready when you are
Install the CLI, run setup, and start with a paid task or an open-source issue.
curl -fsSL terminalhire.com/install.sh | bash