One .ai/ source of truth compiles into native config for Claude Code, Codex, OpenCode, Cursor, and Kiro. Deny-over-allow, deterministic, and enforced in CI — so every agent plays by the same rules.
One policy · five runtimes · no lock-in
No per-tool copy-paste, no drift. Your permissions live in a runtime-neutral
.ai/ directory and flow one direction into
each agent's own format.
Set shell allow/deny globs and filesystem rules in
.ai/permissions.yaml
— with
deny_over_allow
precedence baked in.
Run
agentctl sync. Pure-function adapters render
settings.json,
config.toml, hooks, and rules for each enabled runtime.
Wire
agentctl check
into CI. It exits non-zero the moment a generated config drifts from your source of
truth.
Most tools sync instructions. agentctl governs what your agents are actually allowed to do — portably.
A single, predictable precedence model. Destructive shell, git, and API calls stay blocked across every runtime — no per-tool reasoning required.
Config flows only from
.ai/ outward. Generated files are never
read back, so output is reproducible and reviewable.
agentctl check exits 1 the instant a
runtime config falls out of sync — catch it in review, not in production.
agentctl scan detects your current
.claude/,
.cursor/, and more, and pulls them into
one source.
Define Model Context Protocol servers in
.ai/mcp.yaml; agentctl renders the right
shape for every runtime that supports them.
Each runtime is a pure render function. Adding a new agent is one file — no rewrites, no coupling to the core.
agentctl treats permissions as the first-class artifact — the part that actually keeps agents safe.
| agentctl | Instruction-sync tools | Runtime proxies | |
|---|---|---|---|
| Governs what agents may do | ● yes | ○ instructions only | ● yes |
| Deny-over-allow precedence | ● built in | ○ n/a | ● varies |
| Runs at build time (no live proxy) | ● yes | ● yes | ○ requires gateway |
| Multi-runtime native output | ● 5 runtimes | ● varies | ○ single path |
| Drift check for CI | ● exit 1 | ○ rare | ○ n/a |
| Fully local, no telemetry | ● yes | ● usually | ○ often hosted |
| License | Apache-2.0 | mixed | mixed / commercial |
Set up your first synced permission set in under two minutes — no install, entirely on your machine.