Agentic Control Plane

Your agents never sleep. Control them so you can.

Your agents act through model and tool calls. ACP records every one, learns the rules from the calls you approve, and controls what runs — across every agent and framework your team uses. Free up to five agents.

$git push --force origin main
policyDENIED
ruleprotected-branch · logged ~/.acp/audit.jsonl
Some actions stay one rule away from impossible — not even an approved click reaches them. This one happens on camera below.
$rm cleanup.sh
policyHELD FOR APPROVAL
ruledestructive-delete → ask · Jul 20
Our own agent, mid-session — while it was setting up approvals for another agent. The agent building the cage got caged.
>daily model budget · exceeded mid-run
budgetCAP HELD
rulellm-daily-cap · halted, not warned · Jul 21
The agent had admin access to raise its own cap — and declined. The net held against its own author.
$gcloud run services update-traffic api --to-revisions hotfix=100
policyDENIED
ruledeploy-via-pipeline · mid-incident · Jul 21
The deny didn’t block the fix — it blocked the shortcut. The fix shipped through review: ten minutes slower, auditable forever.
$gh pr merge 41
brokerBROKERED
rulecredential-broker · gateway-held token · Jul 21
Denied first — GitHub wasn’t connected — then run on the token ACP holds server-side. The model never saw a credential — the local one never left disk.
>model spend · $15/day · unmetered key
meteringCAUGHT
ruletraced to the one container outside the plane · Jul 21
The bill that surprises you is always from the agent you didn’t control.
Watch the first one happen — 60 seconds →  ·  all real, all ours — the full log
# free up to 5 agents · one command · every agent
$ curl -sf https://agenticcontrolplane.com/install.sh | bash

Prefer fully on-device? Add --local — no account, nothing leaves your machine. what each mode writes →

tool and model calls controlled to date · metered, not estimated
/ what acp does

Control autonomous agents.

1 · Record every call

Every agent session traced action-by-action: each call’s cost, latency, and the policy decision it checked and enforced. When a run costs $50, you can see exactly why.

2 · Learn the right rules

ACP uses your agent's real behavior to propose custom policy. Shadow mode replays your last week of real calls and shows what would have been denied before you apply it.

3 · Control what runs

Deterministic allow, request approval, or deny on every single action. Set policy by person, agent, role, or tool.

Claude Code, Codex, Cursor, OpenCode, OpenClaw, CrewAI, LangGraph — each ships its own permission system, with its own rules in its own place. ACP is one set of rules, enforced across all of them. See every integration →

/ is this you?

You shipped an agent. Now it's a black box.

You wrote checks to keep the agent from doing something dumb. They hold while you babysit it — and the whole point of handing off is that you stop watching. If any of these is you:

The bill is a mystery

Same task, wildly different cost — and you find out from the invoice, not the run.

It touches risky data

It reads your .env, pulls customer PII, pipes secrets straight into a prompt — and you can't see what left the building.

Many agents, no single control panel

Every team ships in a different framework — and there's no one place to see or control them all.

/ record

What did it actually do all day?

When a run costs $50 or does something you didn't expect, you need to see what actually happened. ACP records every action in order — each model call and tool call with its latency, tokens, cost, and allow-or-deny decision, plus the real identity behind it. Click any event and see exactly what it did.

It's also where the bill comes from. The same task can run under a cent one time and hundreds of dollars the next, because cost tracks how much context the orchestration loop re-reads to decide its next move — and that scales with how far the run wanders. What is tool call economics? →

  • The full timeline — loop, leaf, and tool calls, as they happened
  • Per-event cost, latency, model, and the policy decision that gated it
  • Loop vs leaf: the orchestration loop re-reading context is usually most of the bill
  • Real identity and scopes carried through every delegation hop
  • Budget caps that halt the run, deterministically — not just a warning
Debug one agent run, action by action →
ACP session trace of a real claude-cli run: a minimap over 205 llm.proxy.anthropic calls plus Read, Bash and Edit tools, an event timeline where each model call carries its own cost (0.9¢, 84¢, 13¢, 8¢) beside allowed tool calls, and the selected event's detail panel showing model claude-fable-5, 762 prompt tokens, 24 completion tokens, latency 3603ms, client claude-cli, identity and scopes, and COST 0.9¢.
/ learn

Your agents draft the rules. You sign them.

When policy blocks something an agent legitimately needs, it doesn’t work around the block — it proposes a rule: the tool, the tier, the permission, and why, written from the denial it just hit. Proposals queue in the console, and nothing is enforced until you confirm it.

  • Each proposal is scoped to one tool and one tier — never a blanket exception
  • The agent’s own rationale attached, so you review with context, not guesswork
  • Confirm or reject in one click — the human stays the only one who can change policy
