provefab.
Turns labelled GitHub, Jira or Linear issues into pull requests that arrive green, reviewed by a second model, with their evidence.
Terminal
curl -fsSL https://provefab.com/install.sh | shWith an agent
Set up Provefab on this repository: follow https://provefab.com/docs/agents/The agent writes the configuration; sign-ins, keys and the service stay with you. Agent guide Provision the sandbox runtime and offline dependencies first. Supported versions and logins
| input | GitHub, Jira or Linear issues you label |
| output | pull requests with their evidence |
| agents | Codex · Pi; Claude stages temporarily unavailable |
| decides | your fmt, lint and tests |
| reviews | a second model family |
| after merge | opt-in checks and a human-reviewed revert PR |
| routing | cheapest model that fits |
| runs on | Mac and Linux builds; native enforcement tested on Mac |
See it work
45 seconds: what Provefab says no to on the way to a pull request, and the one decision it leaves to you.
Agents write the code. Your checks decide what ships.
Every issue runs the same line. Rust coordinates each station; agents work in a separate worktree, with native command restrictions and guarded tool calls.
- You
- AI agent
- Provefab
- Your checks
Label (by you)
issue #42You label an issue. That is the go-ahead.
Route (by Provefab)
sonnet · gpt-5.5Picks the cheapest model that can do the job.
Plan (by an AI agent)
reproduce firstAn agent reads the code and plans. Bugs are reproduced first.
Implement (by an AI agent)
+15 −2An agent writes the change in a worktree, with native enforcement and a guard.
Check (by your checks)
failing test, then 42 tests passYour offline fmt, lint and tests decide. Red goes back to the agent.
↺ red test → fixReview (by an AI agent)
+1 testA model from another family reviews. Each finding becomes a test.
↺ finding → test → fixPull request (by Provefab)
PR #43 ✓ ready to mergeOpened with its evidence. You click merge.
You merge. Pro can auto-merge small, tested changes.
Your checks decide. Protect what defines a pass.
Validation protection is an explicit list you configure. It does not isolate every host secret. Security and support limits
Native sandbox plus a guard
Commands and their children run with network denied and writes limited to the worktree and private temporary files. Known credential paths are denied. Missing enforcement stops the run.
Cross-model review
The reviewer runs on a different model family than the implementer whenever your catalog has one, so one model's blind spots don't approve themselves.
Protect the checks you rely on
Declare your validation scripts, configuration and dependencies as protected paths. Those paths stay unwritable. Other deleted or disabled tests are flagged in the PR and block auto-merge.
Free to run. Pro when you want it to merge.
Free
- +Labelled issues become verified pull requests
- +Issues from GitHub, Jira Cloud or Linear (Jira and Linear in beta); pull requests on GitHub
- +Your checks, a guard on every agent, cross-model review
- +Pull requests wait for your review
- +Risk-aware checks: migrations, CI, dependencies and your own sensitive paths get stricter review
- +Repository rules: your conventions in one file, given to every stage and checked by the reviewer
- +Reviews of your own pull requests on request: a label or /provefab review, one summary comment, nothing from the pull request runs
Pro
- +Everything in Free
- +A second reviewer on a different model
- +Merge policies: ready to merge by default, or auto-merge small, tested PRs only when every fail-closed check passes; risky changes never merge without a person unless you allow them
- +Cost reports: cost per merged PR, per model and repository
- +Reviewer calibration: which review model's findings your team keeps, with sample sizes
- +Rule proposals: Provefab drafts your team's rules from its decisions, in one pull request a week at most that you merge or close
Runtime, login and offline check prerequisites
Does my code leave my machine?+−
Issue text and code needed for a stage go to your configured model providers; Jev receives issue text when configured. Provefab keeps the change record on your machine. Model calls use a supported login; sandboxed commands have no network access.
Which plans and workers work?+−
Codex 0.162.1 accepts supported personal logins stored in files or an API key; workspace and managed modes refuse. Pi 1.0.3's sandboxed Bash was tested with SRT 0.0.79. All Claude stages temporarily refuse before version/auth probes because implicit host context loading is unverified. Select Codex or Pi and replace Claude entries in your catalog; keep user state. Check the docs before choosing a worker.
Which systems does Provefab run on?+−
Builds are available for macOS (Apple Silicon and Intel) and Linux (x86_64 and ARM64), with launchd or systemd user services. Native sandbox enforcement was exercised on Apple Silicon macOS; Linux enforcement remains unverified. SRT must be provisioned separately. A missing or unverifiable runtime stops execution, with no unsandboxed fallback.
How does Provefab keep model costs down?+−
Jev rates how hard each issue is, how much planning it needs and how risky a mistake would be. Provefab then runs each stage on the cheapest model that meets that level: your plan first, then your API keys by price. Prices update daily. An implementation that keeps failing moves one tier up.
What happens after a pull request is merged?+−
If you opt in, Provefab runs your repository's commands again on the exact commit its pull request produced. A failing command is rerun once, so a flaky test does not count as a failure. If the failure is confirmed, Provefab checks the current branch: when a later commit already fixed it, it only tells you. Otherwise it can open a revert pull request, but only if the reverted code passes the same commands and the merge can be undone as one commit. Reverts always wait for human review. This checks your commands, not deployments or production health.
What does Provefab keep about each change?+−
A local record of what it observed, what the models claimed and what you decided. Reply /provefab F2 rejected (or accepted, fixed, waived) on a pull request to record your decision on a review finding; only commands from the issue author, and repository owners, organization members and collaborators, count. provefab export writes the record as JSON Lines with free text removed by default; provefab prune deletes the record of finished tasks last updated before a date. It is free, stays on your machine, and is what Pro's calibration report is built from.
Does it merge without me?+−
Not unless you turn it on. By default a pull request arrives green, with its evidence, and waits for your click. Pro can auto-merge small changes under a policy you set: size cap, excluded paths, a test change required.
What happens when a change touches something sensitive?+−
Provefab checks which files each round changed. Migrations, CI, dependencies, infrastructure, secret-looking files and paths you name are treated as risky: your extra commands for that area run, the review runs on the frontier tier when a frontier model from another provider is configured (otherwise the usual cross-provider reviewer stays), the pull request gets a Risk section and the issue gets a label. Pro never auto-merges a risky change unless you allow its category, and never when the changed files cannot be determined. This raises scrutiny; it does not prove a change harmless.
Can Provefab review pull requests my team writes?+−
Yes. Put the provefab:review label on a pull request, or comment /provefab review (owners, members and collaborators only), and Provefab reviews it with a model from your catalog, your repository rules and the risk policy. It keeps one summary comment on the pull request, updated on each new review, and records the findings so your team can mark them accepted, rejected or fixed. It never approves, requests changes on or merges a person's pull request, and the pull request's code never runs: the reviewer reads the change with read-only commands inside its own checkout.
Does Provefab learn our conventions?+−
Yes, through a rules file you control. Write your conventions in .provefab/rules.md, one numbered rule each, optionally limited to some paths: every task reads them from your base branch, the agents follow them and the reviewer reports a violation with the rule's number. Provefab Pro can also propose new rules from the decisions your team records (findings you reject, changes you request when closing a pull request), each backed by at least two of them, in one pull request a week at most; merging it approves the rules, closing it refuses them. Rules guide the agents; they do not guarantee correct code.
Can my issues live in Jira or Linear?+−
Yes, in beta. A repository can take its issues from a Jira Cloud project or a Linear team: the same label hands a ticket to Provefab, which reports progress with labels and comments on the ticket and never changes its status. The code and the pull request stay on GitHub, and the ticket key goes in the branch and the pull request title so your Jira or Linear GitHub integration links them. Sign in once with provefab login jira or provefab login linear; the credentials stay in the macOS Keychain, or on Linux in a file readable by your account only (mode 600), not encrypted. Beta means it is tested against recorded API responses, not yet against live sites.
What happens when the license expires?+−
Pull requests keep opening and each one still shows its cost; the second reviewer, auto-merge, cost reports, calibration reports and rule proposals stop.
Does Pro phone home?+−
Only to renew your key, and you can turn that off. The license check itself never needs the network.
Can I get a refund?+−
Yes. Your first payment is refunded in full if you ask within 14 days. Renewals are not refunded; you can cancel any time and keep Pro until the end of the paid period.
How do I cancel?+−
From the Polar customer portal at polar.sh/provefab/portal: sign in with your purchase email, then cancel. You keep Pro until the end of the paid period. The portal also has your invoices and the provefab-pro download.
What is the Functional Source License?+−
You can use, change and share Provefab for anything except a competing product. Each version becomes Apache 2.0 two years after its release.