Skip to main content
Packs are signed bundles of profiles, hooks, plugins, and other artifacts distributed through the nono registry. This page covers the consumer side — installing and managing packs on your machine. For the producer side (creating and publishing packs), see Publishing Packs.

Installing a Pack

Use nono pull to install a pack from the registry:
nono pull always-further/claude
On install, the CLI:
  1. Fetches the pull manifest from the registry.
  2. Downloads artifacts and matching .bundle signature files.
  3. Verifies Sigstore bundles locally.
  4. Checks that the signer repository org matches the pack namespace.
  5. Pins the signer identity in a local lockfile.
  6. Installs verified artifacts into the pack store (~/.config/nono/packages/).

Pinning a Version

By default nono pull installs the latest version. Pin to a specific version with @:
nono pull always-further/claude@1.2.0

Initializing Project Files

Some packs include project-level instructions (e.g. a CLAUDE.md context file). Use --init to copy them into the current directory:
nono pull always-further/claude --init
Without --init, project-level instructions are installed into the pack store but not copied into your working directory.

Force Reinstall

Use --force to overwrite conflicts and accept signer changes:
nono pull always-further/claude --force
--force bypasses the signer-change prompt. Only use this when you trust the new signer identity.

Inline Update Hints

When you run nono run --profile <name>, nono checks whether any pack in the active profile’s extends chain has a newer version available and prints a one-line hint if so:
  update available  always-further/claude  0.0.12 → 0.0.13   run: nono update
Results are cached for 24 hours so the check never blocks startup. Stale entries refresh in a detached helper process for the next run. To suppress only pack update hints, set NONO_NO_PACK_UPDATE_HINTS=1. The hint also respects the global CLI update-check opt-out: set NONO_NO_UPDATE_CHECK=1 or [updates] check = false in ~/.config/nono/config.toml.

Checking for Updates

See which installed packs have newer versions available:
nono outdated
Machine-readable output:
nono outdated --json
Each entry reports the installed version, the latest available version, and the status (outdated, yanked, current, ahead).

Updating Packs

Update all installed packs to their latest versions:
nono update
Or update a specific pack:
nono update always-further/claude
The update checks the registry for newer versions, verifies signatures, and replaces local artifacts. Signer identity changes trigger a confirmation prompt (use --force to skip). Preview what would change without making updates:
nono update --dry-run
Pinned packs are skipped by default. Pass --force to update them:
nono update --force

Pinning Packs

Pin a pack to prevent it from being updated by nono update:
nono pin always-further/claude
Unpin to allow updates again:
nono unpin always-further/claude
Pinned packs are still shown by nono outdated. The pin state is local — it does not affect other users or the registry.

Removing a Pack

nono remove always-further/claude
This removes all artifacts installed by the pack (profiles, plugins, hooks, wiring) and cleans up the lockfile entry. If the pack applied wiring directives (e.g. injected hook entries into hooks.json), removal reverses them. If reversal partially fails, the lockfile entry is kept so you can retry. Use --force to proceed anyway:
nono remove always-further/claude --force

Searching the Registry

Find packs by keyword:
nono search claude
Machine-readable output:
nono search sandbox --json

Listing Installed Packs

nono list --installed
Machine-readable output:
nono list --installed --json

Custom Registry

All pack commands accept --registry to target a different registry (useful for development or enterprise registries):
nono pull --registry http://localhost:3001/api/v1 acme-corp/internal-agent
nono search --registry http://localhost:3001/api/v1 agent
Or set it globally via environment variable:
export NONO_REGISTRY=https://registry.example.com/api/v1
nono pull acme-corp/internal-agent

Pack Store Layout

Installed packs live under ~/.config/nono/packages/<namespace>/<name>/. Each pack directory contains the verified artifacts and a lockfile entry tracking the installed version and signer identity. Profiles from packs are automatically available to --profile. Use nono profile list to see all available profiles and their source (user, pack, or preset).

Next Steps