How It Works
Each session records:- Command: The exact command and arguments
- Timestamps: Start time, end time, duration
- Tracked paths: Which directories were tracked for rollback (if enabled)
- Changes: Files created, modified, or deleted (when rollback is active)
- Merkle roots: Cryptographic commitment to filesystem state at each snapshot (when rollback is active)
- Exit code: How the process terminated
- Network events: Proxy audit log (when network proxy is active)
nono run, nono shell). No flags are needed.
To disable audit recording for a session, use --no-audit:
Commands
nono audit list
List all recorded sessions, grouped by project directory.
nono audit show
Show complete details for a specific session.
Use Cases
Debugging
When an agent produces unexpected results, the audit trail tells you exactly what files it changed and when:Compliance
For teams that need to demonstrate control over AI agent activity, the audit trail provides:- Timestamped proof that sandboxing was active
- Complete record of filesystem changes with cryptographic integrity (Merkle roots)
- Machine-readable JSON export for automated compliance reporting
Forensics
If something goes wrong, the audit trail helps reconstruct what happened:Relationship to Rollbacks
Audit and rollback are independent features that share the same session directory and ID:| Aspect | Audit | Rollback |
|---|---|---|
| Default | Always on | Opt-in (--rollback) |
| Opt-out | --no-audit | --no-rollback |
| Scope | All supervised sessions | Sessions with writable tracked paths |
| Purpose | Record keeping | Recovery |
| Data | Command, timestamps, exit code, network events | Full file content snapshots + Merkle roots |
| Commands | nono audit list/show | nono rollback list/show/restore/verify/cleanup |
Storage
Audit sessions are stored in~/.nono/rollbacks/. Audit-only sessions are tiny (a single session.json file) and are not subject to rollback storage limits. They accumulate freely and can be cleaned up with nono rollback cleanup.