Skip to content

CLI Reference

Run dinobase --help for a summary, or dinobase <command> --help for any command.

Create the config directory and database.

Terminal window
dinobase init [OPTIONS]
OptionDescription
--storageCloud 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.

Terminal window
dinobase init # local (default)
dinobase init --storage s3://bucket/dinobase/ # S3
dinobase init --storage gs://bucket/dinobase/ # GCS
dinobase init --storage az://container/dinobase/ # Azure

Launch a local browser GUI for adding connectors (SaaS APIs, databases, files, MCP servers, and custom REST). See the Setup GUI guide for details.

Terminal window
dinobase setup [OPTIONS]
OptionDescription
--portBind a specific port (default: random)
--no-browserPrint the URL but don’t open a browser

Binds to 127.0.0.1 only, opens a browser tab, and blocks until you press Ctrl+C or click Quit setup in the GUI.


Add a connector.

Terminal window
dinobase add <connector_type> [OPTIONS]
OptionDescription
--nameCustom name for the connector (defaults to type)
--pathPath to files (parquet/csv connectors only)
--sync-intervalSync interval (e.g., 30m, 1h, 6h)
--freshnessFreshness threshold (e.g., 1h, 30m). Defaults: 1h for SaaS, 6h for databases

Connector-specific flags (e.g., --api-key, --connection-string) are passed through.

Terminal window
dinobase add stripe --api-key sk_live_...
dinobase add stripe --api-key sk_live_... --freshness 30m
dinobase add parquet --path ./data/ --name analytics
dinobase add postgres --connection-string postgresql://... --name prod --sync-interval 30m

List configured connectors, or all available connector types. The deprecated alias dinobase sources still works and prints a deprecation notice.

Terminal window
dinobase connectors [OPTIONS]
OptionDescription
--availableShow all available connector types (not just configured)
--prettyHuman-readable output

By default shows only your configured connectors. Use --available to see all 100+ supported connector types grouped by category.


Sync data from configured connectors.

Terminal window
dinobase sync [CONNECTOR_NAME] [OPTIONS]
OptionDefaultDescription
--scheduleoffRun as daemon
--interval1hDefault interval for --schedule
--max-workers10Max concurrent syncs
Terminal window
dinobase sync # all connectors, once
dinobase sync stripe # one connector
dinobase sync --schedule --interval 30m # daemon mode

Re-sync connectors to get fresh data.

Terminal window
dinobase refresh [CONNECTOR_NAME] [OPTIONS]
OptionDescription
--staleRefresh only connectors that exceed their freshness threshold
--prettyHuman-readable output
Terminal window
dinobase refresh # refresh all connectors
dinobase refresh stripe # refresh one connector
dinobase refresh --stale # refresh only stale connectors
dinobase refresh --stale --pretty

Without arguments, refreshes all non-file connectors. Use --stale to only refresh connectors past their freshness threshold.


Show status of all connectors.

Terminal window
dinobase status [OPTIONS]
OptionDescription
--prettyHuman-readable output

Execute a SQL query (DuckDB dialect).

Terminal window
dinobase query "<sql>" [OPTIONS]
OptionDefaultDescription
--prettyoffTable output
--max-rows200Max rows returned
Terminal window
dinobase query "SELECT * FROM stripe.customers LIMIT 5" --pretty
dinobase query "SELECT COUNT(*) FROM hubspot.contacts"

Describe a table’s columns, types, annotations, and sample data.

Terminal window
dinobase describe <table> [OPTIONS]
OptionDescription
--prettyHuman-readable output

table can be schema.table or just table (searches all schemas).


Show database overview for agents. Outputs the same text used as MCP server instructions.

Terminal window
dinobase info

No options. Always plain text.


Start the MCP server (stdio transport).

Terminal window
dinobase serve [OPTIONS]
OptionDefaultDescription
--syncoffEnable background sync
--sync-interval1hSync interval
Terminal window
dinobase serve # MCP server only
dinobase serve --sync --sync-interval 30m # with background sync

Confirm and execute a pending mutation.

Terminal window
dinobase confirm <mutation_id>

Mutations submitted via dinobase query "UPDATE ..." return a preview with a mutation_id. Use this command to execute it.

