Your prompt is a contract. Caret enforces it — checking every tool call against your intent and intervening the moment an agent drifts, before the damage is in the diff.
↓scroll to see the pipeline
enforce
Every tool call is evaluated against your original prompt in under 50ms. Not just recorded — checked. Scope, approach, cost, destructive patterns. The supervisor runs a continuous evaluation loop on every Read, Write, Edit, and Bash call your agent makes.
src/api/auth/route.ts
+ import { rateLimit } from '@/middleware/rateLimit' + export async function POST(req: Request) { + await rateLimit(req, { window: 60, max: 10 }) const body = await req.json()
intervene
Three intervention modes, configurable per drift type. Alert notifies you instantly. Steer injects corrective context into the agent's conversation. Block stops destructive actions before they execute.
auth.test.ts:42–58 — blocked
it('rejects expired tokens', async () => { const expired = createToken({ exp: past }) const res = await POST(expired) expect(res.status).toBe(401) })
ship
Drift patterns compound across your team. When one developer's agent tries something destructive, every agent on the team learns from it. Shared policies, shared blocklists, shared confidence.
Supervise-by-default. Ship with confidence.
Tuesday
A typical developer runs 12 agent sessions a day. Three will drift. One will attempt something destructive — deleting tests, force pushing, running commands outside scope. You won't see it in CI because the PR isn't open yet. You won't see it in logs because agents don't log what they almost did.
That's 12 runs today. Three drifted. One tried to delete your test directory. Caret caught all of them. What's catching yours?
integrations
pricing
Free for solo. $19/dev/mo for teams. Talk to us for enterprise.
get started
Install the CLI, hook into your agent, start supervising. No config files.