CLI Reference
Run dinobase --help for a summary, or dinobase <command> --help for any command.
dinobase init
Section titled “dinobase init”Create the config directory and database.
dinobase init [OPTIONS]| Option | Description |
|---|---|
--storage | Cloud storage URL (e.g., s3://bucket/dinobase/, gs://bucket/dinobase/, az://container/dinobase/) |
Creates ~/.dinobase/ with config.yaml and dinobase.duckdb. Safe to run multiple times.
With --storage, data is stored in cloud storage instead of locally. See the Cloud Storage Backend guide.
dinobase init # local (default)dinobase init --storage s3://bucket/dinobase/ # S3dinobase init --storage gs://bucket/dinobase/ # GCSdinobase init --storage az://container/dinobase/ # Azuredinobase add <type>
Section titled “dinobase add <type>”Add a data source.
dinobase add <source_type> [OPTIONS]| Option | Description |
|---|---|
--name | Custom name for the source (defaults to type) |
--path | Path to files (parquet/csv sources only) |
--sync-interval | Sync interval (e.g., 30m, 1h, 6h) |
--freshness | Freshness threshold (e.g., 1h, 30m). Defaults: 1h for SaaS, 6h for databases |
Source-specific flags (e.g., --api-key, --connection-string) are passed through.
dinobase add stripe --api-key sk_live_...dinobase add stripe --api-key sk_live_... --freshness 30mdinobase add parquet --path ./data/ --name analyticsdinobase add postgres --connection-string postgresql://... --name prod --sync-interval 30mdinobase sources
Section titled “dinobase sources”List connected data sources, or all available source types.
dinobase sources [OPTIONS]| Option | Description |
|---|---|
--available | Show all available source types (not just connected) |
--pretty | Human-readable output |
By default shows only your connected sources. Use --available to see all 100+ supported source types grouped by category.
dinobase sync [source]
Section titled “dinobase sync [source]”Sync data from connected sources.
dinobase sync [SOURCE_NAME] [OPTIONS]| Option | Default | Description |
|---|---|---|
--schedule | off | Run as daemon |
--interval | 1h | Default interval for --schedule |
--max-workers | 10 | Max concurrent syncs |
dinobase sync # all sources, oncedinobase sync stripe # one sourcedinobase sync --schedule --interval 30m # daemon modedinobase refresh [source]
Section titled “dinobase refresh [source]”Re-sync sources to get fresh data.
dinobase refresh [SOURCE_NAME] [OPTIONS]| Option | Description |
|---|---|
--stale | Refresh only sources that exceed their freshness threshold |
--pretty | Human-readable output |
dinobase refresh # refresh all sourcesdinobase refresh stripe # refresh one sourcedinobase refresh --stale # refresh only stale sourcesdinobase refresh --stale --prettyWithout arguments, refreshes all non-file sources. Use --stale to only refresh sources past their freshness threshold.
dinobase status
Section titled “dinobase status”Show status of all sources.
dinobase status [OPTIONS]| Option | Description |
|---|---|
--pretty | Human-readable output |
dinobase query "<sql>"
Section titled “dinobase query "<sql>"”Execute a SQL query (DuckDB dialect).
dinobase query "<sql>" [OPTIONS]| Option | Default | Description |
|---|---|---|
--pretty | off | Table output |
--max-rows | 200 | Max rows returned |
dinobase query "SELECT * FROM stripe.customers LIMIT 5" --prettydinobase query "SELECT COUNT(*) FROM hubspot.contacts"dinobase describe <table>
Section titled “dinobase describe <table>”Describe a table’s columns, types, annotations, and sample data.
dinobase describe <table> [OPTIONS]| Option | Description |
|---|---|
--pretty | Human-readable output |
table can be schema.table or just table (searches all schemas).
dinobase info
Section titled “dinobase info”Show database overview for agents. Outputs the same text used as MCP server instructions.
dinobase infoNo options. Always plain text.
dinobase serve
Section titled “dinobase serve”Start the MCP server (stdio transport).
dinobase serve [OPTIONS]| Option | Default | Description |
|---|---|---|
--sync | off | Enable background sync |
--sync-interval | 1h | Sync interval |
dinobase serve # MCP server onlydinobase serve --sync --sync-interval 30m # with background syncdinobase confirm <mutation_id>
Section titled “dinobase confirm <mutation_id>”Confirm and execute a pending mutation.
dinobase confirm <mutation_id>Mutations submitted via dinobase query "UPDATE ..." return a preview with a mutation_id. Use this command to execute it.
dinobase query "UPDATE stripe.customers SET name = 'Acme' WHERE id = 'cus_123'"# Returns preview with mutation_iddinobase confirm mut_abc123def456dinobase cancel <mutation_id>
Section titled “dinobase cancel <mutation_id>”Cancel a pending mutation without executing it.
dinobase cancel <mutation_id>dinobase auth <type>
Section titled “dinobase auth <type>”Connect a source via OAuth (browser-based authorization).
dinobase auth <source_type> [OPTIONS]| Option | Description |
|---|---|
--name | Custom name for the source (defaults to type) |
--proxy-url | OAuth proxy URL (or set DINOBASE_OAUTH_PROXY_URL) |
Opens your browser to authorize Dinobase to access the source. Tokens are stored locally and refreshed automatically on sync.
dinobase auth hubspotdinobase auth salesforce --name my_salesforcedinobase mcp-config [client]
Section titled “dinobase mcp-config [client]”Print MCP configuration for Claude Code, Claude Desktop, or Cursor.
dinobase mcp-config [CLIENT]| Argument | Description |
|---|---|
claude-desktop | Config for ~/.claude/claude_desktop_config.json |
claude-code | Config for .mcp.json (project root) |
cursor | Config for .cursor/mcp.json (project root) |
Without arguments, prints configs for all three clients.
dinobase mcp-config # show all configsdinobase mcp-config claude-desktop # Claude Desktop onlydinobase mcp-config claude-code # Claude Code onlydinobase mcp-config cursor # Cursor onlyOutput format
Section titled “Output format”All data commands (status, query, describe) output JSON by default, optimized for agent consumption. Add --pretty for human-readable tables.