ACP agent-proposed rules queue: three real proposals drafted by agents, each with tool, requested permission, tier, and rationale — an auto-allow for read-only SPARQL queries to query.wikidata.org, a require-approval rule for creating scheduled cloud routines, and a require-approval rule for gcloud secret reads — each with Confirm and Reject buttons, and the note 'Drafted by your agents — nothing is enforced until you confirm it here.'
/ control

Your agent walked in holding 76 tools.

Every request a coding agent makes declares its full tool catalog — the model can't call what it can't see. A real Claude Code session declares 76 tools: the coding loop, yes — and tools that send messages, publish public web pages, schedule their own future runs, and drive your logged-in browser. Most were never invoked. All of them are standing open.

ACP captures the declared surface on the agent's first call — before anything runs — and turns it into a control table: every tool a click to allow, flag, or deny. When the surface drifts mid-session (we've watched one gain 21 tools in an afternoon), you hear about it.

  • The full catalog, visible before first invocation
  • One click per tool: allow · flag · deny · ask
  • Drift detection — know when the surface grows
The Tool Surface Index — Claude Code, Codex, live captures →
ACP tool-surface control table for a live claude-code agent: 76 tools declared, 23 denied, 25 flagged, 44 never invoked, with a surface-drift banner (gained +76 tools). A one-click suggested posture offers to deny 2 never-invoked outward-blast-radius tools (CronList, Workflow), and every tool is a row with allow / flag / approval / deny — CronCreate and the Gmail connector shown denied, SendMessage and WebSearch flagged.

Control ships turnkey. Five ready policies at the level you already think — “an unattended agent that can’t touch the shell.” Assign one in shadow: it replays your last week of real calls and shows what it would have denied, and nothing blocks until you click enforce.

What each persona allows, pauses, and denies — attended and unattended →

/ get started

Your first audit row in thirty seconds.

A coding agent in your IDE, a CrewAI pipeline, a LangGraph service, the OpenAI SDK in a script — pick the method that fits your stack. One install, no code changes, and every tool call is controlled. Free up to 5 agents — subagents free, calls unlimited.

No account required Runs on your machine No code changes Works with your existing AI clients and frameworks Uninstall anytime
How to install
# Hook · Claude Code · Cursor · Codex — free up to 5 agents
$curl -sf https://agenticcontrolplane.com/install.sh | bash
    detected runtime · registered hooks · workspace connected
# now just run your agent — every tool call is checked before it runs:
$ claude "refactor the auth module"
    fs.write app/auth.ts   ALLOW · logged · priced
    shell.exec rm -rf /  DENY · policy
# fully on-device instead? add --local — no account, nothing leaves your machine

One install per stack — the same control plane behind all of them. See every integration →

Open core, hosted control plane. The enforcement modules are six MIT-licensed npm packages you can read and self-host — the hosted control plane is how you run them in production.

/ pricing

You pay for agents that start work. Everything they delegate is free.

Free up to 5 initiating agents — identities that start work, like your coding agent or a scheduled bot. Subagents and delegation chains are free on every plan, and governed calls are unlimited. Flat monthly bands above: no call meters, no seats, no tax on coverage.

Free
Up to 5 agents — every client, unlimited calls
$0forever
  • 5 initiating agents · unlimited calls
  • Subagents & delegation chains free
  • See, control & price every call
  • Hardline floor & approvals
  • 30-day audit retention
Start free →
Enterprise
Compliance, scale & deployment control
Let’s talk
  • Unlimited initiating agents
  • SSO / SAML · SCIM
  • VPC / on-prem / self-host
  • Unlimited audit retention
  • SOC 2 evidence exports · DPA / BAA
See ACP for teams →

All five tiers, the initiating-agent explainer, and the FAQ at /pricing →

Tracing shows you the call. ACP controls the action.

Control every tool call your agents make.

Free up to 5 agents — no credit card, no call caps. See your first controlled tool call in about thirty seconds.

# free up to 5 agents · no credit card
$ curl -sf https://agenticcontrolplane.com/install.sh | bash

Prefer fully on-device? Add --local — no account, nothing leaves your machine.

Already installed? Open your console →

Rolling agents out across a team? See ACP for teams →

Or book 30 minutes — I’ll wire it into your agent with you, live.
David Crowe, founder

ACP activity log filtered to denied calls — real deny rows, each with the rule that fired: an interactive-tier policy denying Bash.curl to developers.openai.com, a command-laundering catch on a curl the hook can't inspect, and a hardline floor blocking recursive delete of the root filesystem, with identity, client, and latency on every row.