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.
Commands
nono profile groups
List all policy groups or show details for a specific group.
Options
nono profile list
List all available profiles, showing built-in, package-provided, and user-defined profiles separately. User profiles that shadow a built-in profile are flagged. Package profiles always use fully-qualified names and cannot be shadowed by bare user-profile names.
Bare names resolve from the user profile directory first, then built-ins. Package profiles resolve only by their fully-qualified package name, such as
nolabs-ai/claude, so a user claude.json does not shadow the package profile.Options
JSON entries contain
name, source, and either the loaded profile’s description and extends fields or an error. For package profiles, source is "pack" and name is already the fully-qualified package identity; there is no separate pack field.
nono profile show
Display a fully resolved profile, including all inherited groups, filesystem grants, network configuration, hooks, and rollback settings.
--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.
upstream URL or inject_mode):
(no differences).
Options
nono profile validate
Validate a user profile JSON file against the embedded policy. Catches common mistakes before they cause runtime failures.
Example output for a valid profile:
Options
JSON Output
All subcommands support--json for integration with scripts, CI pipelines, and tools like jq.
Use Cases
Resolved effective rules
--format manifest emits the fully resolved effective rules as JSON, using the same extends + group resolution that nono run uses. This is useful for policy-as-code pipelines, diffing resolved rules across environments, or feeding the output into other tooling: