Help us shape the future of Go! Take the 2026 Go Developer Survey

cli

module
v1.4.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2026 License: MIT

README

ɳSelf CLI

Version Go License Platform Docker CI Status Security Scan Test Coverage

Self-hosted backend in 5 minutes

Complete, production-ready backend stack — PostgreSQL, GraphQL API, Authentication, and Nginx — launched from a single command. Extend with free and paid plugins (nself plugin count for current totals). MIT licensed core, forever.

v1.3.5 is out. See the changelog for what shipped. Release notes

brew install nself-org/nself/nself

Quick Start · The Stack · Plugins · Pricing · Docs


What is ɳSelf?

ɳSelf is a self-hosted backend platform that gives you the equivalent of a commercial Backend-as-a-Service on your own infrastructure. Run it locally, on a VPS, or on any cloud provider (Kubernetes: planned — see the k8s plugin).

You get Postgres, Hasura GraphQL, nHost Auth, and Nginx as the always-on core. Add optional services like Redis, MinIO, and Search when you need them. Extend everything with free MIT plugins and paid plugins covering AI, messaging, media processing, billing, and more — run nself plugin count for current totals.

The nself CLI is a single Go binary. No runtime dependencies beyond Docker.


Quick Start

# Install (macOS)
brew install nself-org/nself/nself

# Install (Linux / WSL2)
curl -fsSL https://install.nself.org | bash

# Create a project and start the stack
mkdir my-backend && cd my-backend
nself init
nself start

With NSELF_V15=1, bare nself prints the next command for the current project, followed by the command list.

Your backend is running:

  • GraphQL API: https://api.local.nself.org
  • Auth: https://auth.local.nself.org
  • Storage: https://storage.local.nself.org
  • Admin UI: http://localhost:3021

All *.local.nself.org domains resolve to 127.0.0.1. Automatic SSL — no browser warnings.


The Stack

ɳSelf organizes services into three tiers. This ordering matters everywhere: Core first, Optional second, Plugins last.

Core Services (always on — 4 services)

These four services start with every nself start and cannot be disabled. They are the permanent foundation.

Service Role
PostgreSQL Primary database (pgvector, PostGIS, TimescaleDB)
Hasura Instant GraphQL API with permissions, subscriptions, and metadata
Auth (nHost) JWT-based authentication — 13 OAuth providers (Google, GitHub, Microsoft, etc.)
Nginx Reverse proxy and SSL terminator — the only external-facing process

All internal services bind to 127.0.0.1. Nginx is the only external-facing process.

Optional Services (enable per project — 6 services)

These services are first-class and CLI-managed. Toggle them in .env and rebuild.

Service Toggle Role
Redis REDIS_ENABLED=true Caching, sessions, queues
MinIO MINIO_ENABLED=true S3-compatible object storage
Search MEILISEARCH_ENABLED=true Full-text search (MeiliSearch)
Email MAIL_ENABLED=true Email service — 16+ providers (SendGrid, SES, Mailgun, Postfix, and more)
Functions FUNCTIONS_ENABLED=true Serverless runtime
Admin NSELF_ADMIN_ENABLED=true Local GUI companion at localhost:3021
nself service list          # see all available services and their status
nself service enable redis  # enable a service
nself build && nself restart
Plugins (drop-in expansions)

Plugins are the extension layer — install what you need, remove what you don't.

  • Free MIT plugins — no license key required
  • Paid plugins — require a membership key (starting at $0.99/mo)
  • Run nself plugin count for current totals
nself plugin install monitoring    # free: Prometheus + Grafana + Loki
nself plugin install search        # free: MeiliSearch full-text search
nself plugin install cron          # free: scheduled job execution

nself license set nself_pro_xxxxx
nself plugin install ai            # paid: multi-provider LLM gateway
nself plugin install livekit       # paid: live video and audio
nself plugin install claw          # paid: AI assistant backend

See Plugins for the full inventory.


Key Features

  • Complete backend in under 5 minutes on any machine with Docker
  • 50 CLI commands — full control from the terminal over every service and operation
  • Built-in CI gate (nself ci) — replaces external CI for merge enforcement
  • Core services always-on; optional services enable with one line in .env
  • Plugins extend the stack without touching core config (nself plugin count for current totals)
  • Multi-tenancy, row-level security, and org management built in
  • Stripe/Paddle billing integration included
  • White-label support — custom domains, branding, email templates
  • Monitoring bundle (Prometheus, Grafana, Loki, Tempo, and 6 more) via the monitoring plugin
  • Automated SSL via Let's Encrypt in production; trusted local certs in dev
  • Security hardening runs automatically on install, update, deploy, and daily — always free
  • Multi-environment support: local, staging, and production from one install
  • 40+ custom service templates (Express, FastAPI, NestJS, Gin, Rust, gRPC, and more)
  • One-command migration from Supabase, Nhost, or Firebase

Installation

macOS (Homebrew)
brew install nself-org/nself/nself
Linux
curl -fsSL https://install.nself.org | bash
Windows

WSL2 is required. Once WSL2 is set up, use the Linux installer above inside your WSL2 terminal.

