Skip to content

Configuration

Run shieldedshell init to create a starter file. Example from the repo:

version: "1.0"
sandbox:
workspace_dir: "."
allow_network: false
allowed_domains: []
max_memory_mb: 256
cpu_timeout_ms: 300000
overlay_enabled: true
invariants:
ledger:
enabled: false
min_balance: 0.0
routing:
enabled: false
allow_sensitive_public: false
auto_heal:
max_retry_cycles: 5
model: "claude-3-5-sonnet"
paths:
blocked_read_globs:
- "~/.ssh/**"
- "~/.aws/**"
- "**/.env"
- "**/.env.*"
blocked_write_globs:
- "**/.git/**"
KeyDefaultDescription
workspace_dir.Root for containment and overlay
allow_networkfalseNetwork for sandboxed run (not agent loop)
allowed_domains[]Allowlist when network is on
max_memory_mb256Memory hint for policy
cpu_timeout_ms300000Timeout for sandboxed commands (5 min)
overlay_enabledtrueCopy-on-write overlay

Agent loop runs use at least 900000 ms (15 min) regardless of this value.

Enable static solvers during reconcile:

  • ledger — interval arithmetic on balances and transfers
  • routing — Datalog check that sensitive routes are not public
KeyDescription
max_retry_cyclesMax dual-agent loop iterations
modelReserved for future auto-heal prompts

Glob patterns for blocked reads and writes. Tilde expands to the user home directory.

ShieldedShell walks up from the workspace for shield.yaml. Override with -c /path/to/shield.yaml.

Full example: examples/shield.yaml on GitHub.