Safe to point at production.
The framework treats prompts, tool results and API responses as untrusted input. Nothing the LLM is told, shown or returns can change your infrastructure or widen its own access. You can deploy an agent today and then go to sleep.
- The LLM cannot induce a write.
- The LLM cannot reach a host outside the target.
- The LLM cannot obtain a credential.
- The LLM cannot leave the sandbox.
The ceiling is a per-connector policy you set in configuration before the run. It ships read-only. The LLM never sees it and cannot move it.
Every request crosses the gate.
Authorization is complete mediation. It happens per request. A denial returns an error to the LLM and the loop continues.
Diagram 01 · request flowEach step that proceeds is logged. If an audit entry cannot be recorded, the run aborts.
Configurable resource & cost controls- Config keyDefault
- max_iterations32
- max_subagent_iterations10
- max_consecutive_failures5
- sandbox concurrency16
- sandbox timeout120s
- max_total_tokens0 (unbounded)
Three trust boundaries.
The LLM never holds credentials and never chooses the policy. It cannot move any of these boundaries.
Four principles.
The read-only policy is the ceiling for every run.
Anything not classified as legitimate is refused.
Each call is authorized on its own.
On AWS the boundary is enforced a second time by IAM, through an STS session scoped to SecurityAudit.
Assurance.
Everything here is verifiable from the repository.
- OpenSSF Best PracticesSilver.
- Test coverage100% statement coverage, enforced in CI.
- Race detectorRuns against the full test suite.
- Static analysisCodeQL and gosec on every pull request.
- Release integritySigstore keyless signatures bound to the release workflow, plus GitHub build attestations. macOS packages are signed, notarized and stapled.
- DeploymentOne binary in your environment. Everything it reads stays there.
- AccessRead-only by default. The ceiling is a per-connector policy set by the operator in configuration, never by the model.
- TelemetryNone. The binary sends nothing anywhere.
- LicenseApache-2.0.
Inside the data path.
Each run happens in your own environment. Your chosen LLM provider is the one external party in the data path, and you select it. When that provider is your cloud's managed inference in the same account, there is no external party at all.
- The conversation
- What a script console.logs
- Credentials
- Raw tool results
- Secrets
This page describes implemented controls. The full threat model is in the repository.