Toolproof
Toolproof · product preview

A clear review.
A simple yes or fix.

See what your team changed. Approve it or ask for a revision. Know whose turn it is next.

Try a client review below. It is a working interface prototype; no real requests are sent.

Example Studio Your websiteYour review needed

Fictional client review · version 1

Update your support promise

Your team has changed the response time to two business days, as requested. Here is the full wording change.

Before

We reply within one business day.

After

We reply within two business days.

Version details

This example covers the wording in content/support.md only. Repository example/customer-site, pull request #42, target main.

Commit: 8c31a20f5b6879d4e620cf1375a91402b6de7a83

Happy with this version?

Interactive prototype · no account or repository access needed

For developers: execution demo, integration and current limits
  1. 01 · Review

    Inspect the diff at the exact commit. The trusted reviewer tool displays the request before signing.

  2. 02 · Enforce

    The service checks the signature, consumes the approval and requests the merge with an explicit head SHA.

  3. 03 · Reconcile

    Keep the signed operation receipt. Check GitHub separately: accepted does not mean merged.

Interactive example · no account needed

What happens after the customer says yes?

Try approving a change, then alter what the agent requests. Fictional repository, scripted outcomes. Nothing is signed, sent to GitHub, or saved when you leave.

1. Review the customer change

Example Studio / customer-site · PR #42 → main · squash merge

Update the support response time

Customer request: set the response-time promise to two business days.

content/support.md · complete example diff
− We reply within one business day.
+ We reply within two business days.
Commit covered by this review
8c31a20f5b6879d4e620cf1375a91402b6de7a83

2. Try the agent’s next request

Current PR commit in this scenario
8c31a20f5b6879d4e620cf1375a91402b6de7a83
Review the example change to begin.

Real GitHub writes: 0 · No credentials requested

Run the local proof

Local HTTP fixture · no GitHub writes
# From a checkout of the Toolproof repository, Node 20+
node packages/toolproof-actions/github-demo.mjs
BLOCKED   approval used for a different PR
BLOCKED   commits added after approval
ACCEPTED  reviewed head · signed operation receipt
CHECKED   fixture merge status, separately
BLOCKED   replay · real GitHub writes = 0

This package is source-only and is not published to npm. The demo simulates trusted roles in one process. It demonstrates enforcement mechanics, not a production deployment.

An approval layer behind your agent

Use the Node executor inside an authenticated HTTP route or MCP tool handler. Skills can prepare a request; enforcement happens in the credential-owning service. The agent must not have a second route to the credentials or permission to modify that service.

The preview includes an interactive terminal reviewer, a GitHub adapter, signed request receipts, and optional transactional storage with approval revocation on one host. Authenticated hosted review, managed keys, signing-key revocation and distributed storage remain open work. A receipt records the executor's statement; it does not independently prove a merge.

Pilot scope and current limits

Start with one customer, one repository and one approval flow. Keep GitHub required reviews and checks. Native GitHub controls may already cover your needs; Toolproof is testing the additional customer handoff and evidence workflow.

GitHub checks the requested head commit, but base-branch and stack checks here happen before submission. They are not atomic conditions at GitHub. This preview is not ready for deployments where an untrusted actor can change those properties concurrently.

Read packages/toolproof-actions/GITHUB.md in your checkout for the reviewer command, integration contract and release gates.

Free developer tools →