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
The CLI does not set anx-api-key header itself. When USE_API_KEYS=false (the OSS default) no key is needed. When USE_API_KEYS=true, pass the key on the MCP URL’s query string, which the MCP server accepts as an alternative to the header:
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.
datris search
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:
- 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:
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:
--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.
datris doctor
Operational self-check: the server’s own checks (Vault token expiry, AI slot secrets, embedding model loaded, disk, version skew) plus host checks that need Docker (anonymous volumes, container env drift, orphaned containers, stale source build). Every finding prints the command that fixes it; nothing is changed. See Doctor for the full check list.
Unlike the other commands,
doctor calls the server’s REST API directly (DATRIS_URL, default http://localhost:8080; DATRIS_API_KEY when API keys are on) — a dead MCP server is itself a finding, not a reason to fail.
Exit codes: 0 all ok, 1 any warning, 2 any error, 3 server unreachable (host checks still ran).
Pipeline Name Auto-Detection
When--pipeline is not specified, the CLI derives the pipeline name from the filename:
sales-data.csv→sales_dataQ1 Revenue Report.csv→q1_revenue_reporttrades.json→trades
