CLI Reference¶
Complete command reference for all dango commands.
Command Tree¶
dango
├── init [PROJECT_NAME] Create a new project
├── start Start platform services
├── stop Stop platform services
├── status Show platform status
├── info Show project information
├── rename NEW_NAME Rename project
├── serve Production server mode
├── upgrade Upgrade Dango version
├── cleanup Remove old artifacts
├── validate Validate project config
│
├── sync [SOURCE_NAME] Sync data from sources
├── generate Generate dbt staging models
├── run [DBT_ARGS]... Run dbt models
├── docs Generate dbt documentation
│
├── source
│ ├── add Add a data source (wizard)
│ ├── list List configured sources
│ ├── remove SOURCE_NAME Remove a source
│ └── edit [NAME] Open sources.yml in editor
│
├── model
│ ├── add Create a dbt model (wizard)
│ └── remove MODEL_NAME Remove a dbt model
│
├── config
│ ├── validate Validate config files
│ ├── show Show current config
│ └── do-token
│ └── clear Remove stored DO token
│
├── db
│ ├── status Show database status
│ └── clean Remove orphaned tables
│
├── auth
│ ├── enable Enable authentication
│ ├── disable Disable authentication
│ ├── status Show auth status
│ ├── add-user EMAIL Create a new user
│ ├── list-users List all users
│ ├── reset-password EMAIL Reset user password
│ ├── change-role EMAIL ROLE Change user role
│ ├── deactivate-user EMAIL Soft-disable a user
│ ├── reactivate-user EMAIL Re-enable a user
│ ├── delete-user EMAIL Permanently delete user
│ ├── unlock EMAIL Unlock locked account
│ ├── audit Query audit log
│ └── recover Emergency admin recovery
│
├── oauth
│ ├── setup {google|facebook} OAuth setup wizard
│ ├── status Show token expiry
│ ├── check Validate OAuth config
│ ├── list List all credentials
│ ├── remove SOURCE_TYPE Remove a credential
│ ├── refresh OAUTH_NAME Re-authenticate
│ ├── google_sheets Authenticate Google Sheets
│ ├── google_analytics Authenticate Google Analytics
│ ├── google_ads Authenticate Google Ads
│ └── facebook_ads Authenticate Facebook Ads
│
├── deploy Deploy wizard (interactive)
│ └── destroy Tear down cloud infra
│
├── remote
│ ├── push Push files and rebuild
│ ├── rollback Restore from backup
│ ├── status Show server status
│ ├── logs View service logs
│ ├── ssh Open SSH session
│ ├── query SQL Run read-only SQL
│ ├── upgrade Upgrade remote Dango
│ ├── resize [SIZE] Resize server
│ ├── migrate Migrate to new server
│ ├── history Show deploy history
│ ├── sync SOURCE Trigger remote sync
│ ├── env
│ │ ├── set KEY=VALUE Set env var
│ │ ├── get KEY Get env var (masked)
│ │ ├── list List env vars (masked)
│ │ └── delete KEY Remove env var
│ ├── firewall
│ │ ├── list Show firewall rules
│ │ ├── allow-ip IP_ADDRESS Restrict to IP
│ │ └── allow-all Open to public
│ ├── domain
│ │ ├── set DOMAIN_NAME Configure HTTPS
│ │ └── remove Revert to IP-only
│ ├── backup
│ │ ├── list List backups
│ │ ├── enable Enable daily backups
│ │ ├── disable Disable daily backups
│ │ ├── download NAME Download from Spaces
│ │ └── restore SOURCE Restore from backup
│ └── auth
│ ├── add-user EMAIL Create remote user
│ ├── list-users List remote users
│ ├── remove-user EMAIL Remove remote user
│ └── reset-password EMAIL Reset remote password
│
├── schedule
│ ├── add Add schedule (wizard)
│ ├── list List schedules
│ ├── remove NAME Remove a schedule
│ ├── status [NAME] Show scheduler status
│ ├── enable NAME Enable a schedule
│ ├── disable NAME Disable a schedule
│ └── webhook
│ ├── add Add webhook (wizard)
│ ├── list List webhooks
│ ├── remove NAME Remove a webhook
│ └── test NAME Test a webhook
│
├── dev Run dbt on dev copy
│ └── clean Remove dev artifacts
│
├── snapshot
│ ├── add Create dbt snapshot (wizard)
│ ├── list List dbt snapshots
│ ├── run Execute dbt snapshot
│ └── db Create DuckDB snapshot
│
├── monitor
│ └── run Run monitor analysis
├── analyze Alias for monitor run
│
├── governance
│ ├── drift-report Show schema drift
│ ├── pii-report Show PII findings
│ ├── pii-set SOURCE TABLE COLUMN Set PII override
│ ├── pii-list List PII overrides
│ └── accept SOURCE Accept schema drift
│
├── notebook
│ ├── new Create notebook
│ └── open NAME Open in Marimo
│
├── metabase
│ ├── save Export dashboards to files
│ ├── load Import dashboards from files
│ └── refresh Refresh Metabase schema
│
├── dashboard
│ └── provision Create health dashboard
│
├── migrate
│ ├── status Show migration status
│ └── run Apply pending migrations
│
└── web Start Web UI server
Global Options¶
| Option | Description |
|---|---|
--version | Show the version and exit |
--help | Show help message and exit |
Get help for any command:
Project Lifecycle¶
dango init¶
Create a new Dango data project.
| Option | Description |
|---|---|
PROJECT_NAME | Project directory name (default: current directory .) |
--skip-wizard | Skip interactive wizard, create blank project |
--force | Force initialization even if project exists |
dango start¶
Start all platform services (Web UI, Metabase, dbt-docs, file watcher).
| Option | Description |
|---|---|
-y, --yes | Skip confirmation prompts |
Access the platform at http://localhost:<port> (default: 8800). Change port in .dango/project.yml under platform.port.
dango stop¶
Stop all platform services.
| Option | Description |
|---|---|
--all | Stop ALL Dango containers from any project |
dango status¶
Show platform status including service health and access URLs.
No additional options.
dango info¶
Show project information: name, purpose, stakeholders, data refresh schedule, last sync time.
No additional options.
dango rename¶
Rename the project and update its local domain routing.
| Argument | Description |
|---|---|
NEW_NAME | New project name (becomes <new_name>.dango) |
Updates config, routing table, nginx config, and /etc/hosts.
dango serve¶
Run Dango in production server mode (foreground). Intended for systemd on cloud servers.
| Option | Type | Default | Description |
|---|---|---|---|
--host | TEXT | 0.0.0.0 | Bind address |
--port | INTEGER | config or 8800 | Port |
--workers | INTEGER | 1 | Number of uvicorn workers |
Unlike dango start, this binds to all interfaces, runs in the foreground, and skips browser/file-watcher.
dango upgrade¶
Upgrade Dango to the latest version (or a specific version), then run pending migrations.
| Option | Description |
|---|---|
--version TEXT | Specific version to install (e.g. 1.2.3) |
-y, --yes | Skip confirmation prompts |
Restart services with dango start after upgrading.
dango cleanup¶
Remove old log archives, dbt artifacts, and Python cache.
| Option | Description |
|---|---|
--dry-run | Show what would be deleted without deleting |
-y, --yes | Skip confirmation prompt |
--logs-only | Only clean log archives, skip dbt/cache |
--docker | Also prune dangling Docker volumes |
Data Operations¶
dango sync¶
Load data from all sources (or a specific source).
| Option | Type | Description |
|---|---|---|
SOURCE_NAME | positional | Sync only this source |
--source TEXT | option | Sync specific source (deprecated, use positional arg) |
--since TEXT | date | Start date for incremental loading (YYYY-MM-DD) |
--until TEXT | date | End date for incremental loading (YYYY-MM-DD) |
--backfill TEXT | duration | Backfill duration (e.g. 7d, 2w, 1m) |
--limit INTEGER | number | Limit rows per source (dev testing) |
--full-refresh | flag | Drop existing data and reload from scratch |
--dry-run | flag | Show what would be synced without executing |
--allow-schema-changes | flag | Allow CSV schema changes (add columns, NULL for missing) |
-y, --yes | flag | Skip confirmation prompts |
dango sync # Sync all enabled sources
dango sync chess # Sync only 'chess'
dango sync --since 2024-01-01 # Override start date
dango sync --backfill 30d # Backfill last 30 days
dango sync --limit 1000 # Dev mode: limit rows
dango sync --full-refresh # Reset and reload all
dango sync --dry-run # Preview only
dango generate¶
Generate dbt staging models and schema artifacts from data sources.
| Option | Description |
|---|---|
--models | Generate staging models only |
--all | Generate all artifacts (models + schema) |
Tip
Run dango sync first to load data into DuckDB before generating models.
dango run¶
Run dbt models. All dbt run arguments are passed through.
Any dbt run argument works — --select, --full-refresh, --exclude, etc.
dango run # Run all models
dango run --select my_model # Run specific model
dango run --select my_model+ # Model and downstream
dango run --select tag:marts # By tag
dango run --full-refresh # Full refresh incremental models
dango docs¶
Generate dbt documentation.
No additional options. After generation, view docs at http://localhost:<port>/catalog if the platform is running.
dango validate¶
Validate project configuration and setup.
No additional options. Checks project structure, config files, source configs, dbt setup, database connectivity, dependencies, and file permissions.
Source Management¶
dango source add¶
Add a new data source via interactive wizard. Supports 27+ sources across 9 categories.
No additional options — the wizard handles all configuration interactively.
dango source list¶
List all configured data sources.
| Option | Description |
|---|---|
--enabled-only | Show only enabled sources |
dango source remove¶
Remove a data source.
| Option | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
dango source edit¶
Open sources.yml in your default editor ($EDITOR).
| Argument | Description |
|---|---|
NAME | Optional — hints at the section to focus on |
Model Management¶
dango model add¶
Create a new dbt model (intermediate or marts layer) via interactive wizard.
Staging models are auto-generated by dango generate — this wizard handles intermediate and marts layers only.
dango model remove¶
Remove a custom dbt model and cascade cleanup (SQL file, schema entry, monitors, optionally DuckDB table).
| Option | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
--dry-run | Show what would be removed without executing |
dango model remove fct_daily_sales
dango model remove int_orders --yes
dango model remove fct_daily_sales --dry-run
Config¶
dango config validate¶
Validate all configuration files: sources.yml, project.yml, and dbt source documentation.
No additional options.
dango config show¶
Show current configuration.
No additional options.
dango config do-token clear¶
Remove the stored DigitalOcean API token.
Database¶
dango db status¶
Show database status including orphaned tables (tables in DuckDB with no matching source config).
No additional options.
dango db clean¶
Remove orphaned tables from DuckDB.
| Option | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
Warning
This permanently removes tables from DuckDB. Run dango db status first to review what will be deleted.
Auth¶
User authentication and access management. See the Auth Commands page for detailed usage.
dango auth enable / disable¶
dango auth status¶
dango auth add-user¶
| Option | Description |
|---|---|
--role [admin\|editor\|viewer] | User role |
--password | Generate temp password instead of invite link |
--base-url TEXT | Base URL for invite links |
dango auth list-users¶
dango auth reset-password¶
dango auth deactivate-user / reactivate-user¶
dango auth delete-user¶
Danger
Permanently deletes the user. This cannot be undone.
dango auth unlock¶
dango auth change-role¶
dango auth audit¶
| Option | Description |
|---|---|
--since TEXT | Filter events after date (YYYY-MM-DD) |
--type TEXT | Filter by event type |
--limit INTEGER | Max events to show |
dango auth recover¶
Creates a recovery admin account for emergency access.
OAuth¶
OAuth provider authentication. See the OAuth Commands page for detailed usage.
dango oauth setup¶
dango oauth status / check / list¶
dango oauth status # Show credential expiry
dango oauth check # Validate OAuth config
dango oauth list # List all credentials
dango oauth remove¶
dango oauth refresh¶
Provider-specific commands¶
dango oauth google_sheets
dango oauth google_analytics
dango oauth google_ads
dango oauth facebook_ads
Each walks through the browser-based OAuth flow and saves credentials to .dlt/secrets.toml.
Deploy¶
dango deploy¶
Interactive deployment wizard. Supports DigitalOcean, BYOS (bring your own server), and reconnection.
| Option | Description |
|---|---|
--non-interactive | All params via flags/env (DigitalOcean) |
--reconnect | Reconnect to an existing server |
--ip TEXT | Server IP for --reconnect |
--region TEXT | DO region slug |
--size TEXT | Droplet size slug |
--domain TEXT | Custom domain for HTTPS |
--admin-email TEXT | Admin user email |
--admin-password TEXT | Admin password (or DANGO_ADMIN_PASSWORD env) |
--skip-backups | Skip automated backup setup |
--byos | Deploy to an existing server (any provider) |
--server-ip TEXT | Server IP/hostname for --byos |
--ssh-user TEXT | SSH user for --byos |
--ssh-key TEXT | SSH key path for --byos |
dango deploy # Interactive wizard
dango deploy --non-interactive --region nyc3 # Scripted DO deploy
dango deploy --reconnect --ip 1.2.3.4 # Reconnect
dango deploy --byos --server-ip 1.2.3.4 # Your own server
dango deploy destroy¶
Tear down all cloud infrastructure for this project.
| Option | Description |
|---|---|
--force | Skip confirmation and backup prompts |
--keep-spaces | Keep the Spaces bucket |
--keep-ssh-key | Keep the SSH key on DigitalOcean |
Danger
This deletes the Droplet, firewall, SSH key (from DO), and Spaces bucket. Local files and SSH keys are never deleted.
Remote¶
Manage the remote cloud server. See the Deploy & Remote page for detailed usage.
Core commands¶
dango remote push [OPTIONS] # Push files and rebuild
dango remote rollback [OPTIONS] # Restore from backup
dango remote status # Show server status
dango remote logs [OPTIONS] # View service logs
dango remote ssh # Interactive SSH session
dango remote query SQL [OPTIONS] # Read-only SQL query
dango remote upgrade [OPTIONS] # Upgrade remote Dango
dango remote resize [SIZE] # Resize server
dango remote migrate [OPTIONS] # Migrate to new server
dango remote history [OPTIONS] # Show deploy history
dango remote sync SOURCE [OPTIONS] # Trigger remote sync
dango remote repair # Diagnose and fix issues
dango remote reset-metabase # Reset Metabase to fresh state
Environment variables¶
dango remote env set KEY=VALUE
dango remote env get KEY
dango remote env list
dango remote env delete KEY
Firewall¶
dango remote firewall list
dango remote firewall allow-ip IP_ADDRESS
dango remote firewall allow-all
Domain & HTTPS¶
Backups¶
dango remote backup list
dango remote backup enable
dango remote backup disable
dango remote backup download NAME [-o PATH]
dango remote backup restore SOURCE [-y]
Remote user management¶
dango remote auth add-user EMAIL [--role ROLE]
dango remote auth list-users
dango remote auth remove-user EMAIL
dango remote auth reset-password EMAIL
Schedule¶
Manage data sync schedules and webhook notifications. See the Schedule Commands page for detailed usage.
Schedules¶
dango schedule add # Interactive wizard
dango schedule list # List all schedules
dango schedule remove NAME [-y] # Remove by name
dango schedule status [NAME] # Overview or single schedule detail
dango schedule enable NAME # Enable a schedule
dango schedule disable NAME # Disable a schedule
Webhooks¶
dango schedule webhook add # Interactive wizard
dango schedule webhook list # List webhooks
dango schedule webhook remove NAME # Remove webhook
dango schedule webhook test NAME # Send test payload
Dev¶
dango dev¶
Run dbt against a copy of the production database. The production database is never modified.
| Option | Description |
|---|---|
-s, --select TEXT | dbt model selection (e.g. stg_*, my_model+) |
--diff | Show row-count comparison after run |
dango dev # Run all models on dev copy
dango dev -s stg_orders # Run specific model
dango dev --diff # Show diff after run
The dev database persists at .dango/dev/warehouse_dev.duckdb for inspection.
dango dev clean¶
Remove the dev database and related artifacts.
Snapshot¶
dango snapshot add¶
Interactive wizard to create a dbt snapshot (SCD Type 2).
dango snapshot list¶
List configured dbt snapshots.
dango snapshot run¶
Execute dbt snapshot to capture SCD Type 2 change history.
| Option | Description |
|---|---|
-s, --select TEXT | Run specific snapshot(s) by name |
dango snapshot db¶
Create a DuckDB read-only snapshot for notebook use.
| Option | Description |
|---|---|
-u, --user TEXT | Username for the snapshot |
Monitor¶
dango monitor run¶
Run monitor analysis and display data quality results.
| Option | Description |
|---|---|
--source TEXT | Filter by source name |
dango analyze¶
Alias for dango monitor run.
| Option | Description |
|---|---|
--source TEXT | Filter by source name |
Governance¶
dango governance drift-report¶
Show schema drift events.
| Option | Description |
|---|---|
--source TEXT | Filter by source name |
--table TEXT | Filter by table name |
--limit INTEGER | Max events to show |
dango governance pii-report¶
Show PII findings.
| Option | Description |
|---|---|
--source TEXT | Filter by source name |
--table TEXT | Filter by table name |
--limit INTEGER | Max findings to show |
dango governance pii-set¶
Set a PII override for a column.
| Option | Required | Description |
|---|---|---|
--status [pii\|not_pii] | Yes | PII status to set |
--reason TEXT | No | Reason for the override |
dango governance pii-set my_source users email --status pii --reason "Contains user emails"
dango governance pii-set my_source orders order_id --status not_pii
dango governance pii-list¶
List PII overrides.
| Option | Description |
|---|---|
--source TEXT | Filter by source name |
dango governance accept¶
Accept schema drift for a source and resume dbt.
Notebook¶
dango notebook new¶
Create a new Marimo notebook from a starter template.
| Option | Required | Description |
|---|---|---|
-t, --template [explore\|quality\|blank] | No | Starter template |
-n, --name TEXT | Yes | Notebook name (no extension) |
dango notebook open¶
Open a notebook in Marimo. Acquires a lock, creates a DuckDB snapshot, and starts Marimo. Press Ctrl+C to exit.
Metabase¶
dango metabase save¶
Export Metabase dashboards and questions to files (YAML format in metabase/ directory).
| Option | Description |
|---|---|
--all | Include personal collections (currently exports "Shared" only) |
--collections TEXT | Specific collections to export (comma-separated) |
dango metabase load¶
Import Metabase dashboards and questions from files.
| Option | Description |
|---|---|
--overwrite | Replace existing dashboards/questions |
--dry-run | Preview what would be imported |
Warning
--overwrite replaces existing items in Metabase. Uncommitted changes will be lost.
dango metabase refresh¶
Refresh Metabase schema to discover new tables and schemas.
Dashboard¶
dango dashboard provision¶
Provision the Data Pipeline Health dashboard in Metabase.
| Option | Description |
|---|---|
--url TEXT | Metabase URL |
--username TEXT | Metabase admin username (auto-detected from auth DB) |
--password TEXT | Metabase admin password |
Creates a pre-built dashboard with pipeline health score, source sync status, data freshness indicators, row count trends, and dbt test results.
Migrate¶
dango migrate status¶
Show migration status for all databases.
dango migrate run¶
Apply pending migrations.
| Option | Description |
|---|---|
--db TEXT | Apply to a specific database only |
Web¶
dango web¶
Start the Web UI backend server only (without Metabase, file watcher, or dbt-docs).
| Option | Description |
|---|---|
--host TEXT | Host to bind to |
--port INTEGER | Port to bind to |
--reload | Enable auto-reload (development) |
Exit Codes¶
| Code | Meaning |
|---|---|
0 | Success |
1 | Error (check output for details) |
Related Pages¶
- Init & Start Guide — Project setup and service management
- Source & Sync — Data source and sync operations
- Transform & Model — dbt transformations and model management
- Auth Commands — User authentication details
- OAuth Commands — OAuth provider setup
- Deploy & Remote — Cloud deployment and server management
- Schedule Commands — Scheduled syncs and webhooks
- Other Commands — Config, database, governance, and more