Skip to main content

Deterministic safety gate for AI coding agents

Project description

Agent Circuit Breaker

PyPI Python License CI

A local-first safety gate for AI coding agents.

Agent Circuit Breaker checks shell commands, filesystem operations, SQL text, and MCP tool-call arguments before an agent executes them. It gives agent workflows a deterministic stop point: ALLOW, BLOCK, UNKNOWN, ERROR, or PENDING_APPROVAL.

It is built for the moment when an AI agent is about to run something powerful and you want a fast, auditable answer from rules you can inspect.

pip install agent-circuit-breaker

circuit-breaker check "rm -rf /etc"
# Verdict: BLOCK

circuit-breaker check "git push --force origin main"
# Verdict: BLOCK

circuit-breaker check "ls /home"
# Verdict: UNKNOWN

Why It Exists

AI coding agents are becoming operating-system clients. They can run shell commands, edit source trees, invoke package managers, call MCP tools, and touch databases. That is useful, but it also means a bad plan, hallucinated command, prompt injection, or careless automation path can become a real destructive action.

Agent Circuit Breaker adds a small deterministic control point before execution:

  • individuals get a daily safety check for local agent workflows.
  • teams get consistent policy for risky commands in repos and CI.
  • enterprises get approval routing, audit logs, signed policy packs, and a path to MCP interception.

This is not another chatbot wrapper. It is a pre-execution safety layer that your existing tools can call.

What It Catches

Agent Circuit Breaker ships with built-in coverage for common high-risk action shapes:

  • recursive deletes and dangerous filesystem targets: rm -rf /, rm -r -f /etc, system paths, unqualified recursive globs.
  • destructive shell patterns: force pushes, remote scripts piped to shells, fork-bomb shapes, disk overwrite/format commands, root-level find -delete.
  • risky infrastructure commands: destructive Docker, Kubernetes, AWS, Azure CLI, and gcloud deletion shapes.
  • dangerous permissions: recursive world-writable chmod, including symbolic modes such as ugo+rwx.
  • destructive SQL: DROP TABLE, DROP DATABASE, TRUNCATE, unqualified DELETE/UPDATE, and tautological WHERE 1=1 variants.
  • MCP tool calls: stdio JSON-RPC proxy inspection for command-like tools/call arguments.

Unknown actions stay explicit as UNKNOWN; callers decide whether to stop, ask a human, or apply a local allowlist.

Core Principles

  • Deterministic: no LLM call is required to decide whether a command should stop.
  • Local-first: default evaluation is offline and dependency-free.
  • Auditable: the core is Python stdlib-only and small enough to inspect.
  • Fail-closed: malformed inputs, invalid rules, and signature failures stop instead of silently allowing.
  • Composable: use it from CLI, Python, CI, pre-commit, MCP proxy mode, or another agent runtime.

Installation

python -m pip install agent-circuit-breaker

Requirements:

  • Python 3.11+
  • No runtime dependencies

Package pages:

Five-Minute Quickstart

Check an action:

circuit-breaker check "rm -rf /"

Use JSON for integrations:

circuit-breaker check "DROP TABLE users" --format json

Explain a risky command:

circuit-breaker explain "git push --force origin main"

Scan scripts, runbooks, SQL files, and CI content:

circuit-breaker scan ./scripts ./README.md

Emit SARIF for GitHub code scanning:

circuit-breaker scan . --sarif > acb.sarif

Use strict mode when ambiguity should stop:

circuit-breaker check "ls /home" --mode strict
# Verdict: BLOCK

Route high-risk or unknown actions to approval:

circuit-breaker check "rm -rf /" --profile team
circuit-breaker approvals list

Write a tamper-evident local audit trail:

circuit-breaker check "DROP TABLE users" --audit
circuit-breaker timeline --verify

Guard an MCP server over stdio:

circuit-breaker-mcp-proxy --profile team -- python -m your_mcp_server

Python API

from agent_circuit_breaker import evaluate_action

result = evaluate_action("rm -rf /")
assert result["verdict"] == "block"

The stable API and JSON fields are documented in:

Policy And Rules

Use external JSON rules when your team has project-specific hazards:

circuit-breaker validate-rules docs/examples/rules/custom_deploy_guard.json
circuit-breaker check "deploy production" --rules docs/examples/rules/custom_deploy_guard.json

Load central policy from a local file:

circuit-breaker check "deploy production" --policy .agent-circuit-breaker/policy.json

Require signed policy or rule JSON:

circuit-breaker check "deploy production" --policy .agent-circuit-breaker/policy.json --require-signature

Rule schema and examples:

Safety Profiles

Profile Intended Use Unknown Handling
solo low-friction local development preserve UNKNOWN
repo source-tree protection strict block
team shared engineering workflows route to approval
prod production-like workflows route to approval
circuit-breaker check "aws s3 rb s3://bucket --force" --profile prod

CI And Repository Integration

The repo includes:

  • GitHub Actions workflow for unit tests.
  • GitHub Actions workflow for SARIF upload.
  • pre-commit hook manifest.
  • release workflow for trusted publishing to TestPyPI and PyPI.

Integration docs:

Enterprise Controls

Agent Circuit Breaker includes enterprise-oriented primitives without making the core heavy:

  • local approval queue with PENDING_APPROVAL.
  • tamper-evident hash-chained audit timeline.
  • central policy loading from local files or explicit caller-selected URLs.
  • optional signed policy/rule-pack verification.
  • plugin discovery through Python entry points.
  • MCP stdio proxy mode for guarding tool-call arguments.
  • SARIF output for code scanning.

Security references:

What It Is Not

Agent Circuit Breaker is not a sandbox, antivirus, endpoint monitor, permissions system, database proxy, or full shell/SQL parser. It is a deterministic pre-execution gate. For high-risk environments, use it with sandboxing, least privilege, backups, approvals, and runtime isolation.

Current Status

Development

git clone https://github.com/sagarchhatrala/agent-circuit-breaker.git
cd agent-circuit-breaker
python -m pip install -e .
python -m unittest discover

Contributing references:

Release Notes

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_circuit_breaker-1.4.1.tar.gz (72.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_circuit_breaker-1.4.1-py3-none-any.whl (51.6 kB view details)

Uploaded Python 3

File details

Details for the file agent_circuit_breaker-1.4.1.tar.gz.

File metadata

  • Download URL: agent_circuit_breaker-1.4.1.tar.gz
  • Upload date:
  • Size: 72.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for agent_circuit_breaker-1.4.1.tar.gz
Algorithm Hash digest
SHA256 957eaa6ddcf26b7ee65b3c4dfe2024195681d21ae80bf619ca728ee04057caba
MD5 afba24da2e0ae266bfca8da2022e31a1
BLAKE2b-256 7b050afaef22c891bc4a524c3b7676616ec749979f6f7900cdb45a2bdc43fdc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_circuit_breaker-1.4.1.tar.gz:

Publisher: publish.yml on sagarchhatrala/agent-circuit-breaker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_circuit_breaker-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_circuit_breaker-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1878c67e02ee470a3de334c56198c23c93c30df741fcde745da6f462b11acda
MD5 ceb3d2257192ada371feae8b5e80fdd0
BLAKE2b-256 47a1d2de5003f60d0243493b03e375a5a768886dc7ba6694c9ec82fc16539e22

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_circuit_breaker-1.4.1-py3-none-any.whl:

Publisher: publish.yml on sagarchhatrala/agent-circuit-breaker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page