Global Options
These options work with all commands.--silent, -s
Suppress all nono output (banner, summary, status messages). Only the executed command’s output will be shown.
Commands
nono run
Run a command inside the sandbox.
nono shell
Start an interactive shell inside the sandbox.
nono why
Check why a path or network operation would be allowed or denied. Designed for both human debugging and programmatic use by AI agents.
nono learn
Trace a command to discover required filesystem paths. Uses strace to monitor file accesses and outputs paths that would need to be allowed in a nono profile. (Linux only)
nono setup
Set up nono on this system. Verifies installation, tests sandbox support, and optionally generates example profiles.
nono learn Options
nono learn is only available on Linux as it requires strace. The command runs WITHOUT sandbox restrictions to discover what paths your application needs.--profile, -p
Compare against an existing profile to show only missing paths.
--toml
Output discovered paths as a TOML fragment suitable for a profile.
--timeout
Limit trace duration in seconds.
--all
Show all accessed paths, not just those that would be blocked by the sandbox.
--verbose, -v
Enable verbose output. Can be specified multiple times.
nono run Options
Directory Permissions
These flags grant recursive access to directories and all their contents.--allow, -a
Grant read and write access to a directory.
--read, -r
Grant read-only access to a directory.
--write, -w
Grant write-only access to a directory.
File Permissions
These flags grant access to individual files only (non-recursive).--allow-file
Grant read and write access to a single file.
--read-file
Grant read-only access to a single file.
--write-file
Grant write-only access to a single file.
Network Control
--net-block
Block all network access. Network is allowed by default.
Network access is currently binary - either all outbound connections are allowed, or all are blocked. There is no per-host or per-domain filtering.Granular network filtering (e.g., allowing only specific domains like
api.anthropic.com) is a desired feature but not yet supported. Apple Seatbelt has technical limitations that make per-host filtering challenging and would require significant experimentation to implement correctly. This feature may be added in a future release.nono shell Options
nono shell supports the same permission, profile, secrets, and dry-run flags as nono run, plus:
--shell
Override the shell binary.
Command Blocking
--allow-command
Allow a normally-blocked dangerous command. By default, destructive commands like rm, dd, chmod are blocked. Use this flag to override for a specific command.
Even with
--allow-command, the kernel sandbox still restricts file operations to granted paths. A command can only affect files within directories you explicitly allowed.--block-command
Block an additional command beyond the default blocklist.
Secrets Options
--secrets
Load secrets from the system keystore (macOS Keychain / Linux Secret Service) and inject them as environment variables.
- Loaded before the sandbox is applied (keystore access blocked after)
- Auto-named by uppercasing:
openai_api_keybecomes$OPENAI_API_KEY - Zeroized from memory after
exec()
Profile Options
--profile, -p
Use a named profile (built-in or from ~/.config/nono/profiles/).
--workdir
Working directory for $WORKDIR expansion in profiles (defaults to current directory).
--allow-cwd
Allow access to the current working directory without prompting. By default, nono prompts interactively for CWD sharing. The access level is determined by the profile’s [workdir] config or defaults to read-only.
Operational Flags
--dry-run
Show what capabilities would be granted without actually executing the command or applying the sandbox.
--verbose, -v
Increase logging verbosity. Can be specified multiple times.
| Flag | Level | Output |
|---|---|---|
| (none) | Error | Only errors |
-v | Info | Informational messages |
-vv | Debug | Detailed debug output |
-vvv | Trace | Full trace output |
--config, -c
Specify a configuration file path.
Configuration file support is planned for a future release.
nono why Options
The why command checks why a path or network operation would be allowed or denied. It’s designed for both human debugging and programmatic use by AI agents.
--path
The filesystem path to check.
--op
The operation to check: read, write, or readwrite. Defaults to read if not specified.
--host
Network host to check (instead of --path).
--port
Network port (default: 443). Used with --host.
--json
Output JSON instead of human-readable format. Useful for programmatic use by AI agents.
--self
Query current sandbox state from inside a sandboxed process. This allows agents to introspect their own capabilities.
Capability Context Options
When checking paths outside a sandbox, you can simulate a capability context:--allow,-a- Directories with read+write access--read,-r- Directories with read-only access--write,-w- Directories with write-only access--allow-file- Single files with read+write access--read-file- Single files with read-only access--write-file- Single files with write-only access--net-block- Block network access--profile,-p- Use a named profile--workdir- Working directory for$WORKDIRexpansion
nono setup Options
--check-only
Only verify installation and sandbox support, don’t create any files.
--profiles
Generate example user profiles in ~/.config/nono/profiles/.
--shell-integration
Show shell integration instructions (aliases, etc.).
--verbose, -v
Show detailed information during setup. Can be specified multiple times.
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Command executed successfully |
| 1 | nono error (invalid arguments, sandbox failure) |
| * | Exit code from the executed command |
Path Resolution
All paths are canonicalized before the sandbox is applied:- Relative paths are resolved to absolute paths
- Symlinks are followed and resolved
- Parent directory references (
..) are resolved