The installer auto-detects existing installations, checks for Docker, downloads the binary to ~/.nself/bin, and adds nself to your PATH.

Docker
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
  -v ~/.nself:/root/.nself nself/nself version
Build from source
git clone https://github.com/nself-org/cli
cd cli
make build
make install  # copies nself to /usr/local/bin

Requires Go 1.22+ and GNU make.

The installer always fetches checksums.txt from the same GitHub release and verifies the SHA-256 of the downloaded tarball before extracting. Installation aborts loudly on any mismatch.

For the most paranoid setups, pin the expected SHA-256 in your shell or CI config:

# Obtain the expected checksum for a specific release:
curl -fsSL https://github.com/nself-org/cli/releases/download/v1.3.5/checksums.txt

# Install with a pinned version and pinned SHA-256:
NSELF_VERSION=v1.3.5 \
NSELF_INSTALL_PIN_SHA256=<sha256-from-checksums.txt> \
curl -fsSL https://install.nself.org | bash

This defends against a compromised release page: even if the tarball at the release URL is replaced, the pinned SHA will not match and the install fails.

Update
nself update    # detects your install method and updates in place

5-Minute Tutorial

# 1. Install
# macOS:  brew install nself-org/nself/nself
# Linux:  curl -fsSL https://install.nself.org | bash

# 2. Create a project
mkdir my-backend && cd my-backend

# 3. Initialize with defaults (or use --wizard for interactive setup)
nself init

# 4. Generate Docker configs from your .env
nself build

# 5. Start the stack
nself start

# 6. Check everything is healthy
nself status
nself urls

Your core backend is running. Add optional services:

# Enable Redis and full-text search
nself service enable redis
nself service enable search
nself build && nself restart

# Install a free plugin
nself plugin install monitoring  # Prometheus + Grafana + Loki

# Set a pro license and install an AI plugin
nself license set nself_pro_xxxxxx
nself plugin install ai
nself build && nself restart

CLI Command Reference

ɳSelf provides 47 top-level commands organized by domain. Full reference: nself.org/docs/cli.

Stack lifecycle
nself init          Initialize a new nSelf project
nself build         Generate Docker configs from .env
nself start         Boot the stack (alias: nself up)
nself stop          Stop the stack (alias: nself down)
nself restart       Smart restart with change detection
nself reset         Stop, remove volumes, clean generated files
Services and config
nself service       Manage optional services (list, enable, disable)
nself config        Manage project configuration (show, get, set, validate)
nself env           Multi-environment management (use, list, diff, copy)
nself promote       Promote environment to another (staging to prod)
Plugins and licensing
nself plugin        Plugin management (install, remove, update, list, status, marketplace)
nself license       License key management (set, show, validate, clear)
Database
nself db            Database operations:
                      migrate (up/down/status/create)
                      seed, backup, restore, shell, drop, reset
                      rls, pitr, pgbouncer, audit, soft-delete, fk-index, fixtures
Security and operations
nself security      Security audit, setup, scan, and status
nself secrets       Encrypted secret management (age encryption)
nself backup        Backup operations (create, list, restore, verify, prune)
nself ssl           SSL certificate management (status, renew, setup, add)
nself doctor        System diagnostics with auto-repair (--deep for full hardening checks)
nself health        Health checks (check, watch, history)
Monitoring and observability
nself status        Service health status (--deep for extended probes)
nself logs          View and filter service logs
nself urls          List all service URLs
nself monitor       Monitoring stack management
nself alerts        Manage Prometheus alert rules and silences
nself watchdog      Self-healing container watchdog with circuit breaker
Infrastructure
nself deploy        Deploy to environment
nself tenant        Tenant management (create, upgrade, suspend, destroy, audit)
nself admin         Open the Admin UI (start, connect)
nself dr            Disaster recovery (drill, promote-standby, rollback, fence)
nself waf           Web Application Firewall (enable, mode, report)

Run nself help <command> for subcommand details.


Comparison

ɳSelf Supabase Nhost Coolify Firebase
Fully self-hosted Yes Limited Limited Yes No
MIT licensed core Yes Partial Partial Apache 2.0 No
Multi-tenancy built-in Yes No No No No
Built-in billing integration Yes No No No No
White-label support Yes No No No No
Setup time ~5 min 30+ min 30+ min 15+ min N/A
Plugin ecosystem 256 total (129 free + 127 pro) Limited Limited App templates No
Deploy anywhere Yes Cloud-first Cloud-first Yes No
Data ownership Full Shared Shared Full No

Pricing

The nself CLI and 129 free MIT plugins are fully FOSS. Free forever, including commercial use. Pro plugins require a membership key.

Tier Monthly Annual What's included
Free $0 $0 Core CLI + 129 free MIT plugins
Bundle $0.99/mo $9.99/yr Every pro plugin in one bundle (ɳTask, ɳChat, ɳClaw, ɳFamily, ɳSentry, or ClawDE)
ɳSelf+ $3.99/mo $39.99/yr All 6 bundles + all apps + priority support
ɳCloud custom custom Managed hosting + ɳSelf+ license + cloud-exclusive features

