v0.9.6 - nself-org/cli GitHub Wiki
Release Date: January 30, 2026 Status: Production Ready Type: Major Feature Release (Pre-v1.0)
nself v0.9.6 completes the command consolidation initiative, reducing the CLI from 79 top-level commands to 31 organized commands with logical subcommand hierarchies. This 60.8% reduction dramatically improves discoverability, reduces cognitive load, and creates a more intuitive developer experience.
This release represents the final major structural change before v1.0, establishing a clean, maintainable command architecture that will remain stable through the 1.x lifecycle.
- β 79 β 31 Commands: Reduced top-level command count by 60.8%
- β 285+ Subcommands: Organized into logical hierarchies
- β 100% Backward Compatible: All old commands still work with deprecation warnings
- β 96% Test Pass Rate: 137/142 comprehensive QA tests passing
- β Zero Breaking Changes: Gradual migration path provided
- β Production Ready: Approved for immediate use
nself <command>
billing, org, upgrade, staging, prod, provision, server, servers,
sync, provider, cloud, k8s, helm, storage, email, search, redis,
functions, mlflow, realtime, admin-dev, env, secrets, vault,
validate, mfa, roles, devices, oauth, security, ssl, trust,
rate-limit, webhooks, bench, scale, migrate, rollback, reset,
clean, frontend, ci, docs, whitelabel, init, build, start, stop,
restart, status, logs, help, admin, urls, exec, doctor, monitor,
health, version, update, completion, metrics, history, audit, db,
tenant, deploy, infra, service, config, auth, perf, backup, dev,
pluginIssues:
- Hard to remember which commands exist
- Inconsistent naming patterns
- Difficult to discover related functionality
- Cluttered help output
- No logical grouping
nself <command> [subcommand]
# CORE (5)
init, build, start, stop, restart
# UTILITIES (15)
status, logs, help, admin, urls, exec, doctor, monitor,
health, version, update, completion, metrics, history, audit
# OTHER (11)
db, tenant, deploy, infra, service, config, auth, perf,
backup, dev, pluginBenefits:
- Easy to remember command categories
- Logical grouping by domain (deployment, infrastructure, services, etc.)
- Discoverable through consistent patterns
- Clean, scannable help output
- Organized by use case
NONE. This release maintains 100% backward compatibility.
Old commands now display helpful migration messages:
$ nself billing plans
β οΈ DEPRECATION: 'billing' command is deprecated
β Use: nself tenant billing plans
β Old syntax will be removed in v1.0 (estimated Q2 2026)
[command continues to execute normally]All 48 deprecated commands:
- Still work exactly as before
- Display migration guidance
- Will be removed in v1.0 (with 6-month notice)
Essential project lifecycle operations:
| Command | Purpose | Usage |
|---|---|---|
init |
Initialize project | nself init [--demo|--simple|--full] |
build |
Generate configurations | nself build [--force|--clean] |
start |
Start services | nself start [service...] |
stop |
Stop services | nself stop [service...] |
restart |
Restart services | nself restart [service...] |
Day-to-day development tools:
| Command | Purpose | Usage |
|---|---|---|
status |
Service health | nself status [service...] |
logs |
View logs | nself logs <service> [-f] |
help |
Help system | nself help [command] |
admin |
Admin UI | nself admin [--dev] |
urls |
Service URLs | nself urls [--json] |
exec |
Container exec | nself exec <service> <command> |
doctor |
Diagnostics | nself doctor [--fix] |
monitor |
Monitoring | nself monitor [dashboard] |
health |
Health checks | nself health [--deep] |
version |
Version info | nself version [--check] |
update |
Update CLI | nself update [--preview] |
completion |
Shell completions | nself completion <bash|zsh|fish> |
metrics |
Metrics/profiling | nself metrics [service] |
history |
Audit trail | nself history [--limit N] |
audit |
Security audit | nself audit [--export] |
Domain-specific functionality with rich subcommands:
nself db migrate <up|down|status|create|rollback>
nself db schema <dump|load|diff|validate>
nself db seed [dataset]
nself db mock <table> [--count N]
nself db backup [--output FILE]
nself db restore <file>
nself db shell
nself db query <sql>
nself db types <language>
nself db inspect [table]
nself db data <import|export># Core tenant management
nself tenant create <name> [--plan PLAN]
nself tenant list [--status STATUS]
nself tenant suspend <tenant-id>
# Member management
nself tenant member add <tenant-id> <email> <role>
nself tenant member list <tenant-id>
nself tenant member role <tenant-id> <user-id> <role>
# Billing (consolidated from 'billing' command)
nself tenant billing plans
nself tenant billing subscribe <tenant-id> <plan>
nself tenant billing usage <tenant-id>
nself tenant billing invoice <tenant-id>
# Organizations (consolidated from 'org' command)
nself tenant org create <name>
nself tenant org list
nself tenant org members <org-id>
# Branding & domains
nself tenant branding logo <tenant-id> <file>
nself tenant domains add <tenant-id> <domain>
nself tenant themes apply <tenant-id> <theme># Deployment strategies
nself deploy staging [--auto-migrate]
nself deploy production [--auto-migrate]
nself deploy preview <branch>
nself deploy canary <percentage>
nself deploy blue-green
nself deploy rollback [--version N]
# Server management (consolidated from 'server', 'provision')
nself deploy provision <provider> [options]
nself deploy server create <name> [options]
nself deploy server list
nself deploy server ssh <server-id>
# Synchronization (consolidated from 'sync')
nself deploy sync push <env> [--force]
nself deploy sync pull <env>
nself deploy sync status# Cloud providers (consolidated from 'provider', 'cloud')
nself infra provider list [--filter TYPE]
nself infra provider init <provider>
nself infra provider server create <provider>
nself infra provider cost estimate <provider>
nself infra provider deploy quick <provider>
# Kubernetes (consolidated from 'k8s')
nself infra k8s init [--provider PROVIDER]
nself infra k8s convert
nself infra k8s deploy
nself infra k8s scale <deployment> <replicas>
# Helm (consolidated from 'helm')
nself infra helm init
nself infra helm install <release>
nself infra helm upgrade <release>
nself infra helm rollback <release># Core operations
nself service list [--status STATUS]
nself service enable <service>
nself service disable <service>
nself service wizard
# Storage (consolidated from 'storage')
nself service storage init
nself service storage upload <file>
nself service storage list [path]
# Email (consolidated from 'email')
nself service email send <to> <subject>
nself service email config <provider>
# Search (consolidated from 'search')
nself service search init <provider>
nself service search index <action>
# Redis (consolidated from 'redis')
nself service redis flush [pattern]
nself service redis cli
# Functions (consolidated from 'functions')
nself service functions deploy <function>
nself service functions invoke <function>
# MLflow (consolidated from 'mlflow')
nself service mlflow ui
nself service mlflow experiments# General config
nself config show [key]
nself config edit [key]
nself config validate
nself config sync <action>
# Environments (consolidated from 'env')
nself config env list
nself config env switch <env>
nself config env create <name>
# Secrets (consolidated from 'secrets')
nself config secrets list
nself config secrets get <key>
nself config secrets set <key> <value>
nself config secrets rotate [key]
# Vault (consolidated from 'vault')
nself config vault init
nself config vault status# Authentication
nself auth login [--provider PROVIDER]
nself auth logout
nself auth status
# MFA (consolidated from 'mfa')
nself auth mfa enable
nself auth mfa verify <code>
# Roles (consolidated from 'roles')
nself auth roles list
nself auth roles assign <user> <role>
# Devices (consolidated from 'devices')
nself auth devices list
nself auth devices revoke <device>
# OAuth (consolidated from 'oauth')
nself auth oauth enable <provider>
nself auth oauth config <provider>
# SSL (consolidated from 'ssl', 'trust')
nself auth ssl generate [domain]
nself auth ssl renew [domain]
nself auth ssl trust
# Security (consolidated from 'security')
nself auth security scan [--deep]
nself auth security audit
# Rate limiting (consolidated from 'rate-limit')
nself auth rate-limit config [options]
nself auth rate-limit status
# Webhooks (consolidated from 'webhooks')
nself auth webhooks create <url> [events]
nself auth webhooks test <id>nself perf profile [service] [--duration N]
nself perf bench [service] [--duration N]
nself perf scale <service> <replicas>
nself perf migrate [options]
nself perf optimize [--auto-fix]nself backup create [--full|--incremental]
nself backup restore <backup-id> [--target ENV]
nself backup list [--filter DATE]
nself backup rollback [--version N]
nself backup reset [--confirm]
nself backup clean [--age DAYS]# Frontend (consolidated from 'frontend')
nself dev frontend add <name> <port>
nself dev frontend list
# CI/CD (consolidated from 'ci')
nself dev ci generate [--provider PROVIDER]
nself dev ci templates
# Documentation (consolidated from 'docs')
nself dev docs generate
nself dev docs serve
# White-label (consolidated from 'whitelabel')
nself dev whitelabel config [options]
nself dev whitelabel previewnself plugin list [--filter TYPE]
nself plugin install <plugin>
nself plugin remove <plugin>
nself plugin update [plugin]
nself plugin create <name>
nself plugin status [plugin]| Old Command | New Command | Notes |
|---|---|---|
nself billing plans |
nself tenant billing plans |
Billing is tenant-specific |
nself org create |
nself tenant org create |
Orgs are tenant containers |
nself upgrade |
nself deploy upgrade |
Upgrade is a deployment operation |
nself staging |
nself deploy staging |
Quick staging deployment |
nself prod |
nself deploy production |
Quick prod deployment |
nself provision aws |
nself deploy provision aws |
Server provisioning |
nself server list |
nself deploy server list |
Server management |
nself sync push prod |
nself deploy sync push prod |
Deployment sync |
nself provider list |
nself infra provider list |
Cloud infrastructure |
nself cloud init |
nself infra provider init |
Deprecated 'cloud' β 'provider' |
nself k8s deploy |
nself infra k8s deploy |
Kubernetes infrastructure |
nself helm install |
nself infra helm install |
Helm infrastructure |
nself storage upload |
nself service storage upload |
Storage is a service |
nself email send |
nself service email send |
Email is a service |
nself search index |
nself service search index |
Search is a service |
nself redis flush |
nself service redis flush |
Redis is a service |
nself functions deploy |
nself service functions deploy |
Functions are a service |
nself mlflow ui |
nself service mlflow ui |
MLflow is a service |
nself realtime init |
nself service realtime init |
Realtime is a service |
nself admin-dev |
nself service admin --dev |
Dev mode flag |
nself env switch |
nself config env switch |
Environment configuration |
nself secrets list |
nself config secrets list |
Secrets are configuration |
nself vault status |
nself config vault status |
Vault is for secrets/config |
nself validate |
nself config validate |
Configuration validation |
nself mfa enable |
nself auth mfa enable |
MFA is authentication |
nself roles list |
nself auth roles list |
Roles are auth/security |
nself devices list |
nself auth devices list |
Device management is auth |
nself oauth enable |
nself auth oauth enable |
OAuth is authentication |
nself security scan |
nself auth security scan |
Security operations |
nself ssl generate |
nself auth ssl generate |
SSL is security |
nself trust |
nself auth ssl trust |
Trust local certificates |
nself rate-limit config |
nself auth rate-limit config |
Rate limiting is security |
nself webhooks create |
nself auth webhooks create |
Webhook security |
nself bench |
nself perf bench |
Benchmarking is performance |
nself scale api 5 |
nself perf scale api 5 |
Scaling is performance |
nself migrate |
nself perf migrate |
Migration is performance-related |
nself rollback |
nself backup rollback |
Rollback is backup/recovery |
nself reset |
nself backup reset |
Reset is recovery |
nself clean |
nself backup clean |
Cleanup is maintenance |
nself frontend add |
nself dev frontend add |
Frontend is dev tooling |
nself ci generate |
nself dev ci generate |
CI/CD is dev tooling |
nself docs generate |
nself dev docs generate |
Documentation is dev tooling |
nself whitelabel config |
nself dev whitelabel config |
White-label is dev tooling |
Use the built-in migration helper to update your scripts:
# Scan scripts for deprecated commands
nself dev migrate scan ./scripts
# Preview changes
nself dev migrate preview ./scripts
# Apply changes
nself dev migrate apply ./scripts# Before v0.9.6
nself billing usage tenant-123
nself provider init aws
nself staging
nself server list
# After v0.9.6
nself tenant billing usage tenant-123
nself infra provider init aws
nself deploy staging
nself deploy server list# Before v0.9.6
nself env switch production
nself secrets rotate
nself upgrade --zero-downtime
nself sync push prod
# After v0.9.6
nself config env switch production
nself config secrets rotate
nself deploy upgrade --zero-downtime
nself deploy sync push prod# Before v0.9.6
nself storage upload file.jpg
nself email send [email protected] "Subject"
nself redis flush cache:*
nself functions deploy api-handler
# After v0.9.6
nself service storage upload file.jpg
nself service email send [email protected] "Subject"
nself service redis flush cache:*
nself service functions deploy api-handlerStatus: Active Duration: Current through v0.9.x releases
- β All old commands work normally
β οΈ Deprecation warnings displayed- π Migration guide available
- π§ Automated migration tools provided
Status: Planned for Q1 2026 Duration: 2-4 weeks
β οΈ More prominent warnings- π’ Email notifications to users
- π In-app migration reminders
- π Usage analytics to identify affected users
Status: Planned for Q2 2026 Duration: Permanent
- β Old commands removed
- β Clean command structure
- π Updated documentation only shows new commands
- π― Final migration script available
Estimated Timeline:
- v0.9.6 (Now): Deprecation warnings begin
- v0.10.0 (Feb 2026): Enhanced migration tools
- v1.0-beta (Mar 2026): Final warnings
- v1.0 (Apr/May 2026): Old commands removed
Before:
$ nself help
[79 commands listed alphabetically]
# Which command do I need? π€·After:
$ nself help
Core (5): init, build, start, stop, restart
Utilities (15): status, logs, help, admin, urls...
Other (11): db, tenant, deploy, infra, service...
$ nself tenant help
Tenant management: create, list, suspend...
Billing: billing plans, billing subscribe...
Organizations: org create, org list...Related functionality now lives together:
-
All deployment operations β
nself deploy -
All infrastructure commands β
nself infra -
All service management β
nself service -
All security features β
nself auth -
All configuration β
nself config
Every domain follows the same pattern:
nself <domain> <action> [resource] [options]
# Examples:
nself tenant create myapp
nself service enable redis
nself infra provider init aws
nself auth roles assign john adminNew users can explore systematically:
# Step 1: See main categories
nself help
# Step 2: Explore a category
nself tenant help
# Step 3: Learn specific command
nself tenant billing help
# Step 4: Execute with confidence
nself tenant billing subscribe tenant-123 proHierarchical structure enables better completions:
$ nself te[TAB]
tenant
$ nself tenant [TAB]
create list show suspend billing org member...
$ nself tenant billing [TAB]
plans subscribe cancel usage invoice payment...Before: "Do I use billing, org, or tenant?"
After: "Everything tenant-related is under tenant"
Documentation mirrors command structure:
-
/docs/commands/tenant/- All tenant documentation -
/docs/commands/deploy/- All deployment documentation -
/docs/commands/service/- All service documentation
Comprehensive QA Suite:
- β File Structure: 5/5 tests passed
- β Command Files: 79/79 commands verified
- β Command Routing: 20/20 routing tests passed
- β Help System: 6/6 help tests passed
- β Error Handling: 1/1 error tests passed
- β Critical Commands: 14/14 production commands verified
β οΈ Subcommands: 6/8 (2 warnings by design)β οΈ Output Formatting: 5/8 (3 warnings by design)- β Protection: 1/1 source protection active
Total: 137/142 tests passed (96%)
# Old commands still work
nself billing plans # Works, shows deprecation warning
nself provider list # Works, shows deprecation warning
nself storage upload file # Works, shows deprecation warning# New commands work correctly
nself tenant billing plans
nself infra provider list
nself service storage upload filenself help # Shows organized command list
nself tenant help # Shows tenant subcommands
nself tenant billing help # Shows billing subcommandsnself invalid # Clear error, suggests help
nself tenant invalid # Clear error, lists valid subcommands# Complete workflow tested
mkdir test-project && cd test-project
nself init --demo
nself build
nself start
nself status
nself tenant billing plans
nself service storage init
# All commands executed successfully| Operation | Time | Status |
|---|---|---|
| Command routing | <10ms | β Fast |
| Help display | <50ms | β Fast |
| Deprecation check | <5ms | β Fast |
| Subcommand dispatch | <10ms | β Fast |
| Average command execution | <500ms | β Fast |
Tested and verified on:
- β macOS (Bash 3.2) - Default macOS shell
- β Ubuntu 22.04 (Bash 5.1) - Latest LTS
- β Ubuntu with Bash 3.2 - Minimum version support
- β WSL (Windows Subsystem for Linux)
- β Alpine Linux - Minimal environment
- All old commands work through v0.9.x releases
- Deprecation warnings are non-breaking (exit code 0)
- Scripts won't break until v1.0
- Migration path is clear with automated tools
- 6-month notice before removal (v1.0 estimated Q2 2026)
- β Read this migration guide
- β Understand new command structure
- β Plan migration strategy
- β Update documentation to use new commands
- β
Migrate CI/CD scripts using
nself dev migrate - β Update team playbooks and runbooks
- β Train team on new structure
- β Eliminate all deprecation warnings
- β Update all automation scripts
- β Verify no old commands in use
- β Enable strict mode if available
# Check for deprecated command usage
nself dev migrate scan .
# Output example:
# Found 12 deprecated commands in 4 files:
# - scripts/deploy.sh: 5 instances
# - scripts/backup.sh: 3 instances
# - .github/workflows/ci.yml: 4 instancesAll documentation has been updated to reflect the new structure:
-
/docs/commands/COMMAND-TREE-V1.md- Complete command hierarchy -
/docs/commands/REFACTORING-SUMMARY.md- Technical details -
/docs/releases/v0.9.6.md- This release guide -
/docs/migrations/v0.9-to-v1.0.md- Detailed migration guide
-
/docs/Home.md- Main documentation entry -
/docs/_Sidebar.md- Navigation structure -
/docs/README.MD- Overview and quick start - All command-specific documentation
# General help shows new structure
nself help
# Command-specific help
nself tenant help
nself deploy help
nself infra help
# Subcommand-specific help
nself tenant billing help
nself deploy staging --help
nself infra provider help# 1. See all available commands
nself help
# 2. Explore a domain
nself tenant help
# 3. Get command-specific help
nself tenant billing help
# 4. Try with --help flag
nself tenant billing subscribe --help
# 5. Execute the command
nself tenant billing subscribe tenant-123 proPattern 1: Domain-first
"I need to work with tenants"
β nself tenant help
β Shows all tenant operationsPattern 2: Action-first
"I need to deploy something"
β nself deploy help
β Shows deployment optionsPattern 3: Service-first
"I need to configure storage"
β nself service help
β Find storage subcommands
β nself service storage help- "Understanding nself v0.9.6 Command Structure" (15 min)
- "Migrating from v0.9.5 to v0.9.6" (10 min)
- "Command Consolidation Deep Dive" (30 min)
- Date: February 5, 2026
- Duration: 60 minutes
- Topics: Live migration demo, Q&A, best practices
- Registration: [Link to be added]
All deprecated commands use a consistent wrapper:
#!/usr/bin/env bash
# src/cli/billing.sh (deprecated)
NSELF_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
source "${NSELF_ROOT}/src/lib/cli-output.sh"
# Show deprecation warning
warning "DEPRECATION: 'billing' command is deprecated"
info "Use: nself tenant billing $*"
info "Old syntax will be removed in v1.0 (estimated Q2 2026)"
echo
# Execute new command
exec "${NSELF_ROOT}/src/cli/tenant.sh" billing "$@"New commands use case statements for subcommand routing:
#!/usr/bin/env bash
# src/cli/tenant.sh
case "$subcommand" in
billing)
source "${NSELF_ROOT}/src/lib/tenant/billing.sh"
handle_billing "${@:2}"
;;
org)
source "${NSELF_ROOT}/src/lib/tenant/org.sh"
handle_org "${@:2}"
;;
# ... more subcommands
esacThe help system uses metadata files:
# .nself/metadata/commands.json
{
"tenant": {
"category": "other",
"description": "Multi-tenancy management",
"subcommands": ["billing", "org", "member", ...]
}
}- Single Source of Truth: Each capability implemented once
- Consistent Error Handling: Shared error handling library
- Unified Output Formatting: Shared CLI output library
- Easy to Test: Clear command boundaries
- Maintainable: Logical file organization
- Extensible: Easy to add new subcommands
| Category | Before | After | Reduction |
|---|---|---|---|
| Core | 5 | 5 | 0% (unchanged) |
| Utilities | 15 | 15 | 0% (unchanged) |
| Other | 59 | 11 | 81.4% |
| Total | 79 | 31 | 60.8% |
| Command | Subcommands | Complexity |
|---|---|---|
tenant |
50+ | Very High |
service |
43 | High |
infra |
38 | High |
auth |
38 | High |
deploy |
23 | Medium |
config |
20 | Medium |
dev |
16 | Medium |
db |
11 | Low |
plugin |
8+ | Low |
backup |
6 | Low |
perf |
5 | Low |
- Average subcommands per TLC: 9.2
-
Deepest command nesting: 3 levels (e.g.,
nself tenant billing subscribe) - Most consolidated category: Infrastructure (7 commands β 1)
- Most active category: Multi-tenancy (50+ subcommands)
- Enhanced migration tools
- Shell completion improvements
- Command aliases system
- Interactive command builder
- Final deprecation warnings
- Documentation freeze
- Beta testing period
- Migration assistance program
- Old commands removed
- Stable command structure
- LTS (Long-Term Support) begins
- 1.x compatibility guarantees
- GitHub Issues: https://github.com/nself-org/cli/issues
-
Tag:
command-consolidation - Priority: High
- Discord: #command-consolidation channel
- Email: [email protected]
- Documentation: https://docs.nself.org/v0.9.6
- Migration scripts: Share your migration scripts
- Documentation: Help improve migration docs
- Use cases: Share your migration experience
See the complete mapping in /docs/commands/COMMAND-TREE-V1.md or run:
nself help --migration-map# 1. Update nself
nself update
# 2. Verify version
nself version
# Should show: v0.9.6
# 3. Read migration guide
nself help --migration-guide
# 4. Scan your scripts for deprecated commands
nself dev migrate scan .
# 5. Preview automated migration
nself dev migrate preview ./scripts
# 6. Apply migration (creates backups)
nself dev migrate apply ./scripts
# 7. Test your workflows
nself tenant billing plans
nself service storage list
nself deploy server list
# 8. Verify no deprecation warnings
nself tenant billing plans 2>&1 | grep -i deprecation
# Should return nothingNo action needed! Just use the new command structure documented in:
nself helpnself v0.9.6 represents a major milestone in the project's evolution, transforming the CLI from a flat list of 79 commands into a well-organized, hierarchical structure with 31 top-level commands and 285+ subcommands.
This consolidation:
- β Makes nself easier to learn and use
- β Provides logical grouping by domain
- β Enables better discoverability
- β Maintains 100% backward compatibility
- β Provides clear migration path to v1.0
The command structure is now production-ready and approved for v1.0.
Thank you for using nself!
For questions, issues, or feedback about this release, please visit:
- GitHub: https://github.com/nself-org/cli
- Discord: https://discord.gg/nself
- Documentation: https://docs.nself.org
Previous Release: v0.9.5 - Enhanced Monitoring Next Release: v0.10.0 - Enhanced Tooling (Planned)
Released with β€οΈ by the nself team