Skip to main content
The nono profile command lets you inspect the group-based security policy, explore profiles, compare configurations, and validate user-defined profiles. Every subcommand supports --json for programmatic consumption.
Previously known as nono policy. The nono policy <sub> namespace still works as a deprecated alias — it prints a warning on stderr and dispatches to the new command. Removal is tracked in upstream issue #594.

Commands

nono profile groups

List all policy groups or show details for a specific group.
Example output:
Detailed view shows every path in the group, with variables expanded to their actual values:

Options

nono profile list

List all available profiles, showing preset, pack-provided, and user-defined profiles separately. User profiles that shadow a preset or pack profile are flagged.
Example output:
Malformed user profiles are surfaced with their error instead of being silently hidden:
Load precedence is user-first. If a user profile file exists at ~/.config/nono/profiles/claude-code.json, it shadows the pack-provided claude-code profile. The profiles command reports the actual source in JSON output, and lists the profile under the User section.

Options

nono profile show

Display a fully resolved profile, including all inherited groups, filesystem grants, network configuration, hooks, and rollback settings.
Example output:
The --raw flag shows path variables as written in the profile (e.g., $HOME/.claude) rather than their expanded values. This is useful for understanding what a profile declares versus what it resolves to on a specific machine.

Options

nono profile diff

Compare two profiles side-by-side. Shows additions, removals, and changes across all profile sections: groups, filesystem, policy patches, security settings, network, hooks, rollback, open URLs, env credentials, and custom credentials.
Example output:
For custom credentials and hooks, the diff detects value-level changes when two profiles share the same key but differ in configuration (e.g., different upstream URL or inject_mode):
When profiles are identical, the output shows (no differences).

Options

nono profile validate

Validate a user profile JSON file against the embedded policy. Catches common mistakes before they cause runtime failures.
Checks performed: Example output for a valid profile:
Example output for an invalid profile:
The command exits with a non-zero status when validation fails, making it suitable for CI pipelines.

Options

JSON Output

All subcommands support --json for integration with scripts, CI pipelines, and tools like jq.

Use Cases

Auditing security posture

Review exactly what a profile grants before deploying it:

Debugging sandbox failures

When a sandboxed process fails because a path is blocked, trace the policy:

CI/CD validation

Validate custom profiles before they ship:

Detecting user overrides

Check whether pack profiles have been shadowed by user files: