Overhand Beta GetOverhand Get notified

Under the hood

It runs on your computer. Here's what that means.

How Overhand is built, in plain words: where your work happens, what our one hosted piece does, and what stops an agent before it does something you didn't ask for.

Your computer does the work.

  • A program on your computer Overhand starts your agents there, and your computer serves Overhand to your browser.
  • Your repos, its own branch Agents work in your own repos, each ticket in its own worktree on its own branch.
  • Secrets in your keychain Secrets you give Overhand go in your keychain (Keychain on macOS, the keyring on Linux), or a private file if you set one.
  • Nobody in between Your agents talk to their model providers the way they do without Overhand.

Pro and Team: your computer, from anywhere. Not a cloud.

  • Any device, no network setup Pro and Team open Overhand on any device. Your agents still run on your computer, and when it's off, they stop.
  • Peer to peer, encrypted Your browser and your computer connect peer to peer over WebRTC, which encrypts the connection. When a network blocks a direct path, Cloudflare's TURN servers pass the encrypted traffic along without being able to read it.
  • Pinned to your computer Your computer signs its side of each connection, and your browser checks that signature against the key it pinned on its first connection, or from a pairing link, so the relay can't pose as your computer.
  • Encrypted push Push notifications are encrypted by your computer and sent through your browser's own push service.

What the relay at app.overhand.dev does, and doesn't see.

  • What it does It signs you in (WorkOS handles the sign-in), links your computer to your account, introduces your browser to your computer, and checks your plan.
  • What it never sees It never carries Overhand's own traffic, so it never sees your code, diffs, keys, tokens or agent transcripts.
  • What it keeps Your account id, your plan and its Paddle ids, the keys of computers you've unlinked, and a monthly count of TURN credential grants. WorkOS keeps your email for sign-in.
  • On Team It also keeps members' emails and roles, project owners and backups, and a short log of recent questions, answers, results, hand-offs and comments. Every message is checked against a fixed list of fields first, and text that looks like code or a secret is refused.

What the relay stores is listed in the privacy policy.

Payments.

  • Paddle handles billing EU prices include VAT; US sales tax is added at checkout. Paddle is the merchant of record and handles payment, tax and invoices.
  • Your card stays with Paddle It never reaches us. Nothing on your computer stops working if you stop paying.

The daily cap.

  • Billed accounts stop A daily cap stops pay-per-use and cloud agents once they've been billed about that much today. An account not yet known to be on a plan counts as billed. Plan accounts aren't charged per run; they follow their plan's usage limits.
  • You set the amount In Settings, in dollars a day; 0 turns it off. A stopped agent waits until tomorrow, or until you raise it.

The guard.

  • A hook in each agent CLI Overhand's guard is a hook in the agent's own CLI: it checks each command, file read, edit and file search before it runs, and logs each one it blocks. Confirmed blocking in a real run: Claude Code, Codex and OpenCode. Aider runs no shell commands (confirmed). Set up, not yet confirmed: Cursor Agent and Gemini CLI.
  • Pushes, merges and deploys It blocks force pushes and pushes to shared branches like main; merging, closing or approving pull requests; deploys, infrastructure changes and publishing packages.
  • Secrets and production It blocks production env files, production databases and destructive SQL, and your keychain, SSH keys and AWS, Google Cloud and Azure credentials.
  • On Plan and warn only It also blocks edits, commits and pull requests.
  • Aider It has no hook, so Overhand runs it with no shell commands and with secret files out of its reach. Settings shows how the guard reaches each agent account.
  • What a hook can't see A hook sees the command an agent asks for, not what a script or program it runs does next; a determined agent can hide a step there.

Ship's safety rules.

  • Who merges With Claude Code, Codex and OpenCode, agents can't merge: only Ship merges, through GitHub's own auto-merge once the required checks pass. Aider runs no shell commands. Cursor Agent and Gemini CLI run through the same guard, not yet confirmed in a real run.
  • GitHub's auto-merge On Ship, Overhand hands an agent's pull request to GitHub's own auto-merge. GitHub merges it only when every required check and branch rule passes; Overhand never presses merge and never skips a rule.
  • Required checks first Ship merges only where the base branch has a required check; until it has one, the project builds and opens pull requests. A pull request goes only once its proof is complete.
  • Protected files wait A change to a file you protect waits for your merge. Workflow files and code owners are protected from the start.
  • A merge limit, and Undo A daily limit caps how many pull requests Ship merges, and you choose the number. Every merge comes with an Undo that opens a revert pull request.