# ACP for Coding Agents — See, Price, and Control Claude Code, Codex, and Every Harness You Run

One command installs control and a cost X-ray for your coding agents: every tool call checked, every model call priced (even on subscription), every declared tool a click to allow or deny.

# Your coding agent, controlled and priced — in one command

You run Claude Code, Codex, or both, for hours a day. You don't know what a session costs, you can't see what it *could* do, and the first time you hear about a bad tool call is after it ran. ACP closes all three — without changing how you work.

```bash
curl -sf https://agenticcontrolplane.com/install.sh | bash
```

The installer detects your clients (Claude Code, Codex CLI, Cursor, opencode, OpenClaw, Hermes, DeepSeek Harness, pi, Prime Agent, Muse Code, Grok Build, Antigravity), registers control hooks, and sets up the cost proxy. After install, plain `claude` is already controlled: every tool call goes through the hook before it runs. `claude-acp` is the same session with its model calls routed through the ACP proxy as well, so the session is priced. Hooks either way; the cost X-ray needs the launcher.

## 1. Every session ends with a bill

When a `claude-acp` session exits, it tells you what just happened:

```
ACP · session: 276 model calls · 1,697 tool calls · $148.16 @ API rates
→ https://cloud.agenticcontrolplane.com/sessions/…
```

That's a real session — a full working day of Claude Code on a Max subscription, priced at API rates. **Anthropic bills you exactly as before** (your own subscription or API key is forwarded untouched); ACP just makes the number visible. If your org is deciding between seats and API billing, this is the number that decides it.

## 2. The X-ray shows where the money went

<div class="acp-shot-frame">
<img src="/assets/img/screenshots/session-cost-xray-strip.png" alt="Session cost X-ray of a real working day: $472.03 at API rates, 1,052 loop turns, 100% loop tax at a 100% cache hit rate, the cumulative bill curve, and 3,744 free tool calls beneath it — with 4,790 allowed, 6 denied, 115 PII findings" style="width:100%;height:auto;border:1px solid var(--line-2);border-radius:10px;box-shadow:0 20px 50px -24px rgba(0,0,0,0.9);margin:8px 0;" />
</div>

<div class="acp-shot-stats">
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">$472.03</span><span class="acp-shot-stat-l">@ API rates</span></div>
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">1,052</span><span class="acp-shot-stat-l">loop turns</span></div>
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">100%</span><span class="acp-shot-stat-l">loop tax</span></div>
</div>

{% include demo-video.html
   src="acp-cost-xray"
   gif="false"
   alt="Screen recording of the ACP console: the runs list sorted by cost, the priciest run opened, and its Cost X-ray scrolled through — total cost $255.44, a 91% loop tax at a 98% cache hit rate across 1,004 turns, the cumulative bill curve, and a per-step breakdown showing the orchestration loop at $244.95 against $10.49 of leaf model work, with every Edit, Bash and Read call free."
   caption="A real recording of the live console, sorted by cost and opened on the most expensive run: <strong>the orchestration loop is 96% of the bill</strong> &mdash; $244.95 of context re-reading against $10.49 of actual leaf work, with 1,584 tool calls free." %}

One click from the summary line: the session's cost curve, turn by turn. The session pictured is a real working stretch — $472.03 at API rates across 1,052 turns and 31h 42m, **100% loop tax**: the orchestration loop re-reading 298.9M tokens of context (at a 100% cache hit rate, the only reason it wasn't several times more). The last 119 turns bought 10% of the output, and all 3,744 tool calls underneath were free. That's the kind of fact that changes how you use the tool — and which model you point the loop at.

## 3. The tool surface: everything it *could* do, before it does

<div class="acp-shot-frame">
<img src="/assets/img/screenshots/tool-surface-table-rows.png" alt="The tool-surface control table for a live Claude Code agent: every declared tool a row with Allow / Flag / Deny / Approval controls, invoked vs never-invoked status, and a one-click suggested posture — deny 10 never-invoked outward-blast-radius tools" style="width:100%;height:auto;border:1px solid var(--line-2);border-radius:10px;box-shadow:0 20px 50px -24px rgba(0,0,0,0.9);margin:8px 0;" />
</div>

<div class="acp-shot-stats">
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">76</span><span class="acp-shot-stat-l">tools declared</span></div>
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">64</span><span class="acp-shot-stat-l">never invoked</span></div>
  <div class="acp-shot-stat"><span class="acp-shot-stat-n">1 click</span><span class="acp-shot-stat-l">to deny</span></div>
</div>

A real Claude Code session declares **76 tools** in every request — the coding loop, plus tools that send messages, publish public web pages, schedule their own future runs, and drive your logged-in browser. Sixty-four of them never invoked. ACP captures the declared catalog on the agent's *first* call and turns it into a control table: every tool a row, every row a click — **allow · flag · deny**. Deny blocks at the gateway before execution; the agent gets the reason and adapts.

Which ones should you deny? [We argued a default posture from blast radius](/blog/which-claude-code-tools-to-deny-out-of-the-box) — and maintain [live captures per client](/tool-surfaces).

## 4. The morning after, in your inbox

```
ACP · yesterday: $0.28 billed · $148.16 @ API rates · 2 things worth a look

WHAT CHANGED (last 24h)
  codex_exec — NEW AGENT, 17 tools declared:
    + apply_patch, exec_command, image_generation …of 17    [Review →]
```

A daily digest: spend vs your typical day, the runs worth a look, and every change to your agents' tool surfaces as a diff — each line a click from the control that fixes it. No activity, no email.

## What this costs you

Nothing to start: free up to 5 initiating agents — unlimited calls, subagents free, full identity, policy, audit, and the cost X-ray. Your model spend stays on your own keys and subscriptions, always — ACP never touches or marks up your tokens.

```bash
curl -sf https://agenticcontrolplane.com/install.sh | bash
```

*Teams: per-agent policy, roles, org-wide cost, and approval workflows live on the [team plan](/for-teams).*
