Overview
| Mode | Command | Parent Sandboxed | Rollback | Expansion | Attack Surface |
|---|---|---|---|---|---|
| Supervised | nono run / nono shell | No | Yes | Linux only | Larger |
| Direct | nono wrap | N/A (no parent) | No | No | Minimal |
Supervised Mode (default)
- Interactive AI agents (default for
nono runandnono shell) - When you want diagnostic output on failures
- When you need rollback snapshots (
--rollback) - When you need capability expansion (Linux)
- When you need network proxy filtering
- Larger attack surface (unsandboxed parent, mitigated by ptrace hardening)
- Diagnostic footer on non-zero exit explaining what went wrong
- Signal forwarding to child process
- Rollback snapshots (baseline + final) with
--rollback - Interactive post-exit review of changes with
--rollback - Capability expansion prompts (Linux only)
- Network proxy filtering with
--network-profileor--allow-domain
Direct Mode (nono wrap)
exec()s directly into the target command. nono disappears from the process tree entirely - there is no parent process.
When to use:
- Scripts and CI/CD where you want minimal overhead
- Piping and embedding where no parent process is wanted
- Maximum security (smallest attack surface)
- No diagnostic footer on errors
- No rollback snapshots
- No capability expansion
- No network proxy (incompatible — proxy requires a parent process)
Choosing a Mode
nono run (Supervised mode) is the right choice. Use nono wrap when you need a minimal, no-parent execution for scripts or embedding.