
Sandbox and MCP proxy that blocks AI coding agents from reading SSH keys, AWS credentials, and .env files, with deny-by-default policy and tamper-evident audit logs.
Claude Code's sandbox lets an agent read your SSH keys and AWS credentials by default. Aegis doesn't.
Two layers, both verified on real hardware.
Kernel sandbox — the agent's own shell cannot reach a denied path:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
MCP proxy — same tool, same file, with and without Aegis in front:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
Sits between your AI coding agent and your machine:
cat .env can't bypass itaegis doctor, and checkpointed
from outside the sandbox under a key the sandbox can't read or writeNew here? docs/getting-started.md is the step-by-step path, including the two questions that default to No.
Followed earlier instructions that said aegis-mcp? That package is not Aegis — it is an unrelated
project installed under the same import name, aegis. Remove it first:
python3 -m pip uninstall aegis-mcp
If aegis-sandbox is already installed, that uninstall also deletes two of its files, so reinstall it
afterwards: python3 -m pip install --force-reinstall aegis-sandbox.
python3 -m pip install aegis-sandbox
aegis init # detects Claude Code / Cursor, asks a few questions
aegis doctor # proves the boundary is actually in place
Upgrading? Re-run aegis init. Your policy.json is yours and is never rewritten behind your back, so a
new sandbox domain does not appear on its own — and without the OAuth token endpoint a sandboxed client stops
working when its token expires. aegis init offers the new hosts; accepting is one keystroke.
aegis init; aegis doctor fails if a wrapped client isn't logged inFull threat model: THREAT-MODEL.md
MIT