Skip to main content
The Datris CLI (datris) is a command-line interface for the Datris Data Platform. It communicates with the platform via the MCP server, providing a simple way to ingest data, run queries, search vector stores, and manage pipelines — all from the terminal.

Installation

Configuration

The CLI connects to the MCP server via SSE. Set the server URL with an environment variable:

Authentication

When the Datris platform has USE_API_KEYS=true, every CLI command must present an API key. Set it as an environment variable:
The CLI sends it as x-api-key on every MCP request, which the MCP server forwards to the REST API. Issue a key dedicated to the CLI from the UI: Configuration → API-Keys → Issue new key with a label like cli and the capability scope you want (e.g. read-only template for an analyst CLI, ops for a deploy runner). The value is shown once at issue time — set it as DATRIS_API_KEY in your shell. Each label is a distinct caller identity in the request logs and can be revoked independently. See API Keys for the full pattern. When USE_API_KEYS=false (the OSS default), the CLI works without any key — the env var is ignored.

JSON Output

Every command supports --json to return raw JSON instead of human-readable output. This is useful for scripting and programmatic use.

Commands

datris help

Show all available commands and options.

datris pipelines

List all registered pipelines.

datris ingest

Create a pipeline and ingest a data file in one step. The schema is auto-detected from the file. If the named pipeline already exists, the existing config is preserved and the file is uploaded into it — --dest, --table, --ai-validate, --ai-transform, and --catalog are ignored on re-ingest. Delete the pipeline first (datris delete <name>) if you need a fresh config.
Examples:

datris query

Execute a read-only SQL SELECT query against PostgreSQL.

Semantic search across a vector database.

datris analyze

Ask a question about your data using AI. Works with any destination type — auto-picks the right approach based on --dest.
Examples:
How it works by destination:
  • PostgreSQL — AI generates a SQL query from your question, executes it, then summarizes the results in a natural language answer
  • MongoDB — fetches documents from the collection, then AI answers the question based on the data
  • Snowflake / Databricks — previews rows from the pipeline’s destination table (connection and credentials resolved server-side from the pipeline config), then AI answers the question based on the data
  • Vector stores — performs semantic search to find relevant chunks, then AI generates an answer from the retrieved context

datris query-mongo

Query a MongoDB collection with optional filter and projection.

datris status

Get the latest job status for a pipeline.

datris delete

Delete a pipeline configuration and optionally its destination data.

datris health

Check the health of all backend services.

datris secrets

List all configured secrets.

datris taps

List all taps.

datris tap create

Create a tap. The instruction argument (a plain-English description) is optional — provide it to have AI generate the fetch script, or omit it and supply your own script with --script (or create a config-only tap with neither).
Examples:
Document taps require a target pipeline whose source is unstructuredAttributes and whose destination is a vector store (qdrant, pgvector, weaviate, milvus, or chroma). The server rejects tap create --type document against a structured pipeline with HTTP 400.

datris tap run

Run a tap manually. Output reflects whether the fetched records actually landed in the target pipeline:
Or if the run succeeded but records weren’t persisted (missing target pipeline, test mode, script error, zero records), the CLI tells you exactly why:
Pass --json to get the full response including mode, persisted, persistedReason, publisherToken, and pipelineTokens.

datris tap show

Show full details of a tap, including its script. Prints the name, description, target pipeline, schedule, enabled state, secret, and last run/test results, followed by the stored script.

datris tap test

Test-run a tap without pushing the fetched records to the target pipeline. Reports the run status, record count, and data type.

datris tap logs

Show the run history for a tap — each entry’s timestamp, status, mode (run or test), record count, duration, and any error.

datris tap update

Update a tap’s configuration without regenerating its script. Specify at least one option.

datris tap delete

Delete a tap.

datris version

Get the server version.

Pipeline Name Auto-Detection

When --pipeline is not specified, the CLI derives the pipeline name from the filename:
  • sales-data.csvsales_data
  • Q1 Revenue Report.csvq1_revenue_report
  • trades.jsontrades
The extension is stripped, hyphens and spaces are replaced with underscores, and the name is lowercased.