Annual pricing saves ~17% vs monthly. See nself.org/pricing for current offers and migration from prior tiers.

nself license set nself_pro_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
nself plugin install ai

Plugins

Free plugins (29 — MIT, no key required)

Install any free plugin with nself plugin install <name>:

Plugin Category What it does
backup Infrastructure Automated PostgreSQL backup with pruning and cloud storage
cron Automation Scheduled job execution with HTTP callbacks
feature-flags Infrastructure Feature flag management with targeting rules
github Development GitHub repository, issue, and workflow integration
jobs Infrastructure PostgreSQL-backed background job queue
monitoring Infrastructure Full observability stack: Prometheus, Grafana, Loki, and 7 more services
notify Communication Email (SMTP) and webhook notifications
search Infrastructure Full-text search (PostgreSQL FTS + MeiliSearch)
stripe Commerce Stripe payment data sync and webhooks
webhooks Communication Outbound webhook delivery with retry and HMAC signing
+ 15 more Various content-acquisition, content-progress, donorbox, github-runner, invitations, link-preview, mdns, notifications, paypal, shopify, subtitle-manager, tokens, torrent-manager, vpn, webhooks

Full inventory: nself.org/plugins

Pro plugins (127 — license-gated, starting at $0.99/mo)
nself license set nself_pro_xxxxxx
nself plugin install <name>
nself build

Categories include AI and intelligence, real-time communication, media processing, billing, compliance, content management, multi-tenancy, and more. Notable plugins:

  • ai — multi-provider LLM gateway (OpenAI, Anthropic, Cohere, local models)
  • claw — AI personal assistant backend with infinite memory (pgvector + ltree)
  • livekit — live video and audio rooms
  • chat — real-time messaging
  • media-processing — encoding, transcoding, thumbnail generation
  • streaming — HLS/DASH adaptive streaming
  • compliance — GDPR, CCPA, HIPAA, SOC 2, PCI-DSS coverage
  • auth — WebAuthn/passkeys, TOTP 2FA, magic links, device-code flow

Pro plugins are source-available. License validated server-side via ping.nself.org. Revoked keys render plugins inert on next build.


Companion Products

ɳSelf powers six open-source apps. Each is an MIT app you self-host:

App Bundle Price What it does
ɳTasks Free $0 Task management — free, no paid plugins ever
ɳChat ɳChat $0.99/mo Messaging with live video, bots, and moderation
ɳClaw ɳClaw $0.99/mo AI personal assistant with self-organizing memory
ɳFamily ɳFamily $0.99/mo Private family social hub (planned)
ɳSentry ɳSentry $0.99/mo Monitoring, status pages, and error tracking
ClawDE ClawDE $0.99/mo AI development environment (desktop + mobile)

Each app's backend is powered by the nself CLI + the matching plugin bundle.


Configuration

Config lives in .env.dev (team defaults), .env.staging, and .env.prod. nself build reads the active env file and generates docker-compose.yml and Nginx config.

Never hand-edit docker-compose.yml — it is generated and will be overwritten on the next build.

nself config show        # show current config
nself config set KEY VALUE
nself config validate    # validate before building
Env file priority (low to high)
  1. .env.dev — team defaults (checked in)
  2. .env.staging — staging shared config (checked in)
  3. .env.prod — production shared config (checked in)
  4. .env.secrets — production secrets (not checked in)
  5. .env — local overrides (not checked in, highest priority)
Custom services (40+ templates)

Add your own services via CS_N slots:

CS_1=api:fastapi:3001     # Python FastAPI
CS_2=worker:bullmq-ts:3002  # TypeScript BullMQ
CS_3=grpc:grpc:3003       # gRPC service

Templates: JavaScript/TypeScript (19), Python (7), Go (4), Rust, Java, C#, Elixir, and more.


Production Deployment

# Copy project to server
rsync -az --exclude .volumes/ ./ user@server:/opt/myapp/

# On the server
nself start --env prod
nself status
nself health check

Security hardening runs automatically on every deploy. No license required.

See Self-hosting: what is and is not included for what nSelf provides vs. what you own as the operator (backups, monitoring, on-call, capacity).


Requirements

Minimum Recommended
Docker 24+ latest
macOS 12 (Monterey) 14+
Linux Ubuntu 20.04 / Debian 11 Ubuntu 22.04+
RAM 2 GB 4 GB
Disk 5 GB 10 GB

Docs and Community


Contributing

The CLI is written in Go (1.22+). See Contributing for the full guide.

Quick setup:

git clone https://github.com/nself-org/cli
cd cli
make build   # produces ./nself
make test    # go test -mod=vendor ./...

Tests live in internal/ alongside the packages they test. Coverage target: 70% on cmd/commands/ and internal/. Integration tests gate on INTEGRATION=1 and require Docker.


License

MIT, free for personal and commercial use. See LICENSE.

Pro plugins (count generated from the plugins-pro registry, not hand-typed here) are source-available under the nSelf Bundle License. Compiled binaries are distributed through ping.nself.org after license validation.


ɳSelf CLI v1.3.5 · nself.org · GitHub

Get Started · Documentation · Pricing

Directories

