skip to content

Post a paid task

Put a developer on the task holding you up.

The bug you keep working around. The integration you haven’t finished. Hand it to a developer with their own agents and tools, and keep building.

See how it works

Your price. A change to review. No hourly meter.

Review draft Example

acme/storefront

Draft — not published

Double charge on checkout when the coupon field is empty

Access for this task

Read-only
  • Whole repository
  • A working copy at one pinned commit
  • No push access
  • The change comes back on its own branch

Read access includes history and every branch. Review the exposure notice before you publish.

You set the price

$180Fixed price

Example posting · you choose the task and the price.

From “I’m stuck”
to a change you can review.

Start in the AI conversation you already have open. The context comes with you.

  1. Describe the task.

    Ask your connected AI tool to draft a TerminalHire posting. Open the draft, sign in with GitHub, and review it before publishing.

  2. Set the terms.

    Choose the repository, what to share, and a fixed price. Connect the GitHub App to that repo and save a card. Saving a card is not a charge.

  3. Review the work.

    A developer brings their judgment, agents and tools. Their change returns on its own branch. You review it and decide whether to accept.

One task.
A clear finish line.

Pick a task you can describe and a result you can check. These are the kinds of tasks you can hand off.

Fix a bug

“Checkout charges twice when the coupon is blank.”

One charge. Valid coupons still work. A test for the empty field.

Finish an integration

“Make the webhook safe to retry.”

Repeated events create one record. Failed deliveries can be retried.

Ship a small feature

“Let customers export their invoices.”

A CSV download with the right rows, dates and totals.

See where the result came from.

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.

One run, from commit to resultConfidential Space on Google Cloud
01 / submit

Submitted commit

A separate branch.
An exact revision to check.

A fresh confidential VM

02 / installDependencies inAllowed hosts only
03 / testTests runNo external network

Network disconnects before tests run.

Run finished. VM torn down.
04 / review

Recorded result

Commit
Exact revision
Tests
Pass / fail counts
Environment
Available evidence

The result stays for review.

Process illustration · each submission has its own result.

  1. The submitted commit

    The patch becomes a commit on a separate branch. That commit is queued for a run.

  2. A fresh confidential VM

    A machine boots for this run, with a venue workload image checked through Google’s attestation.

  3. Install, then cut access

    Dependencies install through an allowed list of hosts. The measured tests run without external network access.

  4. Evidence for review

    The result records the commit, test command, outcome and available venue evidence. The VM is torn down.

What does Confidential Space add?

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.

See the change.
Make the call.

Read the diff, check the result, and ask for changes if it needs more work. Accepting pays the developer. You choose when to merge.

Review change

acme/storefront

Ready for your review

Double charge on checkout when the coupon field is empty

A blank coupon now follows the no-coupon path.

2 files changed

Branch
fix/blank-coupon
Repository
acme/storefront

For this $180 task, accepting pays for the work. Merging is separate.

checkout.tsExample diff

const coupon = input.coupon;
Removed: if (coupon !== undefined) {
Added: if (coupon?.trim()) {
applyCoupon(coupon);
}
checkout.test.ts

Empty coupon: charge once

Valid coupon: keep the discount

Example review · no posting or payment is made here

Your repository.
Your call.

Choose access for each posting. Developers get no push access. Their work comes back on a separate branch; you decide when to merge.

A separate branch for the work

Your main branch stays yours.

The developer’s change comes back through TerminalHire. You can read it and run your checks before deciding to merge.

Whole repository

Default

A read-only credential for that repository, including its history and every branch. You acknowledge that exposure before publishing.

Files go directly from GitHub to the developer. We do not scan them for secrets.

A proposed set of files

A slice we propose from your tree with our App on that repo, or from the file list you paste without it. You confirm the counts before it is sent.

The confirmed file list and available contents. No repository access.

Files you choose

The files you list yourself, without granting repository access. You supply the list; we do not read your code to choose it.

The confirmed file list and available contents. No repository access.

Before you post

The details,
when you need them.

What does it cost, and when do I pay?

You set a fixed price for the task. For a card-funded posting, accepting the work charges your saved card. Platform credit can cover payment if you have it; a free posting has no charge. Accepting pays for the work. Merging is a separate decision.

Who picks up the task?

Developers are invited by name. There are no bids to compare or interviews to schedule. Private-repository postings require your approval before a developer receives access.

How do I connect my AI tool?

Choose “Hand off a task” to sign in with GitHub and connect your tool. Claude Code, Codex, Cursor and other MCP clients can use TerminalHire.

For Claude Code, add the connector with:

claude mcp add --transport http terminalhire-founder https://terminalhire.com/api/founder/mcp

Then ask it to draft a posting. You review and publish the draft through the link it returns. A draft is not visible to developers.

Are shared files checked for secrets?

On the two scoped options, we check the files we assemble. Recognized keys, tokens and private keys stop delivery. Potential secrets, such as a password in a connection string or a credential-shaped assignment, travel only if you tick each one.

Whole-repository access has no scan: the files go directly from GitHub to the developer. Review the repository, its history and its branches before granting access.

What is checked when the change comes back?

We refuse 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. Unclassified manifest changes, detected network calls and obfuscation wait for your review. New dependencies and new scripts are allowed unless you turn that off.

The developer gets no push access from TerminalHire. Accepting work does not merge it.

Can my connector accept work or pay for it?

No. It can draft and read postings. If you grant publishing access, it can also publish a draft you have reviewed, binding your saved card without charging it. It cannot accept work or move money.

Read the full posting guide →

Keep the momentum.
Hand off the task.