Activate and manage license keys for nSelf product bundles. Keys start with nself_pro_ and unlock paid plugins for the duration of the active subscription.
# Activate a license key
nself license set nself_pro_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Check license status
nself license status
# List all active licenses
nself license list
# Validate the key against the server
nself license validatenself license <SUBCOMMAND> [FLAGS]nSelf plugin bundles (ɳClaw, ɳChat, ɳTV, ɳFamily, ClawDE, ɳSentry) require a valid license key to install and run. Keys are issued when you subscribe at nself.org/pricing or buy a bundle at nself.org/products.
License validation happens via ping.nself.org/license/validate. The CLI caches the result for 7 days (fail-open), so plugins continue working during short outages. Use license simulate-offlineto test how your stack behaves after a longer connectivity gap.
One key can be active per machine. The ɳSelf+ key unlocks all six paid bundles. Individual bundle keys unlock only the plugins in that bundle.
Save a license key to the current project and validate it immediately against ping.nself.org. On success the tier and entitlements are printed and cached locally.
nself license set nself_pro_abc123...
# License accepted
# Tier: ɳSelf+
# Bundles: ɳClaw, ɳChat, ɳTV, ɳFamily, ClawDE, ɳSentry
# Expires: 2027-06-01
# Domains: unlimitedAdd a second license key to the project without replacing the existing one. Useful for stacking a bundle key on top of a base key.
nself license add nself_pro_def456...Remove a license key by key string or by product bundle name. Plugins that depend on the removed key go dormant after the next nself build.
nself license remove nself_pro_abc123...
nself license remove nclaw # remove the key that unlocks the ɳClaw bundlePrint a summary of all active keys: tier, bundles unlocked, expiry, domain activation count, and last-validated timestamp.
nself license status
# KEY (prefix) TIER BUNDLES EXPIRES LAST VALIDATED
# nself_pro_abc123… ɳSelf+ all 2027-06-01 2026-05-07 09:12 UTC
# nself_pro_def456… ɳChat chat 2026-12-01 2026-05-07 09:12 UTC
nself license status --jsonAlias for license status — lists all active keys in table format.
nself license list
nself license list --jsonPrint the full decoded payload for the active license key(s), including all entitlements.
nself license show
nself license show --jsonForce an immediate re-validation against ping.nself.org, bypassing the local cache. Useful after a subscription change or renewal.
nself license validate
nself license validate --jsonRemove all license keys and cached entitlements from the current project. Paid plugins go dormant after the next nself build.
nself license clearOpen nself.org/upgrade in the browser to upgrade your subscription tier.
nself license upgradeRefresh the cached license data from the server without changing the stored key. Equivalent to validate but also re-downloads entitlement metadata.
nself license refreshPrint the active license key(s) to stdout for backup or transfer to another machine.
nself license export
nself license export --jsonImport license keys from a file previously created with license export --json.
nself license export --json > license-backup.json
# ... on another machine:
nself license import license-backup.jsonMigrate a legacy key format (v0.x) to the current nself_pro_ format. Only needed when upgrading from nSelf v0.x.
nself license migrateTest offline behavior by simulating a validation outage lasting the given number of days. The CLI reports whether plugins would continue working (fail-open: 7-day cache) or go dormant.
nself license simulate-offline 3 # within cache window — plugins OK
nself license simulate-offline 10 # beyond cache — plugins would go dormant| Flag | Type | Default | Description |
|---|---|---|---|
--json | bool | false | Output as JSON (status, list, show, export) |
--force | bool | false | Skip confirmation (clear, remove) |
nself license set nself_pro_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nself plugin install ai claw mux voice browser google notify cron chat livekit recording moderation bots realtime
nself buildNSELF_PLUGIN_LICENSE_KEY=$NSELF_PLUGIN_LICENSE_KEY_OWNER nself license set "$NSELF_PLUGIN_LICENSE_KEY_OWNER"nself license export --json > license-backup.json
scp license-backup.json new-server:~/
ssh new-server "nself license import license-backup.json"nself license simulate-offline 5
# Offline simulation: 5 days
# Cache TTL: 7 days
# Result: plugins ACTIVE (within cache window)NSELF_PLUGIN_LICENSE_KEY — override the stored key (useful in CI and Docker environments)NSELF_LICENSE_API — override the validation endpoint (default: https://ping.nself.org/license/validate)0 — success1 — invalid or expired key2 — invalid arguments or missing subcommand3 — network error reaching validation endpoint4 — key not found (remove, show)