Give coding agents room to work.
Keep dangerous commands under control.
Termyte checks risky command text, applies local policy, records decisions, and remembers unsafe actions without putting a cloud service or LLM in the decision path.
$ termyte check "npm test"ALLOW$ termyte check "npm publish"WARN$ termyte check "cat .env"BLOCKBenchmark results apply to the checked-in labeled fixture suite.
Blind trust keeps capable agents on a short leash.
Termyte gives recognized risky actions deterministic decisions and local receipts, so teams can grant more room without pretending every command is safe.
Review every step manually or discover a risky command after the damage.
Check command text, apply local policy, record the decision, then choose the next move.
A decision you can inspect.
A command becomes a decision through explicit local signals. Stable checks never execute the command.
The label is only useful when the reason is visible.
Explore verified examples from the packaged CLI. Every stable check shows the decision, risk, source, and non-executing result.
$ termyte check "npm test"ALLOW- Reason
- no risky pattern detected
- Risk
- low / 0
- Policy source
- no matched rule
- Executed
- false
Deterministic actions. Balanced by decision.
The stable non-executing check path currently classifies every checked-in fixture correctly.
Read the methodologyThis validates labeled fixtures, not complete command coverage, sandbox isolation, or guaranteed interception.
Defaults immediately. YAML when you need control.
Built-in policy works without initialization. Global and local YAML add deterministic rules, with local policy taking priority.
$ termyte policy local add \
"Ask before touching auth or payments" --dry-run
rules:
- name: "ask-auth-payment-changes"
action: ask
match:
paths:
- "src/auth/**"
- "src/payments/**"
- "src/billing/**"Local receipts that improve the next decision.
Filter warned and blocked checks. Mark exact command patterns safe or unsafe. Memory can strengthen a future check, but it never weakens a block.
BLOCK cat .envWARN npm publishALLOW npm testtermyte mark-unsafe "npm publish"→unsafe memory match recorded
Stable check logs + memory: repo-local JSONL
Experimental runtime ledger: SQLite
Prepare the session. Be honest about the boundary.
Termyte launches Codex, Claude Code, and Aider after checking local readiness. Runtime mode remains limited and full subprocess interception is not guaranteed.
The critical check path stays on your machine.
Command text, policy, stable logs, and explicit user memory remain local. No cloud service or LLM is required to reach a decision.
Useful because the boundary is explicit.
Termyte reduces recognized accidental damage. It does not make agents safe.
Designed to reduce
Accidental destructive commands, secret access, force pushes, publishing mistakes, destructive SQL, and repeated unsafe actions.
Outside the boundary
Bypasses, malware, root attackers, all obfuscation, direct API calls outside monitored surfaces, and sandbox isolation.