Repository navigation
error codes
Every user-facing error in the ɳSelf CLI includes a stable code, a plain-language explanation, and a suggested fix. This page is the catalog for all registered error codes.
An error that carries a code (a structured error, or a known failure such as Docker not running) prints a block on stderr:
Error: [E001] Docker not installed
Why: The docker binary was not found in PATH.
Fix: Install Docker: https://docs.docker.com/get-docker/
Docs: https://nself.org/docs/reference/error-codes#e001
The Why, Fix and Docs lines appear only when they have content. Every other error still prints one line, Error: <message>, and exits 1.
The code in brackets (e.g., [E001]) is stable across CLI versions. You can search this page by code to find the cause and fix. The exit status is the Exit column of the code's row; see Exit-Codes for the classes.
The coded block and the exit classes (2, 3, 4) are v1.5 behaviour. They are on from v1.5.0 and opt-in before that with
NSELF_V15=1; see Compat-V15. Without it, errors print asError: <message>and exit 1.
- Copy the bracketed code from the terminal output (e.g.,
E102). - Search this page for that code (Ctrl+F or Cmd+F).
- The fix column gives you the fastest path to resolution.
These errors occur when the CLI cannot find or communicate with Docker.
| Code | Exit | Summary | Why | Fix |
|---|---|---|---|---|
| E001 | 2 | Docker not installed | The docker binary was not found in PATH. | Install Docker: https://docs.docker.com/get-docker/ |
| E002 | 2 | Docker daemon not running | The Docker daemon is not responding to commands. | Start Docker Desktop or run: sudo systemctl start docker |
| E003 | 2 | Docker Compose not available | docker compose v2 plugin is not installed. | Update Docker Desktop or install the compose plugin manually. |
| E004 | 2 | docker-compose.yml not found | No docker-compose.yml exists in the project directory. | Run 'nself build' to generate the compose file. |
| E005 | 2 | Port conflict | A required port is already in use by another process. | Run 'nself doctor' to identify the conflict, then stop the conflicting process or change the port in .env. |
These errors occur during configuration validation or when reading .env files.
These errors occur when installing plugins or validating license keys.
| Code | Exit | Summary | Why | Fix |
|---|---|---|---|---|
| E100 | 1 | Plugin not found | The requested plugin does not exist in the registry. | Run 'nself plugin list' to see available plugins. |
| E101 | 3 | Invalid license key | The license key format is invalid. | License keys start with 'nself_pro_' followed by 32+ characters. Check your key. |
| E102 | 3 | License tier insufficient | Your license tier does not include this plugin. | Upgrade your plan at https://nself.org/pricing |
| E103 | 3 | License expired | The license key has expired. | Renew your license at https://nself.org/account |
| E104 | 3 | License validation failed (network) | Cannot reach the license server and no valid local cache exists. | Check your internet connection. Previously validated licenses work offline for 7 days. |
| E105 | 1 | Circular plugin dependency | Plugin dependency graph contains a cycle. | Report this as a bug at https://github.com/nself-org/cli/issues |
| E106 | 1 | Invalid plugin manifest | The plugin manifest is missing a required field or contains an invalid value. | Fix the manifest fields named in the message, or reinstall the plugin: nself add |
| E107 | 1 | Plugin is not signed | A stable plugin release has no signature, so the install was refused. | Use a release that carries a signature, or report the missing signature to the plugin publisher. |
| E108 | 1 | Plugin checksum missing | A stable plugin release has no checksum, so the install was refused. | Use a release that carries a checksum, or report the missing checksum to the plugin publisher. |
| E109 | 1 | Duplicate plugin slug | The same plugin slug is served by more than one unrelated registry entry. | Report this to the registry maintainers. Install the plugin by its full registry name if one is shown. |
| E110 | 3 | License does not entitle this plugin tier | The installed license does not include this Licensed plugin. | Check your plan with: nself license status. Upgrade at https://nself.org/pricing if the tier is missing. |
| E111 | 1 | Forbidden key in a v2 plugin manifest | A manifest_version 2 plugin.json carries a key that belongs to the registry or to a legacy format (bundles, tier_pair, author_public_key, signature, checksum). | Remove the key from plugin.json. Bundle membership lives in bundles.json and signatures are added by the release pipeline. |
| E112 | 1 | Plugin manifest compatibility keys drifted | The generated compatibility keys (pluginType, binaryName, cliCommands, minNselfVersion, status, isCommercial, licenseType, requires_license, tier) no longer match the v2 fields they are derived from. | Regenerate them: go run github.com/nself-org/cli/tools/manifestv2migrate -in plugin.json -compat -write |
| E113 | 1 | Plugin command collides with a core command | commands.command is one of the core command verbs, so the plugin cannot be mounted under it. | Rename commands.command in plugin.json to a name that is not a core verb. |
| E114 | 1 | Unsupported plugin manifest version | plugin.json declares a manifest_version this nself release does not read (supported: 1 or absent, and 2). | Set manifest_version to 2, or upgrade nself if the manifest was written for a newer release. |
| E115 | 2 | Plugin catalog unavailable | The CLI could not fetch https://plugins.nself.org/catalog.json and has no cached copy to fall back on. | Check the network connection and run the command again; once one fetch succeeds the catalog is cached under ~/.nself/cache/plugins and later runs work offline. |
| E116 | 2 | Plugin catalog invalid | The catalog document does not parse as catalog schema 1: it is not JSON, has another schema_version, lists no plugins, or a plugin row is malformed. An invalid document is never cached. | Run the command again in a few minutes; if it keeps failing, update the CLI and report the problem at https://github.com/nself-org/plugins/issues. |
| E117 | 1 | Command provided by an uninstalled plugin | The command is not built in and no installed plugin provides it, but the cached plugin catalog lists a plugin that does. | Install the plugin named in the message with nself add , then run the command again. |
| E118 | 2 | Plugin migrations not applied in time | The bounded wait ended before the plugin's /health reported every migration applied: it reported fewer applied than expected, or it never answered HTTP 200 (hang, error status, redirect). The plugin applies its own SQL at boot; the CLI never applies it. | Read the plugin logs (docker logs nself_) for the failing migration. A slow first boot needs a longer wait: set NSELF_PLUGIN_READY_TIMEOUT (seconds). |
| E119 | 2 | Plugin health lacks migrations status | The plugin declares migrations but its /health response has no valid "migrations" {applied, expected} field (absent, wrong type, negative, applied above expected, or a body over 1 MiB), so readiness cannot be proven. | Update the plugin to a release built on sdk/go/migrate, which serves the migrations field in /health. |
| E120 | 1 | Plugin ships migrations without boot apply | The plugin has a migrations/ directory but its manifest does not declare migrations.apply: boot, so nothing applies the SQL when the plugin starts. | Add "migrations": {"dir": "migrations", "apply": "boot"} to plugin.json and apply the files at boot with sdk/go/migrate. |
| E121 | 1 | Plugin release signature is invalid | The release signature in the registry does not verify for this tarball, or it is malformed. The download may have been tampered with. | Retry the install. If it keeps failing, report the plugin and version to nself-org/plugins; do not bypass the check. |
| E122 | 1 | Plugin release signed by an unknown key | The release signature names a key id that this CLI does not trust for this plugin tier. Trusted keys are compiled into the CLI. | Update the CLI (nself update) so it carries the current release keys, then retry the install. |
| E123 | 1 | Plugin release signed by a revoked key | The key that signed this release has been revoked, so the release is no longer trusted. | Install a newer release of the plugin, or update the CLI (nself update) and retry. |
| E124 | 1 | Plugin download checksum mismatch | The downloaded tarball does not match the checksum published in the registry. Nothing was extracted. | Retry the install. If the mismatch repeats, the download source may be corrupted or tampered with; report it to nself-org/plugins. |
| E125 | 3 | Licensed plugin entitlement JWT unavailable | The CLI could not obtain a verified ping-issued licence JWT covering every licensed plugin within grace. A still-valid runtime token is retained unless rejected or its key was removed; otherwise the runtime guard stays closed. | Set a valid licence with nself license set, check connectivity to ping.nself.org, and run nself license refresh followed by nself build. |
| E126 | 1 | Plugin entitlement file is stale | The verified entitlement JWT expired more than seven days ago. Licensed plugins stop serving after the thirty-day grace ends. | Run nself license refresh followed by nself build before the entitlement grace expires. |
| E127 | 1 | Plugin declares no seed command | The plugin's manifest has no seed.command, so nself db seed --plugin has nothing to run inside its container. |
Ask the plugin author to declare an idempotent seed argv under "seed": {"command": [...]} in plugin.json, or seed the data another way. |
| E128 | 1 | Compose plugin has no compose fragment | The plugin declares a compose service (service.kind compose, or a Dockerfile and a port), but it ships no docker-compose.plugin.yml, so nself build would silently leave it out of the stack. | Reinstall or update the plugin so its docker-compose.plugin.yml is present, or ask the plugin author to mark it service.kind cli or library if it runs no container. |
| E129 | 1 | Plugin fragment uses a foreign external network | The plugin's docker-compose.plugin.yml attaches a service to an external network other than the project network, which would reach outside this stack. | Attach the service to ${DOCKER_NETWORK} only, or remove the plugin; ask the plugin author to drop the external network from the fragment. |
| E130 | 1 | plugin compose fragment violates policy (ADR 0027) | A plugin compose fragment asks for something the plugin policy forbids, such as mounting the Docker socket. | Remove the offending setting from the plugin's docker-compose.plugin.yml, or remove the plugin. |
| E131 | 1 | Plugin tier change needs --tier | An update would move an installed plugin to another tier (free or licensed), and nself never changes the tier of an existing install on its own. | Re-run with --tier free or --tier licensed to choose the tier on purpose, or keep the installed tier by leaving the plugin as it is. |
| E132 | 1 | No active entitlement refresh timer | A licensed plugin is installed but no host timer refreshes the entitlement file, so the plugin stops serving 30 days after the last build, start or manual refresh. The timer is missing, was removed with its project or binary, or the project or nself binary path failed the safety rule (unsafe-path). | Run nself build to install the timer again, or nself license refresh from your own scheduler. NSELF_ENTITLEMENT_AUTOREFRESH=false turns the timer off on purpose. |
| E133 | 1 | Plugin still referenced by a bundle | The plugin is a member of an installed bundle (the bundle install ledger lists it under installed_by), so removing it on its own would leave that bundle half installed. | Remove the bundle that references it (nself bundle remove ; plugins no other bundle needs and you did not install yourself go with it), or pass --force to remove only this plugin. |
| E134 | 1 | Bundle not installed | The bundle install ledger at /.nself-state/bundles.json does not record this bundle, so nothing it installed is removable as a unit. A bundle is recorded only when all of its plugins are installed. | Remove the individual plugins with nself plugin remove . |
| E135 | 2 | Bundle not app-ready | Every plugin of the bundle was installed, but a later step did not finish: reconcile, start, readiness (boot migrations applied), tracking (every manifest table tracked in Hasura) or health. The message names the bundle, the step and the plugin. | Read the failing step in the report, fix its cause (docker logs nself_ for readiness), then run the bundle install again; plugins that are already installed are not reinstalled. |
| E136 | 1 | Bundle ledger lists a missing plugin | The bundle install ledger records a plugin whose directory or plugin.json is gone from the plugin directory, so the ledger and the disk disagree. | Reinstall the bundle (nself bundle install ) to restore the missing plugin. |
| E137 | 1 | Template requires a plugin that is in no registry | The clone template lists a required plugin that neither the free nor the licensed plugin catalog publishes, so the project it writes could not run. | Pick another template, or scaffold without this one and add the plugin yourself once it is published. List what exists with: nself plugin search. |
| E138 | 1 | MinIO moved to a plugin | In v1.5 core object storage is SeaweedFS and MinIO is no longer a core service. | Run nself add minio to keep the minio_data volume and minio service name with unchanged data, or set OBJECT_STORAGE_ENABLED=true and MINIO_ENABLED=false for a new empty SeaweedFS store, or set MINIO_ENABLED=false if this project does not use MinIO. Back up and move existing data dump-first. |
| E139 | 2 | Update stack step failed, resumable | A stack upgrade step failed. The journal records the failed step and the verified recovery backup; production recovery awaits the operator. | Read .nself/state/update-stack.json and retry nself update stack --yes. If awaiting-operator or rollback-failed, run the exact backup restore command shown, then restart the previous images from the pinned snapshot (.nself/state/update-stack-previous-*.json) with the docker compose command shown, before starting a new upgrade. |
| E140 | 2 | Plugin tables not tracked in Hasura | The plugin installed and reported its boot migrations applied, but the CLI could not track its manifest tables in Hasura (Hasura unreachable, the admin call failed, or a table the manifest lists does not exist in Postgres), so the plugin's tables are not queryable through GraphQL. The message names the plugin, the untracked tables and the underlying error. | Run the install again: tracking is idempotent and only tracks what is still missing. Check that Hasura is up with nself db hasura (status) and that the plugin applied its migrations (docker logs nself_).
|
| E141 | 1 | Plugin command binary already provided by another plugin | The plugin declares a command whose binary (nself-) another installed plugin already publishes. The command proxy runs one binary per command, so installing this plugin would replace the other plugin's command. The message names both plugins and the command. | Remove the other plugin first (nself remove <plugin>) if you mean to replace its command, or install a version of this plugin whose cliCommands do not overlap. Plugin authors: give each command a name unique to the plugin. |
| E142 | 1 | Object storage credentials missing or unusable | OBJECT_STORAGE_ENABLED=true needs S3_ACCESS_KEY and S3_SECRET_KEY: they are the SeaweedFS S3 identity, and the store refuses to start without usable ones. | Set both in .env.secrets. Each must be nonempty and contain no double quote, backslash or control character. |
These errors occur during SSL certificate generation or network operations.
| Code | Exit | Summary | Why | Fix |
|---|---|---|---|---|
| E150 | 2 | mkcert not installed | mkcert is not installed; falling back to OpenSSL self-signed certs. | Install mkcert: brew install mkcert (macOS) or see https://github.com/FiloSottile/mkcert |
| E151 | 2 | SSL certificate generation failed | Could not generate SSL certificates for the configured domain. | Check domain configuration and ensure openssl is available. |
These errors occur when the CLI interacts with the PostgreSQL container, backups, restores and disaster recovery.
These errors occur during health checks run by nself doctor, nself health, nself status and startup probes.
These errors occur during nself init or when the CLI validates the working directory.
These errors occur when the CLI validates domain names or port numbers from config.
These errors come from the command line itself: usage, JSON support, destructive-action gates and moved commands.
| Code | Exit | Summary | Why | Fix |
|---|---|---|---|---|
| E400 | classified | Unclassified error | The command failed with an error that has no specific code. | Read the message. If it looks like a bug, report it at https://github.com/nself-org/cli/issues |
| E401 | 1 | Invalid usage | A flag or argument was missing, unknown or had an invalid value. | Run the command with --help to see the accepted flags and arguments. |
| E402 | 1 | JSON output not supported | This command or flag combination cannot produce JSON output. | Run the command without --json, or use nself help --json to see which commands support it. |
| E403 | 4 | Destructive action blocked | A safety gate refused a destructive action. | Read the message for the missing confirmation or flag, check the target environment, then confirm explicitly. |
| E404 | 1 | Command moved to a plugin | This command now lives in a plugin that is not installed. | Run the nself add command printed in the message, then run the command again. |
| E405 | 1 | Plugin command not mounted (name collision) | The plugin's commands.command collides with a core command verb, a cobra-native command or alias, or another installed plugin's command, so it was not mounted. | Rename commands.command in the plugin's plugin.json to a free name, or remove the other plugin claiming it, then run nself again. |
| E406 | 1 | Mounted plugin binary missing, not executable or outside the plugins dir | The plugin declares a commands block, but its binary was not found in the plugins bin dir, is not executable, or resolves (after symlinks) outside the plugins directory. | Reinstall the plugin with nself add ; if it was installed by hand, put an executable nself- binary in ~/.nself/plugins/bin/. |
| E407 | 1 | Builtin family not mounted | This builtin command family is disabled or was removed from the local installation, so its commands are not mounted. | Run nself add to restore the builtin family. |
| E410 | 1 | Command removed in v1.5 | This command was removed in nSelf v1.5 and has no replacement. | Read the message for what to use instead, or run nself --help to see the current commands. |
| E420 | 1 | Invalid machine request | The request sent over MCP or HTTP does not match the command's parameters. | Send only the args, flags and confirm members the command's params schema lists, with the right types. |
| E421 | 1 | Command not exposed on machine surfaces | This command is not served over MCP or HTTP, or the secret values passed to a machine-invoked child are unusable (bad bundle, an unused or reused value); the reason is in the cause. | Run the command from a terminal, or call a command that is exposed. |
| E422 | 2 | Command produced no single JSON document | The command ran but its standard output was not exactly one JSON document. | Run the same command in a terminal with --json and read its output; report the command if it prints text in JSON mode. |
| E423 | 2 | Command invocation timed out | The command did not finish before the invocation timeout and was stopped. | Raise the server invocation timeout, or use a command form that returns sooner. |
| E424 | 4 | Confirmation does not match | The confirm value is not a live server-issued nonce or plan id for this exact request: it was reused, expired, unknown, computed by the client, or issued for a different request. | Send the request again without confirm, read the confirmation it returns, and repeat the identical request with that confirm value. |
| E425 | 1 | Consent or plan-id flag set by the caller | Consent flags (such as --yes or --force) and plan-id flags belong to the invoker; a machine request cannot set them. | Remove the flag from the request and use the confirmation round trip: the server adds it once you confirm. |
| E426 | 3 | Machine token missing, invalid or insecure | The machine surface needs a bearer token it can trust: the token file is unreadable or readable by others, or a non-loopback bind lacks --allowed-host and a configured token. | Set NSELF_MCP_TOKEN or keep ~/.nself/mcp-token at mode 0600; for a non-loopback --host also pass --allowed-host . |
| E428 | 1 | Host not allowed | The request Host is outside the server's allowed hosts and port. | Use the configured listener host or pass --allowed-host explicitly. |
| E429 | 1 | Origin not allowed | The request Origin is outside the server's allowed HTTP origins. | Use an allowed HTTP origin on the listener port. |
| E430 | 1 | Malformed HTTP request | The method, JSON body, content type, body size or Accept header is invalid. | POST a JSON machine request no larger than 1 MiB and accept application/json or application/x-ndjson. |
| E431 | 2 | Server saturated | All machine invocation slots are in use. | Retry after one second. |
| E432 | 1 | No such route | The registry has no command at this route. | Read /openapi.json and use a documented command route. |
| E433 | 1 | Legacy MCP tool removed in v1.5 | This MCP tool ran raw SQL outside the migration ledger, and v1.5 no longer serves it. | Write the change as a migration with 'nself db migrate create', then apply it with 'nself db migrate up'. |
| E434 | 1 | Unknown configuration key or unbound flag | nself config explain was given a key that is not a known configuration key, or a command flag that supplies no configuration key. | Run 'nself config list' for the known keys, or 'nself help --json' and read each flag's env field for the flags that supply one. |
| E435 | 1 | nself.yaml has a type or syntax error | nself.yaml cannot be read as YAML, or a key holds a value of the wrong type (for example plugins as a number, or a plugin entry that is a map instead of a name). | Fix the value at the reported line so it matches schemas/nself-yaml.v1.schema.json (see the nself.yaml wiki page). |
| E436 | 1 | Unknown key in nself.yaml | nself.yaml has a key that nself does not read. Silent keys hide typos and drift. | Rename the key to x- if it is app metadata, or remove it. nself reads app, bundle, bundles and plugins only. |
| E437 | 1 | Plugin registry surface declaration invalid | A mounted plugin declares invalid confirmation or surface fields. | Fix the plugin manifest confirm flags and surface declaration, then reinstall it. |
Change-plan (E450) and operation-lock (E460) codes. The other codes in this block are documented here when their Tickets register them.
These errors come from nself deploy and related commands. Only the codes registered so far are listed.
These errors come from adopting an existing stack: custom services that name dependencies, networks, build contexts and host binds. Only the codes registered so far are listed.
See Config-Custom-Services for the keys and Import-Export-Format for the bundle codes.
These errors come from resolving secrets for a service.
With --json (v1.5 mode), a failure writes exactly one error envelope to stdout and the human block above still goes to stderr:
{
"schema_version": "1",
"command": "start",
"error": {
"code": "E002",
"message": "docker info failed: docker daemon is not running",
"cause": "The Docker daemon is not responding to commands.",
"remediation": "Start Docker Desktop or run: sudo systemctl start docker",
"docs_url": "https://nself.org/docs/reference/error-codes#e002",
"exit_code": 2,
"class": "infra"
}
}| Field | Rule |
|---|---|
code |
^E[0-9]{3}$. The error's own code; else the code of the matching known failure (when several match, the highest class wins: auth, then destructive, then infra, then user); else E400. |
message |
What happened. |
cause |
Omitted when empty. The Why line. |
remediation |
Omitted when empty. The Fix line. |
docs_url |
Omitted when empty. The Docs line. |
exit_code |
The process exit status. |
class |
user (1), infra (2), auth (3), destructive_blocked (4), other (any other status). |
command is the command path without nself ("" when the failure came before a command was resolved). Message, cause and remediation are redacted: URL credentials, tokens, e-mail addresses and IPs are masked, and raw arguments are never included. The schema is schemas/error.v1.schema.json.
Codes are grouped in blocks. A block has exactly one category, so the category of a code follows from its number. A new block or range needs an entry in the plan first; the registry (internal/errs) rejects a code outside its owner's range, a mismatched category, and any code in the reserved range.
| Block | Category | Use |
|---|---|---|
| E001-E049 | docker | Docker and Compose |
| E050-E099 | config | Configuration and secrets |
| E100-E149 | plugin | Plugins, licenses, entitlements |
| E150-E199 | ssl | Certificates |
| E200-E249 | database | Database, migrations, backups, recovery |
| E250-E299 | health | Service health |
| E300-E349 | init | Project setup |
| E350-E399 | domain | Domains and ports |
| E400-E449 | cli | Usage, JSON output, command moves |
| E450-E479 | reconcile | Reconcile, locks, ACME |
| E480-E499 | deploy | Deploy and release verification |
| E500-E529 | adopt | Adopting existing stacks |
| E540-E549 | secret | Secret resolution |
| E600-E719 | reserved | The ci plugin's own registry; never allocated in the CLI |
| E720-E739 | reserved | The k8s plugin's own registry; never allocated in the CLI. See cmd-k8s. |
Codes are never reused or renumbered. Several blocks have no registered codes yet; a block appears in the tables above once it has one.
If you are scripting around the CLI, branch on the exit status (see Exit-Codes) and parse the bracketed code from stderr, or use --json and read error.code from stdout:
output=$(nself start 2>&1)
if [ $? -ne 0 ]; then
code=$(printf '%s' "$output" | grep -oE '\[E[0-9]+\]' | head -1)
printf 'nself failed with %s\n' "$code"
fi- Exit-Codes, exit status classes and what changes in v1.5.0
- cmd-doctor, run diagnostics to identify and resolve common errors
- cmd-config, view and edit configuration values
- Plugin-Licensing, license key format and tier details
- Guide-SSL-Setup, SSL certificate setup
- Config-Env-Vars, all environment variable reference
Getting Started
Commands
- Commands, Overview
- Lifecycle: cmd-init · cmd-build · cmd-start · cmd-stop · cmd-restart · cmd-dev
- Monitoring: cmd-status · cmd-logs · cmd-health · cmd-urls · cmd-doctor · cmd-monitor · cmd-alerts · cmd-sentry · cmd-watchdog
- Data: cmd-db · cmd-backup · cmd-dr · cmd-queue · cmd-webhooks
- Config: cmd-config · cmd-service · cmd-env · cmd-promote
- Networking: cmd-ssl · cmd-trust · cmd-dns-setup
- Security: cmd-access · cmd-security · cmd-secrets
- Tenancy: cmd-tenant · cmd-billing
- Plugins: cmd-plugin · cmd-license · cmd-dogfood (extracted, CLI-R11) · cmd-k8s (extracted, CLI-R11) · cmd-encryption (extracted, CLI-R11) · cmd-waf (extracted, CLI-R11) · cmd-federation (extracted, CLI-R11) · cmd-mail (extracted, CLI-R11) · cmd-dlq (extracted, CLI-R11)
- AI: cmd-ai · cmd-claw · cmd-model
- Templates: cmd-template
- Utilities: cmd-exec · cmd-clean · cmd-reset · cmd-update · cmd-upgrade · cmd-version · cmd-admin · cmd-migrate · cmd-migrate-firebase · cmd-migrate-supabase · cmd-completion
Features
- Features, Overview
- Feature-Auth
- Feature-Storage
- Feature-Search
- Feature-Functions
- Feature-Email
- Feature-Monitoring
- Feature-Plugins
- Feature-nClaw, AI Assistant
- Feature-nChat, Messaging
- Feature-nFamily, Family Social
- Feature-nCloud, Managed Hosting
- Feature-Memory-Rooms, Knowledge Organization
- Feature-Agent-Dashboard, Agent Metrics
- Feature-Image-Generation, AI Image Generation
Configuration
- Configuration, Overview
- Config-Env-Vars
- Config-Postgres
- Config-Hasura
- Config-Auth
- Config-Nginx
- Shared-Proxy
- Config-Optional-Services
- Config-Custom-Services
- Config-System
Plugins (87 + 10 monitoring)
- Plugin-Overview
- Plugin-Catalog
- Plugin-Install
- Plugin-Licensing
- Plugin-Architecture
- Plugin-Dev-Guide
- Plugin-Migrations-Contract
Free (25)
- plugin-backup
- plugin-content-acquisition
- plugin-content-progress
- plugin-cron
- plugin-donorbox
- plugin-feature-flags
- plugin-github
- plugin-github-runner
- plugin-invitations
- plugin-jobs
- plugin-link-preview
- plugin-mdns
- plugin-mlflow
- plugin-monitoring
- plugin-notifications
- plugin-notify
- plugin-paypal
- plugin-search
- plugin-shopify
- plugin-stripe
- plugin-subtitle-manager
- plugin-tokens
- plugin-torrent-manager
- plugin-vpn
- plugin-webhooks
Pro (62)
- plugin-access-controls
- plugin-activity-feed
- plugin-admin-api
- plugin-analytics
- plugin-auth
- plugin-bots
- plugin-browser
- plugin-calendar
- plugin-cdn
- plugin-chat
- plugin-claw
- plugin-claw-budget
- plugin-claw-news
- plugin-claw-web
- plugin-cloudflare
- plugin-cms
- plugin-compliance
- plugin-ddns
- plugin-devices
- plugin-documents
- plugin-entitlements
- plugin-file-processing
- plugin-game-metadata
- plugin-geocoding
- plugin-geolocation
- plugin-google
- plugin-home
- plugin-idme
- plugin-knowledge-base
- plugin-linkedin
- plugin-livekit
- plugin-media-processing
- plugin-meetings
- plugin-moderation
- plugin-mux
- plugin-object-storage
- plugin-observability
- plugin-photos
- plugin-podcast
- plugin-post
- plugin-realtime
- plugin-retro-gaming
- plugin-rom-discovery
- plugin-social
- plugin-sports
- plugin-support
- plugin-tmdb
- plugin-voice
- plugin-web3
- plugin-workflows
Planned (26)
plugin-auditplugin-blogplugin-checkoutplugin-commerceplugin-drmplugin-exportplugin-flowplugin-importplugin-ldapplugin-mailgunplugin-mediaplugin-oauth-providersplugin-pagesplugin-postmarkplugin-rate-limitplugin-reportsplugin-samlplugin-schedulerplugin-sendgridplugin-ssoplugin-subscriptionplugin-thumbplugin-transcoderplugin-twilioplugin-wafplugin-watermark
Guides
- Guide-Production-Deployment
- Guide-SSL-Setup
- Guide-Multi-Tenancy
- Guide-Security-Hardening
- Guide-Monitoring-Setup
- Guide-Backup-Restore
- Guide-Custom-Services
- Guide-Migration-from-v1
Architecture
- Architecture
- Architecture-Guardrails
- Service-Graph
- Compose-Generation
- Nginx-Generation
- Plugin-Architecture
Reference
Machine interface
-
JSON-Output,
--jsonenvelope -
Command-Registry,
nself help --json - Exit-Codes
- error-codes, Error Codes
-
Compat-V15,
NSELF_V15gate
Licensing
Security
Brand
Operations
- operations/release-cascade, Release Cascade
- operations/self-healing, Self-Healing Schema
- operations/redis-tuning, Redis Pool Tuning
- operations/meilisearch-warmup, MeiliSearch Warm-Up
- operations/jwt-rotation, JWT Key Rotation
- operations/windows-wsl2-setup, Windows / WSL2 Setup
- operations/gemini-oauth-reauth, Gemini OAuth Reauth
Contributing
Admin
- USER-ACTION-QUEUE, Pending Admin Actions
All commands (21)
- A: cmd-add · cmd-admin
- B: cmd-backup · cmd-build
- C: cmd-clean · cmd-config
- D: cmd-db · cmd-deploy · cmd-doctor
- E: cmd-exec
- I: cmd-init
- L: cmd-license · cmd-logs
- M: cmd-mcp
- R: cmd-remove · cmd-reset · cmd-restart
- S: cmd-start · cmd-status · cmd-stop
- U: cmd-update