Skip to main content

Defense-in-depth proxy sandbox for AI agents

Project description

agentcage logo

agentcage

Defense-in-depth proxy sandbox for AI agents.

Because "the agent would never do that" is not a security policy.

:warning: Warning: This is an experimental project. It has not been audited by security professionals. Use it at your own risk. See Security & Threat Model for details and known limitations.

Setting up OpenClaw? See the OpenClaw guide and openclaw/cage.yaml.

What is it?

agentcage is a CLI that generates hardened, sandboxed environments for AI agents. Your agent runs on an internal-only network with no internet gateway; the only way out is through an inspecting proxy that scans every HTTP request before forwarding it.

Most agent deployments hand the agent a lethal trifecta: internet access, real secrets, and arbitrary code execution. Combined, they create an exfiltration risk that most setups have zero defense against. agentcage breaks that combination. See Security & Threat Model for the full breakdown.

  • Network isolation -- agent on internal-only network, no internet gateway
  • Inspecting proxy -- pluggable inspector chain on every HTTP request, WebSocket frame, and DNS query
  • Secret injection -- agent gets placeholders, proxy swaps in real values outbound and redacts inbound
  • Secret & payload scanning -- regex secret detection, Shannon entropy, content-type mismatch, base64 blob scanning
  • DNS filtering -- allowlist-based dnsmasq sidecar, placeholder IPs for unauthorized domains
  • Fail-closed by default -- all hardening on out of the box; component failure stops traffic

Both container mode (rootless Podman) and Firecracker mode (KVM microVM) are supported -- see Security & Threat Model for the comparison. For the full container topology and inspector chain, see Architecture.

Quick Start

# Install
curl -fsSL https://raw.githubusercontent.com/agentcage/agentcage/master/install.sh | sh

# Scaffold a config (or use --preset openclaw)
agentcage init myapp --image node:22-slim

# Store secrets
agentcage secret set myapp ANTHROPIC_API_KEY

# Create and start the cage
agentcage cage create -c cage.yaml

# Verify it's healthy
agentcage cage verify myapp

Run agentcage init --list-presets to see available presets. See CLI Reference for the full command set.

Install

One-line installer (installs agentcage + prerequisites):

curl -fsSL https://raw.githubusercontent.com/agentcage/agentcage/master/install.sh | sh

For Firecracker mode, add --with-firecracker:

curl -fsSL https://raw.githubusercontent.com/agentcage/agentcage/master/install.sh | sh -s -- --with-firecracker

Manual install -- prerequisites: Podman (rootless), Python 3.12+, uv.

OS Command
Arch Linux sudo pacman -S podman python uv
Debian / Ubuntu 24.04+ sudo apt install podman python3 && curl -LsSf https://astral.sh/uv/install.sh | sh
Fedora sudo dnf install podman python3 uv
macOS brew install podman python uv && podman machine init && podman machine start

Then install agentcage:

uv tool install agentcage                                            # from PyPI
uv tool install git+https://github.com/agentcage/agentcage.git      # from GitHub

For development:

git clone https://github.com/agentcage/agentcage.git
cd agentcage
uv run agentcage --help

Firecracker mode requires Linux with /dev/kvm. See Firecracker setup for details. macOS is not supported for Firecracker mode.

Usage

# View logs
agentcage cage logs myapp             # agent logs
agentcage cage logs myapp -s proxy    # proxy inspection logs

# Audit inspection decisions
agentcage cage audit myapp --summary --since 24h

# Rotate a secret (auto-reloads the cage)
agentcage secret set myapp ANTHROPIC_API_KEY

# Update after code/config changes
agentcage cage update myapp -c cage.yaml

# Restart without rebuild
agentcage cage reload myapp

# Tear it all down
agentcage cage destroy myapp
Command / Group Commands
init (top-level) -- scaffold a config file
cage create, update, edit, list, destroy, verify, reload, logs, audit, har (aliases: ls/ps/statuslist, rmdestroy)
secret set, list, rm (alias: lslist)
domain list, add, rm (alias: lslist)
firecracker setup
completions (top-level) -- print shell completion script (bash/zsh/fish)

See CLI Reference for full documentation of all commands and options.

Configuration

See the Configuration Reference for all settings, defaults, and examples. Example configs: basic/cage.yaml | openclaw/cage.yaml. Deployment state is tracked per-cage in ~/.config/agentcage/deployments/<name>/.

Security

The agent has no internet gateway -- all traffic must pass through the proxy, which applies domain filtering, secret detection, payload inspection, and custom inspectors. For workloads requiring hardware-level isolation, Firecracker mode adds a dedicated guest kernel per cage, eliminating container escape as an attack vector. See Security & Threat Model for the full threat model, defense layers, and known limitations.

License

MIT

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

agentcage-0.3.12.tar.gz (600.9 kB view details)

Uploaded Source

Built Distribution

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

agentcage-0.3.12-py3-none-any.whl (93.5 kB view details)

Uploaded Python 3

File details

Details for the file agentcage-0.3.12.tar.gz.

File metadata

  • Download URL: agentcage-0.3.12.tar.gz
  • Upload date:
  • Size: 600.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agentcage-0.3.12.tar.gz
Algorithm Hash digest
SHA256 0a5f820e78ecdf83709cd85cf0c636265d87a9f39d042b9984862c56ae375cea
MD5 3b3568a09d6fdd05345650b835a7414d
BLAKE2b-256 010ef55ce528556a4c8fccd8bfb92e8f4f9ca52de11e95898baf008d0f5ed2ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcage-0.3.12.tar.gz:

Publisher: publish.yml on agentcage/agentcage

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

File details

Details for the file agentcage-0.3.12-py3-none-any.whl.

File metadata

  • Download URL: agentcage-0.3.12-py3-none-any.whl
  • Upload date:
  • Size: 93.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agentcage-0.3.12-py3-none-any.whl
Algorithm Hash digest
SHA256 3f4f05629a1827fb4581d6bdf3d20bb82074ef13e1e094ec145ac527ef2ad7b6
MD5 217cfbcda7e21562fe878bcf0988c3cb
BLAKE2b-256 0d0a7c681d548d2fe3de15c34987844f68e99aae675d786ef7ee23e63424d665

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentcage-0.3.12-py3-none-any.whl:

Publisher: publish.yml on agentcage/agentcage

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