Rampart sits in the execution path. Install it, run rampart quickstart, and it wires the right protection path for Claude Code, Codex, Cline, or OpenClaw before risky tool calls run.
Claude Code’s --dangerously-skip-permissions. Codex’s --full-auto. That is not a theoretical problem. It means your agent can quietly read secrets, exfiltrate them, or trash a machine while trying to finish the task.
No guardrails in the execution path. No approval gate. No tamper-evident audit trail after the fact.
LD_PRELOAD, wrappers, hooks, and file/network policy enforcement are the happy path.
DYLD_INSERT_LIBRARIES has SIP boundaries. Homebrew and user-installed binaries work best.
Use Claude/Cline/API/MCP-style integrations. Codex preload and OpenClaw plugin setup are not the Windows story.
It sits in the execution path. Every command, file read, network request, and MCP call is evaluated before it runs. Safe work stays fast. Risky work is denied, held for approval, or redacted before secrets ever reach the model.
npm install, go test ./..., and git status stay fast because common safe actions are pattern matched locally.
Rules with action: ask hold commands like kubectl apply until a human decides.
If a file read would put credentials into the agent’s context window, the response is blocked before the model ever sees it.
This is the point where most “guardrails” stop being trustworthy. Rampart starts there instead.
Pattern matching handles the boring 95% instantly. The common case should feel invisible.
Secrets, exfiltration, destructive commands, and approval-gated actions get enforced before execution.
Hash-chained JSONL gives you a tamper-evident record you can search, verify, and use to generate better policy.
Use the native path where Rampart knows the agent. Use preload, wrapping, MCP proxy, or the HTTP API everywhere else. For exact support tiers, approval UX, and whether rampart serve is required, check the support matrix.
OpenClaw’s native plugin path depends on rampart serve. Claude Code and Cline can still enforce locally without it. Read the canonical support matrix →
No SDK. No cloud console. No proprietary rule builder. Use the built-in profile, or write the exact rule you want reviewed before a tool call runs.
~/.rampart/policies/standard.yaml with 47 rules.version: "1"
policies:
- name: block-credential-leak
match:
tool: file.read
rules:
- when:
path_matches:
- "**/.env"
- "**/.ssh/*"
- "**/id_rsa"
action: deny
message: "Credential access blocked"
- name: ask-before-production
match:
tool: exec
rules:
- when:
command_matches: ["kubectl apply *"]
action: ask
Stops unsafe agent actions before they run. It protects the execution path: commands, file reads, network calls, and MCP tools.
Plants credential canaries so you know when something escaped anyway. It tells you when your assumptions failed.
One blocks the action. The other proves when a secret was used.
rampart quickstart.That is the default path now. It detects your agent, installs what it needs, wires the right integration path, and verifies the setup without making you memorize the matrix first.
Installs to ~/.local/bin by default. Usually no sudo required.
Installs to ~\.rampart\bin. No admin rights required.
Then do the part that actually wires protection:
$ rampart quickstart # detect agent, install service, wire integration, verify setup # Want the manual path instead? $ rampart setup claude-code $ rampart setup codex $ rampart setup cline $ rampart setup openclaw
Persistent local defaults live here:
# ~/.rampart/config.yaml url: http://127.0.0.1:9090
Use url for the normal local service address. serve_url is legacy compatibility. api is advanced. Configuration docs →