Path Synopsis
cmd
commands
Package commands — access.go
Package commands — access.go
nself command
nself-backup-archive command
nself-backup-archive is a helper binary used as PostgreSQL's archive_command.
nself-backup-archive is a helper binary used as PostgreSQL's archive_command.
internal
access
Package access implements the business logic behind `nself access grant / revoke / list` — managing SSH public keys in the authorized_keys file of an already-deployed nself host.
Package access implements the business logic behind `nself access grant / revoke / list` — managing SSH public keys in the authorized_keys file of an already-deployed nself host.
admin
Package admin provides admin dashboard support: audit logging, ACL, multi-project management, and remote connect helpers.
Package admin provides admin dashboard support: audit logging, ACL, multi-project management, and remote connect helpers.
aiprofile
Package aiprofile implements AI_PROFILE enforcement, budget caps, feature flags, per-tier timeouts, and rate-limit coordination.
Package aiprofile implements AI_PROFILE enforcement, budget caps, feature flags, per-tier timeouts, and rate-limit coordination.
apidocs
Package apidocs generates an OpenAPI 3.1 spec from the Hasura introspection result and any registered plugin REST routes.
Package apidocs generates an OpenAPI 3.1 spec from the Hasura introspection result and any registered plugin REST routes.
auth
Package auth — HTTP client for nSelf auth server operations.
Package auth — HTTP client for nSelf auth server operations.
backup
Package backup provides path validation helpers for backup operations.
Package backup provides path validation helpers for backup operations.
backup/destinations
Package destinations — destination.go: the Destination interface, Parse and the kind registry.
Package destinations — destination.go: the Destination interface, Parse and the kind registry.
backup/pitr
Package pitr implements point-in-time recovery via pg_basebackup and WAL archiving.
Package pitr implements point-in-time recovery via pg_basebackup and WAL archiving.
build
Package build — alertmanager.go: Build-pipeline integration for the Alertmanager routing config, with ɳSentry-aware receiver + route generation.
Package build — alertmanager.go: Build-pipeline integration for the Alertmanager routing config, with ɳSentry-aware receiver + route generation.
bundle
Package bundle implements the canonical nSelf paid plugin bundle catalog plus install/remove orchestration with license validation, version pinning, and atomic rollback on failure (S2.T03/T04/T22).
Package bundle implements the canonical nSelf paid plugin bundle catalog plus install/remove orchestration with license validation, version pinning, and atomic rollback on failure (S2.T03/T04/T22).
bundle/appready
Package appready defines what "app-ready" means for a bundle install (P7-PLUG-19, cap:cli.bundle-app-ready) and runs the steps after the plugin files are on disk.
Package appready defines what "app-ready" means for a bundle install (P7-PLUG-19, cap:cli.bundle-app-ready) and runs the steps after the plugin files are on disk.
bundle/ledger
atomic.go — the durable file writer shared by the ledger and the remove intent.
atomic.go — the durable file writer shared by the ledger and the remove intent.
canon
Package canon holds the declared command canon: the embedded side table that records what cobra cannot know about a command (canon status, side-effect class, output kind, JSON support, state exit codes and flag escalations).
Package canon holds the declared command canon: the embedded side table that records what cobra cannot know about a command (canon status, side-effect class, output kind, JSON support, state exit codes and flag escalations).
cmd/ci
Package ci — serve.go
Package ci — serve.go
cmdregistry
Package cmdregistry derives the deterministic command registry document (contract:cli.command-registry v1) from a cobra tree, the declared canon data and the JSON data-type map.
Package cmdregistry derives the deterministic command registry document (contract:cli.command-registry v1) from a cobra tree, the declared canon data and the JSON data-type map.
compat
Package compat is the single switch ADR 0021 requires for every P7 change that breaks an existing user-visible behaviour.
Package compat is the single switch ADR 0021 requires for every P7 change that breaks an existing user-visible behaviour.
compat/compattest
Package compattest runs a test body in both ADR 0021 compat modes.
Package compattest runs a test body in both ADR 0021 compat modes.
compose
Package compose: service toggle helper.
Package compose: service toggle helper.
compose/monitoring
Package monitoring — alert rule and Alertmanager config generators.
Package monitoring — alert rule and Alertmanager config generators.
config
Package config — user-level telemetry preference management.
Package config — user-level telemetry preference management.
config/bindings
Package bindings declares, once, which command flags supply which configuration keys (contract:config.env, Constitution 6.1).
Package bindings declares, once, which command flags supply which configuration keys (contract:config.env, Constitution 6.1).
controlplane
Package controlplane implements the shared control-plane core consumed by both the nSelf CLI and the nSelf Admin companion.
Package controlplane implements the shared control-plane core consumed by both the nSelf CLI and the nSelf Admin companion.
controlplane/promote
Package promote runs an environment promotion as an injected transaction.
Package promote runs an environment promotion as an injected transaction.
controlplane/sim
Package sim provides a multi-server Docker sshd simulation harness for integration-testing the control-plane pipeline without touching live hosts.
Package sim provides a multi-server Docker sshd simulation harness for integration-testing the control-plane pipeline without touching live hosts.
cost
Package cost implements per-service cost alerting for nSelf AI and media plugins.
Package cost implements per-service cost alerting for nSelf AI and media plugins.
database
Package database — drill.go: high-level DR drill orchestration.
Package database — drill.go: high-level DR drill orchestration.
database/vectorsearch
Package vectorsearch generates the pgvector k-NN SQL function for one table column and mirrors its Hasura tracking entry (P7-ADOPT-07, EPIC ADOPT D7).
Package vectorsearch generates the pgvector k-NN SQL function for one table column and mirrors its Hasura tracking entry (P7-ADOPT-07, EPIC ADOPT D7).
deploy
Package deploy provides deployment management for the nSelf CLI.
Package deploy provides deployment management for the nSelf CLI.
deploy/archguard
Package archguard checks image platforms before a remote deploy changes a host.
Package archguard checks image platforms before a remote deploy changes a host.
deploy/bluegreen
Package bluegreen implements zero-downtime blue/green and canary deploys for the nSelf CLI (B47 + B48).
Package bluegreen implements zero-downtime blue/green and canary deploys for the nSelf CLI (B47 + B48).
deploy/progress
Package progress writes contract:cli.deploy-progress v1: the NDJSON stream that `nself deploy --json --stream` and `nself deploy promote <src> <tgt> --json --stream` print.
Package progress writes contract:cli.deploy-progress v1: the NDJSON stream that `nself deploy --json --stream` and `nself deploy promote <src> <tgt> --json --stream` print.
deprecation
Package deprecation — G4: sunset date computation for per-plugin API entries.
Package deprecation — G4: sunset date computation for per-plugin API entries.
docker/dockertest
Package dockertest decides whether a test that needs a Linux docker daemon runs, skips or fails on the current host (D-0286).
Package dockertest decides whether a test that needs a Linux docker daemon runs, skips or fails on the current host (D-0286).
doctor
S77-T08: doctor --deep check for orphaned Hasura remote schemas.
S77-T08: doctor --deep check for orphaned Hasura remote schemas.
domain
Package domain provides DNS propagation polling and nginx server block generation for custom domain provisioning.
Package domain provides DNS propagation polling and nginx server block generation for custom domain provisioning.
embedded
Package embedded provides the wasmtime + pglite embedded-PostgreSQL path for nSelf stacks that run without an external Postgres container.
Package embedded provides the wasmtime + pglite embedded-PostgreSQL path for nSelf stacks that run without an external Postgres container.
env
Package env implements multi-environment management for nSelf projects.
Package env implements multi-environment management for nSelf projects.
errs
Registry fragment: ACME certificate codes (E470-E474, P7-LIVE-22).
Registry fragment: ACME certificate codes (E470-E474, P7-LIVE-22).
exporter
Package exporter writes a read-only, snapshot-consistent portable bundle.
Package exporter writes a read-only, snapshot-consistent portable bundle.
featureflags
Package featureflags provides a built-in, file-backed feature flag registry for the nSelf CLI binary.
Package featureflags provides a built-in, file-backed feature flag registry for the nSelf CLI binary.
generate
Package generate provides the schema codegen engine for nself generate.
Package generate provides the schema codegen engine for nself generate.
hasura
Package hasura provides the single step-function entry point that wires Hasura metadata application into the nself lifecycle (start/deploy), so that `<project>/hasura/metadata/` on disk is never silently ignored.
Package hasura provides the single step-function entry point that wires Hasura metadata application into the nself lifecycle (start/deploy), so that `<project>/hasura/metadata/` on disk is never silently ignored.
health
Package health provides health checking utilities for nSelf services.
Package health provides health checking utilities for nSelf services.
httptimeout
Package httptimeout provides timeout-bounded *http.Client values per scope.
Package httptimeout provides timeout-bounded *http.Client values per scope.
importer
Package importer coordinates portable imports without exposing source credentials.
Package importer coordinates portable imports without exposing source credentials.
importer/load
Package load applies verified bundles to fresh, started targets.
Package load applies verified bundles to fresh, started targets.
importer/postgres
Package postgres registers the base snapshot importer.
Package postgres registers the base snapshot importer.
importer/scratch
Package scratch turns generated DDL and COPY files into a portable Postgres bundle.
Package scratch turns generated DDL and COPY files into a portable Postgres bundle.
importer/testkit
Package testkit provides isolated source fixtures and target projects.
Package testkit provides isolated source fixtures and target projects.
importer/verify
Package verify defines the importer's zero-mismatch rule.
Package verify defines the importer's zero-mismatch rule.
installer
Package installer provides automated installation of Ollama and related local-LLM infrastructure for nSelf Block A (Zero-Config AI).
Package installer provides automated installation of Ollama and related local-LLM infrastructure for nSelf Block A (Zero-Config AI).
installmeta
Package installmeta persists install-time metadata to ~/.nself/install-meta.json.
Package installmeta persists install-time metadata to ~/.nself/install-meta.json.
invoke
Package invoke is the one execution core that MCP and HTTP share (contract:cli.machine-request v1, EPIC P7-SURF D2).
Package invoke is the one execution core that MCP and HTTP share (contract:cli.machine-request v1, EPIC P7-SURF D2).
license
Package license — banner.go provides warning banner text for grace period states.
Package license — banner.go provides warning banner text for grace period states.
lock
Package lock is the project lock nself.lock.yaml (contract:cli.lockfile v1, P7-LIVE-09, EPIC D10): which CLI minor, service images and plugin versions a project was built with.
Package lock is the project lock nself.lock.yaml (contract:cli.lockfile v1, P7-LIVE-09, EPIC D10): which CLI minor, service images and plugin versions a project was built with.
machineauth
Package machineauth is the machine-surface bearer token: where it comes from, how it is created, how a request is checked against it, and which bind addresses may carry it.
Package machineauth is the machine-surface bearer token: where it comes from, how it is created, how a request is checked against it, and which bind addresses may carry it.
maintenance
Package maintenance — daily Hasura metadata backup cron registration.
Package maintenance — daily Hasura metadata backup cron registration.
metrics
Package metrics emits Prometheus-compatible metrics for one-shot nSelf CLI command invocations (backup.go: backup/verify results; license.go: license grace-period state; stripe.go: webhook processing outcomes) by writing node_exporter textfile-collector .prom files rather than serving a live /metrics endpoint.
Package metrics emits Prometheus-compatible metrics for one-shot nSelf CLI command invocations (backup.go: backup/verify results; license.go: license grace-period state; stripe.go: webhook processing outcomes) by writing node_exporter textfile-collector .prom files rather than serving a live /metrics endpoint.
migrate
Package migrate provides migration helpers for legacy nSelf project layouts.
Package migrate provides migration helpers for legacy nSelf project layouts.
migrate/firebase
Package firebase implements the Firebase → nSelf migration scaffold.
Package firebase implements the Firebase → nSelf migration scaffold.
migrate/supabase
Package supabase implements the Supabase → nSelf migration pipeline.
Package supabase implements the Supabase → nSelf migration pipeline.
migrationai
Package migrationai provides AST-based schema delta detection and AI-assisted SQL migration generation for nSelf projects.
Package migrationai provides AST-based schema delta detection and AI-assisted SQL migration generation for nSelf projects.
model
Package model detects which plugin distribution model is in effect for a given plugin in the current project: Model A (Docker compose-managed, source under plugins-pro-src/) or Model B (single-binary, installed under ~/.nself/plugins/<name>/).
Package model detects which plugin distribution model is in effect for a given plugin in the current project: Model A (Docker compose-managed, source under plugins-pro-src/) or Model B (single-binary, installed under ~/.nself/plugins/<name>/).
nginx
Package nginx provides Nginx configuration generation and management for the nSelf CLI.
Package nginx provides Nginx configuration generation and management for the nSelf CLI.
nginxtopo
Package nginxtopo resolves on-disk nginx directory topology for projects fronted by another stack's nginx (NGINX_FRONTED_BY / config.NginxConfig.
Package nginxtopo resolves on-disk nginx directory topology for projects fronted by another stack's nginx (NGINX_FRONTED_BY / config.NginxConfig.
oauth
Package oauth provides manual OAuth token refresh helpers.
Package oauth provides manual OAuth token refresh helpers.
objstore
Package objstore is a small stdlib S3 client: SigV4, path style, ListObjectsV2 with pagination, GetObject, PutObject, HeadBucket and CreateBucket (EPIC D19, P7-ADOPT-23).
Package objstore is a small stdlib S3 client: SigV4, path style, ListObjectsV2 with pagination, GetObject, PutObject, HeadBucket and CreateBucket (EPIC D19, P7-ADOPT-23).
observability
Package observability instruments long-running nSelf Go services (the embedded servers behind `nself admin`, plugin daemons, and any process that stays up long enough to be scraped) with a live Prometheus registry, an HTTP /metrics endpoint, OpenTelemetry tracing, structured JSON logging, and request/field redaction.
Package observability instruments long-running nSelf Go services (the embedded servers behind `nself admin`, plugin daemons, and any process that stays up long enough to be scraped) with a live Prometheus registry, an HTTP /metrics endpoint, OpenTelemetry tracing, structured JSON logging, and request/field redaction.
onboarding
Package onboarding implements the 6-stage onboarding funnel check for nself doctor --install-check.
Package onboarding implements the 6-stage onboarding funnel check for nself doctor --install-check.
oplock
Package oplock is the project operation lock (EPIC P7-LIVE D12, A-21).
Package oplock is the project operation lock (EPIC P7-LIVE D12, A-21).
oplock/oplockcmd
Package oplockcmd binds the project operation lock to a cobra command.
Package oplockcmd binds the project operation lock to a cobra command.
output
Package output writes command results and errors for humans and machines.
Package output writes command results and errors for humans and machines.
plugin
Package plugin — lifecycle audit helpers.
Package plugin — lifecycle audit helpers.
plugin/count
Package count is the CLI's single source for "how many plugins are there".
Package count is the CLI's single source for "how many plugins are there".
plugin/lifecycle
Package lifecycle provides the dormant-plugin state machine for the nSelf plugin license lifecycle.
Package lifecycle provides the dormant-plugin state machine for the nSelf plugin license lifecycle.
plugin/manifestv2
Package manifestv2 owns the plugin manifest v2 contract (contract:plugin.manifest).
Package manifestv2 owns the plugin manifest v2 contract (contract:plugin.manifest).
plugin/mount
Package mount discovers the CLI command surface an installed plugin declares (contract:cli.plugin-command-mount v1).
Package mount discovers the CLI command surface an installed plugin declares (contract:cli.plugin-command-mount v1).
plugin/readiness
Package readiness verifies that a plugin has applied its own boot-time migrations (contract:plugin.boot-migrations v1, ADR 0010).
Package readiness verifies that a plugin has applied its own boot-time migrations (contract:plugin.boot-migrations v1, ADR 0010).
plugin/requires
Package requires checks a plugin's requires.postgres_extensions against the project's Postgres before the plugin is downloaded (P7-ADOPT-06).
Package requires checks a plugin's requires.postgres_extensions against the project's Postgres before the plugin is downloaded (P7-ADOPT-06).
plugin/scaffold
Package scaffold provides the canonical plugin scaffolding logic shared between the nself CLI (plugin new command) and the standalone new-plugin binary in plugin-sdk-go/devkit.
Package scaffold provides the canonical plugin scaffolding logic shared between the nself CLI (plugin new command) and the standalone new-plugin binary in plugin-sdk-go/devkit.
portable
Package portable reads and writes the vendor-neutral nself portable export bundle (contract:cli.portable-export v1, P7-ADOPT-23).
Package portable reads and writes the vendor-neutral nself portable export bundle (contract:cli.portable-export v1, P7-ADOPT-23).
ports
Package ports provides port-holder identification utilities for the nSelf CLI.
Package ports provides port-holder identification utilities for the nSelf CLI.
postgres/tablehash
Package tablehash computes a per-table row count and an order-independent content hash, the single definition of "zero mismatch" shared by the importer, the exporter, the round trip and the image switch (EPIC D8, contract:cli.portable-export v1, P7-ADOPT-23).
Package tablehash computes a per-table row count and an order-independent content hash, the single definition of "zero mismatch" shared by the importer, the exporter, the round trip and the image switch (EPIC D8, contract:cli.portable-export v1, P7-ADOPT-23).
promote
Package promote implements staging-to-production promotion with diff preview and rollback.
Package promote implements staging-to-production promotion with diff preview and rollback.
reconcile
Package reconcile is the pure half of the change-plan engine (P7-LIVE-01).
Package reconcile is the pure half of the change-plan engine (P7-LIVE-01).
repoqa
Package repoqa holds repository-wide invariant tests: formatting, layout, and code-rule gates that apply to the whole tree rather than to one package.
Package repoqa holds repository-wide invariant tests: formatting, layout, and code-rule gates that apply to the whole tree rather than to one package.
runbook
Package runbook implements the SRE runbook library and claw-ops auto-execution engine.
Package runbook implements the SRE runbook library and claw-ops auto-execution engine.
runner
Package runner implements `nself runner provision` and `nself runner verify` (G-012): building and auditing self-hosted GitHub Actions CI runner hosts.
Package runner implements `nself runner provision` and `nself runner verify` (G-012): building and auditing self-hosted GitHub Actions CI runner hosts.
runtime
Package runtime detects the local container runtime (Docker, OrbStack, Podman) and reports its name, binary path, version, and enterprise-mode hint.
Package runtime detects the local container runtime (Docker, OrbStack, Podman) and reports its name, binary path, version, and enterprise-mode hint.
scaffold
Package scaffold provides CS_N custom service scaffolding for nself projects.
Package scaffold provides CS_N custom service scaffolding for nself projects.
search
Package search provides MeiliSearch integration helpers for the nSelf CLI.
Package search provides MeiliSearch integration helpers for the nSelf CLI.
secrets
Package secrets — rotation scheduling, dual-key windows, and expiry alerts.
Package secrets — rotation scheduling, dual-key windows, and expiry alerts.
seed
Package seed implements the DB seeding fixtures system for nSelf projects.
Package seed implements the DB seeding fixtures system for nSelf projects.
sentryapi
Package sentryapi is the typed REST client for the ɳSentry cloud API.
Package sentryapi is the typed REST client for the ɳSentry cloud API.
server
Package server implements `nself server` (G-011): provisioning, listing, resizing, and destroying cloud servers, backed by the Hetzner Cloud API.
Package server implements `nself server` (G-011): provisioning, listing, resizing, and destroying cloud servers, backed by the Hetzner Cloud API.
service
Package service provides lifecycle management for individual nSelf optional services (start, stop, restart, ps, update, scale).
Package service provides lifecycle management for individual nSelf optional services (start, stop, restart, ps, update, scale).
setup
Package setup implements the nself init wizard: project scaffolding, secret generation, .env file creation, and .nself/ directory setup.
Package setup implements the nself init wizard: project scaffolding, secret generation, .env file creation, and .nself/ directory setup.
sqlallowlist
Package sqlallowlist enforces a DDL allowlist for SQL statements submitted through the nself_run_migration MCP tool.
Package sqlallowlist enforces a DDL allowlist for SQL statements submitted through the nself_run_migration MCP tool.
ssl
telemetry
Package telemetry — opt-in anonymous CLI telemetry client (S65.T01 / Q07).
Package telemetry — opt-in anonymous CLI telemetry client (S65.T01 / Q07).
templates/clone
Package clone provides embedded app-clone templates for nself init --template.
Package clone provides embedded app-clone templates for nself init --template.
tenant
Package tenant manages multi-tenant lifecycle operations for a self-hosted nSelf deployment.
Package tenant manages multi-tenant lifecycle operations for a self-hosted nSelf deployment.
ui
updatecheck
Package updatecheck is the opt-in, once-per-24h "newer nself exists" hint.
Package updatecheck is the opt-in, once-per-24h "newer nself exists" hint.
upgrade/plan
Package plan is the upgrade step model shared by `nself update --plan|--yes` and `nself update stack` (cap:cli.update-plan, P7-LIVE-10; P7-PLUG-31 runs the same step list, PLUG D10).
Package plan is the upgrade step model shared by `nself update --plan|--yes` and `nself update stack` (cap:cli.update-plan, P7-LIVE-10; P7-PLUG-31 runs the same step list, PLUG D10).
upgrade/stack
Package stack executes the shared upgrade plan with a durable recovery journal.
Package stack executes the shared upgrade plan with a durable recovery journal.
webhook
Package webhook provides HMAC-SHA256 signing and dispatch for nSelf webhook deliveries.
Package webhook provides HMAC-SHA256 signing and dispatch for nSelf webhook deliveries.
Package schemas exposes the committed generated JSON schemas as bytes.
Package schemas exposes the committed generated JSON schemas as bytes.
sdk
go module
tools
canongen command
Command canongen renders the canon move table.
Command canongen renders the canon move table.
catalog command
Command catalog generates registry.json, catalog.json and counts.json from plugin manifests, releases.json and bundles.json (contract:plugins.catalog v1).
Command catalog generates registry.json, catalog.json and counts.json from plugin manifests, releases.json and bundles.json (contract:plugins.catalog v1).
catalog/model
Package model holds the wire types of the plugin catalog generator (contract:plugins.catalog v1, contract:plugins.registry, contract:plugins.counts).
Package model holds the wire types of the plugin catalog generator (contract:plugins.catalog v1, contract:plugins.registry, contract:plugins.counts).
cmdinventory command
Command cmdinventory prints the CLI's real command tree.
Command cmdinventory prints the CLI's real command tree.
covfloor command
Command covfloor checks per-package statement coverage against floors kept as data (contract cap:cli.coverage-floors, EPIC P7-GUARD decision G7).
Command covfloor checks per-package statement coverage against floors kept as data (contract cap:cli.coverage-floors, EPIC P7-GUARD decision G7).
endpoint-auth-checker command
Package main — allowlist.go Known-safe auth middleware names and exempt route patterns.
Package main — allowlist.go Known-safe auth middleware names and exempt route patterns.
flagaudit command
Purpose: resolve each scanned invocation's command path against the
Purpose: resolve each scanned invocation's command path against the
imagebump command
Command imagebump proposes pin bumps for internal/compose/images.yaml.
Command imagebump proposes pin bumps for internal/compose/images.yaml.
imagelist command
imagelock command
Command imagelock generates and checks internal/compose/images.lock.json.
Command imagelock generates and checks internal/compose/images.lock.json.
jsonvalidate command
Command jsonvalidate checks one JSON document against the generated schema.
Command jsonvalidate checks one JSON document against the generated schema.
manifestv2migrate command
Command manifestv2migrate converts, regenerates and checks plugin.json files for manifest v2 (P7-PLUG-01).
Command manifestv2migrate converts, regenerates and checks plugin.json files for manifest v2 (P7-PLUG-01).
mcpdoc command
Command mcpdoc prints the current MCP tool/resource/prompt list as markdown, generated from source rather than hand-maintained.
Command mcpdoc prints the current MCP tool/resource/prompt list as markdown, generated from source rather than hand-maintained.
openapigen command
parity command
Purpose: decide whether the env vars a command's own source reads are
Purpose: decide whether the env vars a command's own source reads are
perfbench command
Command perfbench is the performance harness of the nself CLI (contract:cli.perfbench v1; EPIC P7-GUARD, decision G8).
Command perfbench is the performance harness of the nself CLI (contract:cli.perfbench v1; EPIC P7-GUARD, decision G8).
perfbench/scenarios
Package scenarios is the registration API of tools/perfbench (contract:cli.perfbench v1).
Package scenarios is the registration API of tools/perfbench (contract:cli.perfbench v1).
schemagen command
Built-in schema registrations: envelope, error object, command registry.
Built-in schema registrations: envelope, error object, command registry.
servicecatalog command
Command servicecatalog renders the nSelf service catalog as markdown.
Command servicecatalog renders the nSelf service catalog as markdown.
wikigen command
Command wikigen generates one wiki page per top-level CLI command.
Command wikigen generates one wiki page per top-level CLI command.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL