A retry gets the same answer.
A restart, a re-run and two workers racing all get the recorded result. The same real-world action is started at most once.
Ratchet is the effect gate for AI agents. A retried charge, deploy or email is started at most once. When nobody can know whether it happened, Ratchet says indeterminate instead of guessing.
A published run against the live service: a loop bug fires a hundred charges at once against a budget.
Attempt 100 / 100Executed 20Denied 80
Every attempt asks the gate first. Each is started at most once, and the wheel turns one tooth.
The gate refuses the step that would cross it. The agent can’t raise the limit.
None of them reaches the vendor. The wheel doesn’t move.
100 attempts · 20 executed · 80 denied · 341 ms
Source · ratchetgate.com worked scenarios · as ofRatchet takes a durable record and hands back a lease. That’s the only call that costs anything.
Ratchet never touches the vendor. No credentials, no outbound access, no proxy. Your code does the work and reports what happened.
A supervisor re-runs the task. Two workers race. The agent wakes from a crash. Every one of them gets the recorded answer: duplicate, replay the result, do not act.
Ratchet doesn’t guess. The effect becomes indeterminate, a known unknown, and your policy decides what happens next. Never a silent retry.
A restart, a re-run and two workers racing all get the recorded result. The same real-world action is started at most once.
If the agent dies before reporting, the effect is marked indeterminate instead of guessed. You choose: block, retry, or check first.
Give a task a budget and the gate refuses the step that would cross it. Rate caps and a breaker for runaway surges come with it.
An agent that lost its context asks what it already did. One call, not a re-derivation.
Declare the steps as one unit and how to undo each. Ratchet hands back the rollback in reverse order, and each undo is gated too, so no double refunds.
Compare the vendor’s own records with what Ratchet approved, and find any action that went around it.
Executed out of 100 simultaneous charges against a budget; 80 denied, all settled in 341 ms.
Source · ratchetgate.com worked scenarios · as ofGated effects a month on the free plan. No card.
Source · ratchetgate.com pricing · as ofOpen source on GitHub. The MCP server is on npm as ratchet-mcp.
An effect gate sits in front of an action that can’t be taken back. Before acting, the agent asks Ratchet; Ratchet takes a durable record and hands back a lease. The agent’s own code does the work and reports what happened. Ratchet never touches the vendor: no credentials, no outbound access, no proxy.
Gate the charge. One call before acting, one after. A retry, a supervisor re-run, a restart after a crash or two workers racing all get the recorded answer: duplicate, replay the result, do not act. The same real-world action is started at most once.
Ratchet keys every effect on an idempotency key. The first ask about a key is the only thing that is metered; duplicate suppression, in-flight checks, retries, reports and reads are free. Unlike a bare idempotency key, Ratchet also covers the case where the agent dies before reporting.
Ratchet doesn’t guess. The lease expires with nothing reported and the effect becomes indeterminate: a known unknown. Your policy for that effect type decides what happens next: block, retry, or check first. Never a silent retry.
Yes. Give a task a budget and the gate refuses the step that would cross it; rate caps and a breaker for runaway surges come with it. In a published run against the live service, 100 simultaneous charges hit a budget: 20 executed, 80 denied, all settled in 341 ms.
Yes. Ratchet speaks plain HTTPS, or MCP over stdio and streamable HTTP, with no SDK required. The MCP server is on npm as ratchet-mcp.
Yes. The source is on GitHub under Apache-2.0, and the project holds the OpenSSF Best Practices Silver badge (project 14440).
Create a free workspace at ratchetgate.com: 1,000 gated effects a month, no card, an email is all it takes. Or let your agent call the gate first, and a real workspace comes back with the decision.
The free plan covers 1,000 gated effects a month. Two HTTP calls: one before your agent acts, one after.