Skip to main content

agentfirewall

Policy-enforced firewall for AI agent tool calls. Intercepts, evaluates, and audits every tool invocation against a YAML security policy.

Part of the AgentSec suite -- open-source security primitives for AI agents.

Install

pip install agentsec-firewall

Premium: Get enterprise security policies, advanced secret detection, and webhook alerting at zazmatt.gumroad.com/l/kjwwhn

Quick Start

# 1. Initialize policy and audit log
agentfirewall init

# 2. Install hooks into Claude Code
agentfirewall install

# 3. Done -- every tool call is now checked against .agentfirewall/policy.yaml

How It Works

Tool Call (e.g. Bash "rm -rf /")
        |
        v
  +-----------+
  | PreToolUse |  <-- Claude Code hook reads stdin JSON
  |   Hook     |
  +-----+-----+
        |
        v
  +-----------+
  | Interceptor| <-- Evaluates against policy.yaml
  |  .check()  |    Scans params for secrets
  +-----+-----+
        |
   +----+----+
   |         |
 ALLOW     DENY ---------> exit 2 (blocks tool call)
   |                        + JSON reason to stdout
   v
 Tool Executes
   |
   v
  +-----------+
  | PostToolUse| <-- Logs execution to audit.jsonl
  |   Hook     |
  +-----------+

Policy Reference

Policies are YAML files at .agentfirewall/policy.yaml:

version: "1.0"
name: "my-policy"
description: "Custom security policy"
default_action: log          # allow | deny | log | alert

rules:
  - name: allow-read-operations
    tools: ["Read", "Glob", "Grep"]     # fnmatch patterns
    action: allow
    reason: "Read operations are safe"

  - name: block-dangerous-bash
    tools: ["Bash"]
    resources: ["rm -rf *", "sudo *"]   # resource patterns
    action: deny
    reason: "Dangerous shell commands blocked"

  - name: alert-mcp-tools
    tools: ["mcp__*"]                   # wildcards supported
    action: alert
    reason: "MCP tool calls flagged for review"

  - name: log-all-writes
    tools: ["Write", "Edit"]
    action: log
    reason: "File modifications logged"

Actions:

  • allow -- permit the tool call
  • deny -- block the tool call (exit code 2)
  • log -- permit but log to audit trail
  • alert -- permit, log, and fire webhook alert

CLI Reference

Command Description
agentfirewall init Create .agentfirewall/ with default policy and audit log
agentfirewall install Add PreToolUse/PostToolUse hooks to .claude/settings.local.json
agentfirewall uninstall Remove agentfirewall hooks from settings
agentfirewall validate Validate policy YAML and print rule summary
agentfirewall audit Query audit log (supports --tail, --tool, --action filters)
agentfirewall scan [PATH] Run security scanner on project files

Python API

from agentfirewall import Interceptor, PolicyViolationError
from agentsec_core.schemas import PolicyAction

# From a policy file
interceptor = Interceptor(policy_path=".agentfirewall/policy.yaml")

# Check a tool call (returns PolicyDecision, never raises)
decision = interceptor.check("Bash", {"command": "rm -rf /"})
if decision.action == PolicyAction.DENY:
    print(f"Blocked: {decision.reason}")

# Check and raise on deny
try:
    interceptor.check_or_raise("Bash", {"command": "rm -rf /"})
except PolicyViolationError as e:
    print(f"Violation: {e.decision.reason}")

# Decorator pattern
@interceptor.wrap("data_export")
def export_data(**kwargs):
    ...  # Only runs if policy allows

Free vs Premium

Feature Free (OSS) Premium
YAML policy enforcement Yes Yes
PreToolUse / PostToolUse hooks Yes Yes
Audit log (JSONL) Yes Yes
Secret scanning (23 patterns) Yes Yes
Enterprise policy templates -- Yes
Webhook alerts (Slack, Discord) -- Yes
PII/GDPR filtering rules -- Yes
Priority support -- Yes

Get Premium -- $10

Requirements

License

MIT

Release files for agentsec-firewall 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentsec-firewall 0.1.1
File Size Uploaded
agentsec_firewall-0.1.1.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentsec-firewall 0.1.1
File Interpreter ABI Platform
agentsec_firewall-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.9 kB

Release files / agentsec_firewall-0.1.1.tar.gz

Download URL agentsec_firewall-0.1.1.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4cfd2dfa9fb76a398535329835950399504ad68dea4b47f1f95a96592aa54108
BLAKE2b-256 checksum
How to use checksums
6a4c6065a467f502150dcd4e813de05063968ccc2f460583abccd09bf0f8448b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / agentsec_firewall-0.1.1-py3-none-any.whl

Download URL agentsec_firewall-0.1.1-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08abe075569be317271c30742aefb4152233f3e48f25d89eed138ef7730daf27
BLAKE2b-256 checksum
How to use checksums
c0eb612f845bf10c822ab90963133a777ce39626ff3f87425d0b774b67f71755
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page