Terminal window
dinobase query "UPDATE stripe.customers SET name = 'Acme' WHERE id = 'cus_123'"
# Returns preview with mutation_id
dinobase confirm mut_abc123def456

Cancel a pending mutation without executing it.

Terminal window
dinobase cancel <mutation_id>

Connect a connector via OAuth (browser-based authorization).

Terminal window
dinobase auth <connector_type> [OPTIONS]
OptionDescription
--nameCustom name for the connector (defaults to type)
--proxy-urlOAuth proxy URL (or set DINOBASE_OAUTH_PROXY_URL)

Opens your browser to authorize Dinobase to access the upstream service. Tokens are stored locally and refreshed automatically on sync.

Terminal window
dinobase auth hubspot
dinobase auth salesforce --name my_salesforce

Print MCP configuration for Claude Code, Claude Desktop, or Cursor.

Terminal window
dinobase mcp-config [CLIENT]
ArgumentDescription
claude-desktopConfig for ~/.claude/claude_desktop_config.json
claude-codeConfig for .mcp.json (project root)
cursorConfig for .cursor/mcp.json (project root)

Without arguments, prints configs for all three clients.

Terminal window
dinobase mcp-config # show all configs
dinobase mcp-config claude-desktop # Claude Desktop only
dinobase mcp-config claude-code # Claude Code only
dinobase mcp-config cursor # Cursor only

Interact with connected MCP servers. MCP server data is automatically synced into DuckDB tables (schema: server name, table: tool name), so prefer dinobase query for reads. Use mcp call for tools that need arguments or for write operations.

List all connected MCP servers with their tool counts.

Terminal window
dinobase mcp servers [--pretty]

Show a server’s info and usage instructions.

Terminal window
dinobase mcp instructions <server> [--pretty]
dinobase mcp instructions posthog_mcp

List all tools on a server, or show the full schema (parameters, types) for one tool.

Terminal window
dinobase mcp info <server>[.tool] [--pretty]
dinobase mcp info posthog_mcp # list all tools
dinobase mcp info posthog_mcp.list_projects # show one tool's schema

Regex search tool names and descriptions across all connected MCP servers.

Terminal window
dinobase mcp search "<pattern>" [--pretty]
dinobase mcp search "dashboard"
dinobase mcp search "list.*"

dinobase mcp call <server.tool> [args_json]

Section titled “dinobase mcp call <server.tool> [args_json]”

Call a tool on a connected MCP server with optional JSON arguments.

Terminal window
dinobase mcp call <server.tool> ['{"arg": "value"}'] [--pretty]
dinobase mcp call posthog_mcp.list_projects
dinobase mcp call posthog_mcp.dashboard-get '{"id": 1118504}'

Scaffold a local custom connector YAML config.

Terminal window
dinobase connector create <name> [OPTIONS]

REST connector options:

OptionDescription
--urlBase URL for the API
--auth-typeAuthentication type: bearer, http_basic, api_key_header (default: bearer)
--endpointEndpoint path (e.g., projects/123/feature_flags/)
--data-selectorJSON path to data array (default: $ for root)
--modeFetch mode: live, sync, auto (default: auto)

MCP connector options:

OptionDescription
--transportMCP transport type: stdio, sse, streamable_http
--commandFull command string for stdio transport (e.g., npx -y @modelcontextprotocol/server-filesystem /data)
--urlServer URL for sse and streamable_http transports
--modeFetch mode: live, sync (default: live)

Creates ~/.dinobase/connectors/<name>.yaml. See Custom REST Connectors and MCP Server Connectors.

Terminal window
# REST connector
dinobase connector create posthog_flags \
--url "https://app.posthog.com/api/" \
--endpoint "projects/123/feature_flags/" \
--data-selector results
# MCP connector (stdio)
dinobase connector create posthog_mcp \
--transport stdio \
--command "npx -y @posthog/mcp-server"
# MCP connector (SSE)
dinobase connector create my_server \
--transport sse \
--url "https://server/sse"

List all local custom connectors.

Terminal window
dinobase connector list [--pretty]

Validate a local connector YAML config for required fields and credential placeholders.

Terminal window
dinobase connector validate my_api

Open a local connector config in $EDITOR.

Terminal window
dinobase connector edit my_api

All data commands (status, query, describe) output JSON by default, optimized for agent consumption. Add --pretty for human-readable tables.