Repository navigation
cmd ci
Run the nself-ci gate suite and post a GitHub commit status.
nself ci [repo-root] [flags]
Run the local CI gate suite for a repository.
Detects the repo stack (Go, Node/TS, Flutter) and runs the appropriate lint, test, and build checks plus a gitleaks secret scan. Posts a "nself-ci" GitHub commit status via gh OAuth so branch protection can require nself-ci instead of billing-blocked GitHub Actions checks.
[repo-root] is resolved against the directory you run the command from,
and defaults to .. Unlike the stack lifecycle commands (start, stop,
status, logs, build), nself ci is not redirected into a
detected backend/ sub-directory.
That distinction matters in a monorepo. nself start from the repo root
deliberately retargets backend/, because that is where the stack lives.
nself ci must not: the gate belongs to the whole checkout, and the
manifests it looks for (package.json, pnpm-workspace.yaml, go.mod)
usually sit at the repo root while backend/ holds only .env.
Before this was fixed, nself ci --check . in such a repo announced
"Detected monorepo layout. Using backend as project root" and gated
backend/ instead, overriding the path you passed. If you relied on that
behaviour, pass the sub-directory explicitly: nself ci ./backend.
The gates themselves live in a separate binary, nself-ci, built from the
free ci plugin. nself ci resolves it in this order:
-
nself-cialready onPATH. - Plugin source next to the CLI checkout (
plugins/free/ci), built on demand. This is the developer path. - Otherwise fetched once with
go installand cached at~/.nself/bin/nself-ci.
Step 3 is what makes the command usable from a single-file install, where no plugin source is on disk. It requires a Go toolchain and runs only once per machine. Expect it to take a couple of minutes the first time: the gate module declares a newer Go than most machines have, so Go downloads a matching toolchain before building. Progress is printed, and the fetch is bounded at 10 minutes rather than left to stall.
To skip the fetch entirely, put a pre-built nself-ci on your PATH:
git clone https://github.com/nself-org/plugins
cd plugins/free/ci && go build -o ~/.nself/bin/nself-ci ./cmd/Until this existed, an installed CLI failed with nself-ci binary not found on PATH and expected you to clone a second repo by hand. That manual step
is why nself ci could not be used as a required status check.
nself ci is the free ci plugin. The first run installs it, prints one
warning, and runs it. The CI fabric guides (getting started, architecture,
configuration and policy, evidence and machine output, migration,
troubleshooting, reference) live with the plugin (published with the CI
fabric release):
plugins .github/wiki/guides/ci/.
nself ci eval is now nself eval, from the nself-eval-gate plugin. The old
spelling still runs it, auto-adds the plugin the first time, and prints a
deprecation line. With NSELF_NO_AUTO_ADD=1 and the
plugin missing, it fails with E404 and tells you to run
nself add nself-eval-gate.
nself doctor --deep no longer runs CI-VAULT-SYNC-01 in v1.5. That check read
the operator's private secret store, so product code must not
depend on it. CI-TOKEN-01 still runs. v1.4 is unchanged.
| Name | Shorthand | Type | Default | Env | Escalates to | JSON override | Description |
|---|---|---|---|---|---|---|---|
--check |
bool |
false |
Run gates only; do not post a GitHub commit status | ||||
--filesystem |
bool |
false |
Force gitleaks filesystem scan (--no-git) even inside a git checkout; opt-in for non-checkout source trees such as an exported tarball | ||||
--no-gitleaks |
bool |
false |
Skip the gitleaks secret scan | ||||
--no-status |
bool |
false |
Alias for --check | ||||
--owner |
string |
"" |
GitHub owner (default: from git remote) | ||||
--repo |
string |
"" |
GitHub repo name (default: from git remote) | ||||
--sha |
string |
"" |
Commit SHA to report on (default: HEAD) | ||||
--verbose |
-v |
bool |
false |
Print each gate command before running | |||
--help |
-h |
bool |
false |
Show help |
| Name | Description |
|---|---|
build |
Build a signed release artifact locally (Android only) |
eval |
Run eval-gate suite or validate an eval-set YAML |
forgejo |
Show Forgejo server + runner health (ops profile) |
serve |
Start the nself-ci webhook listener daemon (port 3845) |
-
Side effect:
remote -
Output:
document -
JSON:
none - Exit codes: none declared
nself ci # gate current directory, post status
nself ci --check # gate only, no status posted
nself ci --no-gitleaks . # skip secret scan
nself ci --sha abc1234 . # override commit SHA
nself ci --filesystem /tmp/x # force filesystem scan (non-checkout source, e.g. a tarball)
nself ci /path/to/repo # gate a specific repo- Commands — full command index
- Core-Services — what a stack is made of
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