What benchturn is
AI labs train and test coding agents on environments: a real repository at a real commit, a task someone actually asked for, and a way to check the result. The best source of those is work that already happened. benchturn records your coding-agent sessions on open-source projects, turns the good ones into environments, licenses them to labs, and pays you a share of every sale.
You keep working the way you do now. There are no tasks to pick up and nothing to annotate.
Install
curl -fsSL https://benchturn.com/install.sh | sh
macOS or Linux, with git. The script downloads one self-contained binary into ~/.local/share/benchturn, links benchturn into ~/.local/bin, and runs benchturn init, which signs you in with GitHub in the browser and connects every coding agent it finds on the machine. You can read the script before running it.
Supported today: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot CLI, Cline, Pi and OpenCode. Two need one manual step, which benchturn init prints: Codex asks you to approve the hooks once with /hooks, and Cline has a Hooks switch under Settings → Features.
Uploads run in the background on a timer. Nothing waits on them, and your agent never slows down.
What is recorded
For each prompt you send to a connected agent inside a git repository:
- the repository's tree before the prompt and after the agent stops, so the change can be replayed exactly
- the transcript of that turn: your prompt, the agent's messages, and the tools it called
- the model name and a timestamp
At the end of a session, the full transcript is recorded as well, including sessions outside a git repository (those have no tree snapshot, only the transcript). A repository with a .gen-ignore file at its root is skipped entirely (benchturn ignore writes one and keeps it out of git).
What is never recorded or shared
- Files named like secrets are never recorded.
.envfiles and keys such as*.pem,*.keyandid_rsaare left out of every snapshot. Anything you type into a prompt, or a tool prints into the transcript, is recorded as it is, so keep secrets out of prompts and add a.gen-ignoreto any repository you want left out. We redact what we find during review. - Your name is never shared. A lab receives the public repository, the prompts and the transcript, with no account information attached.
- Anything in a repository you excluded never leaves your machine.
- Private repositories can be recorded for you, but only sessions on public repositories become environments.
Past sessions
Sessions from before you installed benchturn count too. Run benchturn past and your own agent (Claude Code or Codex) reads the sessions already on disk from every supported product, picks the ones on public repositories with real work in them, checks each for private material, and shows you the list. Nothing is uploaded until you say yes to each one. The instructions the agent follows are public at benchturn.com/agents.md.
Two products delete their own transcripts after 30 days by default (Claude Code and Gemini CLI); benchturn init turns that off so sessions are still there when you get to them.
Where a session goes
| State | Meaning |
|---|---|
| Received | Uploaded and on your portal. |
| Pending review | We are judging whether it can become an environment: a real project, real code changed, a task that can be checked. |
| Environment built | Rebuilt as a reproducible task. |
| Listed | Offered to labs. |
| Licensed | A lab bought it. Your share is added to your pending payout. |
A session that is not a fit is deleted. We email you when a state changes. We don't promise a date.
Getting paid
When a session is licensed, you get a share of the sale. Invited contributors also get a $20 welcome payment once their first three sessions are in. Everything you are owed shows on your portal, with the next payout date.
Payouts go out on the 1st of each month and cover everything owed by the 25th of the month before. Choose PayPal or Wise on the portal, or have us sponsor a GitHub account instead, such as your own project. PayPal and Wise need your legal name and country, which we use only to pay you and for our payment records.
Commands
Running benchturn with no arguments signs you in if needed, connects any new agent, and shows your status. Everything else:
| Command | What it does |
|---|---|
benchturn init | Set up this machine. Safe to re-run; it finishes whatever isn't done. |
benchturn status | What was captured, what is queued, what failed, and recent activity. |
benchturn account | Open your portal. |
benchturn past | Have your agent find and offer your past sessions. |
benchturn ignore | Never record this repository. |
benchturn pause / resume | Stop recording for a while, then start again. |
benchturn delete <id> | Delete one capture here and tell us to forget it. |
benchturn add-machine | A one-hour code that adds another machine to your account. |
benchturn update | Update to the latest release. |
benchturn logout | Sign this machine out. Recording stops. |
benchturn uninstall | Remove the hooks from every agent. |
Your data
Captures live on your machine under ~/.claude/gen until they are uploaded, and a copy stays there afterwards. benchturn delete removes one from your machine and deletes its record and repository snapshot on our side; for complete removal, write to hello@benchturn.com. benchturn uninstall takes the hooks out of every agent's settings and leaves your own agents' files exactly as they were. Removing the background timer with it is coming; until then it stays loaded with nothing to upload. Deleting a session and excluding a repository from the portal are coming.
Help
Ask in our Discord or write to hello@benchturn.com.