Skip to content
Agentic Control Plane

What the installer actually does

curl -sf https://agenticcontrolplane.com/install.sh | bash is one line, but it’s not magic — and you should know exactly what runs on your machine before you pipe anything to bash. This page lists every file it touches, in plain language, and how to undo it.

The script is readable source — nothing is compiled or hidden. It only writes to your home directory, never uses sudo, and never sends your code anywhere. It detects which coding agents you have installed (Claude Code, Cursor, Codex, opencode, OpenClaw) and configures each one it finds.

The core — installed for everyone

Path What it is Why
~/.acp/govern.mjs The governance hook — ~200 lines of Node, no dependencies. This is the whole product. Your agent runs it before (and after) every tool call; it asks ACP “is this allowed?” and logs the call. Fails open by default — if ACP is unreachable, your tool still runs.
~/.acp/credentials Your workspace API key (gsk_…), written after you authorize in the browser. How the hook proves which workspace it belongs to. A token, not a password.
~/.acp/failmode (optional) open or closed. Only if you opt into fail-closed. Absent = the safe default (fail-open).

That’s the entire governance install: one hook script + one credential. Everything below is per-harness wiring or optional convenience.

Per-agent wiring — only for the agents you have

The installer registers the hook with each detected agent by editing that agent’s own config file (an idempotent JSON/TOML merge that preserves your other settings):

Agent File edited What’s added
Claude Code ~/.claude/settings.json PreToolUse + PostToolUse hook entries pointing at govern.mjs
Cursor ~/.cursor/hooks.json The same two hook entries (lowercase keys)
Codex ~/.codex/config.toml, ~/.codex/hooks.json, ~/.codex/AGENTS.md Enables codex_hooks, registers the hook, and adds a short directive telling Codex to check non-Bash tools
opencode ~/.config/opencode/plugin/acp-govern.ts A small governance plugin (opencode uses in-process plugins, not shell hooks)
OpenClaw (plugin install command) @gatewaystack/acp-governance

The optional extras — what you might want to skip

These aren’t governance; they’re conveniences. They’re the part worth scrutinizing, and we’re making them opt-in (see note at the bottom).

Path What it is Note
~/.acp/bin/claude-acp A wrapper that launches Claude Code with model calls routed through the ACP proxy, so you get the cost X-ray (spend, cache-hit rate, loop-vs-leaf). Optional. Only useful if you want cost metering, not just governance.
~/.zshrc / ~/.bashrc / ~/.profile One line appended: export PATH="$HOME/.acp/bin:$PATH" so claude-acp is on your PATH. This is the most invasive thing the installer does — it edits your shell startup file. Tagged # acp-installer so it’s easy to find and remove.
~/.acp/bin/acp-session-summary A small helper that prints a session’s cost/governance summary. Optional convenience.
~/.claude.json, ~/.cursor/mcp.json, ~/.config/opencode/opencode.json Registers the ACP introspection MCP so your agent can query its own usage, cost, and policy recommendations. Optional. Read-only self-awareness tools; see the MCP tools.

How to remove all of it

Nothing here is sticky. To fully uninstall:

rm -rf ~/.acp                                   # hook, credentials, wrappers
# remove the PATH line the installer added:
sed -i '' '/# acp-installer/d' ~/.zshrc ~/.bashrc ~/.profile 2>/dev/null

Then delete the hook entries from whichever agent configs you use (~/.claude/settings.json, ~/.cursor/hooks.json, ~/.codex/hooks.json, ~/.config/opencode/plugin/acp-govern.ts). Your agents work exactly as before — the hook simply stops firing.

Our commitment

  • The core is two files. Governance is govern.mjs + a credential. If that’s all you want, that’s all you need.
  • The extras are becoming opt-in. The cost-X-ray wrapper (and its PATH edit) and the MCP registration are moving behind an explicit prompt, so the default install stays minimal. Until then, this page is the honest inventory.
  • Nothing is hidden. The script is plain text you can read top to bottom before running it.