Skip to content

CLI

daeda is the Typer-based command group that exposes every Daedalus operator surface: data download, catalog/service inspection, the Version Protocol, materialization, the training pipeline, controlled serving, agent config, and the control-plane servers.

Every command and option below is transcribed verbatim from daeda ... --help. Run a command with --help at any level to see the same text inline.

bash
uv run daeda --help

Global options

bash
uv run daeda [OPTIONS] COMMAND [ARGS]...

🛸 Daedalus CLI — Feature store utilities for smoother engineering experience.

OptionDescription
--versionShow CLI version and exit.
--install-completionInstall completion for the current shell.
--show-completionShow completion for the current shell, to copy it or customize the installation.
--helpShow this message and exit.

Commands

CommandDescription
downloadDownload monthly feature data from S3 using parallel sync workers.
lineageShow upstream/downstream lineage for one feature view or service.
materialize-dayMaterialize one training-day partition so an agent can inspect sample output.
mcpRun the Daedalus MCP server over stdio.
serve-apiRun the Daedalus JSON-RPC control plane server.
catalogInspect the feature catalog: list views, show schema, dump lineage.
configPersist AI-agent CLI configuration to ~/.daedalus/config.toml.
devLocal dev utilities.
pipelineLoad and run YAML-defined feature pipelines.
serviceInspect feature services: list contracts, show schema, dump lineage.
materializeQuery and manage materialization metadata: list, show, gc.
registryVersion Protocol: lock, check, and diff the resolved feature schemas.
servingInspect and query materialized serving relations.

download

Download monthly feature data from S3 using parallel sync workers.

bash
uv run daeda download [OPTIONS]
OptionDefaultDescription
--features TEXTFeature names, comma-separated and/or repeated.
--start TEXTStart month in YYYYMM format.
--end TEXTEnd month in YYYYMM format.
--output-dir PATHdata/mewtantLocal output directory.
--workers INTEGER RANGE [x>=1]8Maximum parallel sync workers.
--backend TEXTTransfer backend: s5cmd (default) or aws. Autodetected when omitted, preferring s5cmd.
--dry-runPrint generated sync commands and exit without executing.
--helpShow this message and exit.

catalog

Inspect the feature catalog: list views, show schema, dump lineage.

bash
uv run daeda catalog [OPTIONS] COMMAND [ARGS]...

catalog list

List feature views in the catalog with a one-line summary each.

bash
uv run daeda catalog list [OPTIONS]
OptionDefaultDescription
-d, --definitions-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

catalog show

Print a feature view's metadata + schema as JSON.

bash
uv run daeda catalog show [OPTIONS] NAME

Argument: name (required) — Feature view name.

OptionDefaultDescription
-d, --definitions-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--helpShow this message and exit.

catalog lineage

Dump the catalog's lineage graph as JSON or Graphviz DOT.

bash
uv run daeda catalog lineage [OPTIONS]
OptionDefaultDescription
-d, --definitions-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
-f, --format TEXTjsonOutput format: 'json' (default) or 'dot' (Graphviz).
--helpShow this message and exit.

service

Inspect feature services: list contracts, show schema, dump lineage.

bash
uv run daeda service [OPTIONS] COMMAND [ARGS]...

service materialize

Materialize a feature service's offline serving snapshot to Parquet.

bash
uv run daeda service materialize [OPTIONS] NAME

Argument: name (required) — Feature service name.

OptionDefaultDescription
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--output-root DIRECTORYoutputDirectory where materialized Parquet snapshots and metadata.db are stored.
--repo-root DIRECTORYRoot used to resolve repo-relative feature-view source paths. Omit to preserve the catalog paths unchanged.
--run-id TEXTExplicit run identifier. Auto-generated if omitted.
--attempt INTEGER RANGE [x>=1]1Attempt number (increment when retrying the same run_id).
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--onlinePublish the materialized snapshot to the online store.
--online-backend TEXTredisOnline store backend used with --online: 'memory' or 'redis'.
--redis-url TEXTredis://localhost:6379Redis/Valkey URL used when --online is set.
--online-prefix TEXTdaedalus:Redis key prefix used when --online is set.
--helpShow this message and exit.

service list

List feature services with a one-line summary each.

bash
uv run daeda service list [OPTIONS]
OptionDefaultDescription
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

service show

Print a feature service's full resolved contract as JSON (redacted).

bash
uv run daeda service show [OPTIONS] NAME

Argument: name (required) — Feature service name.

OptionDefaultDescription
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--no-redactShow unredacted sensitive metadata (trusted local use only).
-f, --format TEXTjsonOutput format: 'json' (default).
--helpShow this message and exit.

service lineage

Dump the platform lineage graph (service → view → source).

bash
uv run daeda service lineage [OPTIONS]
OptionDefaultDescription
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
-f, --format TEXTjsonOutput format: 'json' (default) or 'dot' (Graphviz).
--helpShow this message and exit.

registry

Version Protocol: lock, check, and diff the resolved feature schemas.

bash
uv run daeda registry [OPTIONS] COMMAND [ARGS]...

registry lock

Write registry.lock.json from the current view + service definitions.

bash
uv run daeda registry lock [OPTIONS]
OptionDefaultDescription
-d, --feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
-s, --feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
-l, --lock-file PATHregistry.lock.jsonPath to registry.lock.json.
--helpShow this message and exit.

registry check

Fail (exit non-zero) on a breaking change or a missing version bump.

bash
uv run daeda registry check [OPTIONS]
OptionDefaultDescription
-d, --feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
-s, --feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
-l, --lock-file PATHregistry.lock.jsonPath to registry.lock.json.
--helpShow this message and exit.

registry diff

Show the structural diff against the lock (informational; never fails).

bash
uv run daeda registry diff [OPTIONS]
OptionDefaultDescription
-d, --feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
-s, --feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
-l, --lock-file PATHregistry.lock.jsonPath to registry.lock.json.
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

materialize

Query and manage materialization metadata: list, show, gc.

bash
uv run daeda materialize [OPTIONS] COMMAND [ARGS]...

materialize list

List materialization records, newest first.

bash
uv run daeda materialize list [OPTIONS]
OptionDefaultDescription
--output-root DIRECTORYoutputDirectory containing metadata.db and output artifacts.
-s, --service TEXTFilter records by service name.
--status TEXTFilter by status: running, succeeded, or failed.
-n, --limit INTEGER RANGE [x>=1]20Maximum records to return.
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

materialize show

Show the full materialization record(s) for a run_id.

bash
uv run daeda materialize show [OPTIONS] RUN_ID

Argument: run_id (required) — The run_id of the record to show.

OptionDefaultDescription
--output-root DIRECTORYoutputDirectory containing metadata.db and output artifacts.
-f, --format TEXTjsonOutput format: 'json' (default).
--helpShow this message and exit.

materialize gc

Garbage-collect old materialization records and optional output directories.

bash
uv run daeda materialize gc [OPTIONS]
OptionDefaultDescription
--output-root DIRECTORYoutputDirectory containing metadata.db and output artifacts.
-s, --service TEXTLimit garbage collection to this service.
--older-than TEXTPrune records older than an ISO datetime or day count (e.g. '2024-01-01T00:00:00Z' or '7d').
-k, --keep-last INTEGER RANGE [x>=0]Keep the most recent N records per service.
--delete-outputsAlso delete the output directories for pruned records.
--executeExecute the prune (default is dry-run).
--helpShow this message and exit.

pipeline

Load and run YAML-defined feature pipelines.

bash
uv run daeda pipeline [OPTIONS] COMMAND [ARGS]...

pipeline train

Canonical training entry point. Compile a feature service and run it through the operator executor — the unified skeleton → enrich path. Output is byte-identical to the now-deprecated daeda skeleton + daeda enrich (the executor wraps the same proven engine entry points).

bash
uv run daeda pipeline train [OPTIONS] SERVICE

Argument: service (required) — Feature service name.

OptionDefaultDescription
--feature-views-dir PATHfeature_viewsDirectory of feature view YAML.
--feature-services-dir PATHfeature_servicesDirectory of feature service YAML.
--runtime-config-path PATHconfig/training/runtime.yamlTraining runtime.yaml.
--aggregation-config-path PATHconfig/training/aggregations.yamlTraining aggregations.yaml.
--output-root PATHOverride the skeleton output root.
--target-date TEXTA single YYYY-MM-DD target day.
--day-workers INTEGERConcurrent target days (default config).
--skeleton-onlyRun the source stage only.
--enrich-onlyRun the enrichment stage only.
--ray-num-cpus INTEGER16Ray logical CPUs (enrich).
--helpShow this message and exit.

pipeline compile

Compile a feature service into an editable operator-pipeline YAML. The emitted DAG records each operator's declared engine (sql / sql_arrow_udf / pythonic); hand-edit <output-dir>/<service>.yaml to override. <service>.generated.yaml is the regenerated artifact.

bash
uv run daeda pipeline compile [OPTIONS] SERVICE

Argument: service (required) — Feature service name.

OptionDefaultDescription
--feature-views-dir PATHfeature_viewsDirectory of feature view YAML.
--feature-services-dir PATHfeature_servicesDirectory of feature service YAML.
--runtime-config-path PATHconfig/training/runtime.yamlTraining runtime.yaml.
--aggregation-config-path PATHconfig/training/aggregations.yamlTraining aggregations.yaml.
--output-dir PATHconfig/pipelinesWhere to write the generated pipeline YAML.
--write / --no-writewriteWrite the YAML (else stdout only).
--helpShow this message and exit.

pipeline list

List YAML-defined pipelines in pipelines-dir.

bash
uv run daeda pipeline list [OPTIONS]
OptionDefaultDescription
-d, --pipelines-dir DIRECTORYconfig/pipelinesDirectory of YAML pipeline definitions.
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

pipeline show

Print a pipeline's definition as JSON.

bash
uv run daeda pipeline show [OPTIONS] NAME

Argument: name (required) — Pipeline name.

OptionDefaultDescription
-d, --pipelines-dir DIRECTORYconfig/pipelinesDirectory of YAML pipeline definitions.
--helpShow this message and exit.

pipeline run

Execute a pipeline end-to-end (Source → Ops → Sink).

bash
uv run daeda pipeline run [OPTIONS] NAME

Argument: name (required) — Pipeline name.

OptionDefaultDescription
-d, --pipelines-dir DIRECTORYconfig/pipelinesDirectory of YAML pipeline definitions.
--no-sinkSkip the sink write step. Useful for dry-runs and previewing the pipeline output without touching the destination.
--helpShow this message and exit.

serving

Inspect and query materialized serving relations.

bash
uv run daeda serving [OPTIONS] COMMAND [ARGS]...

serving health

Print the backend health status as JSON.

bash
uv run daeda serving health [OPTIONS]
OptionDefaultDescription
--output-root PATHoutputRoot directory containing materialized snapshots.
--backend TEXTlocalServing backend to use (local or quack).
--helpShow this message and exit.

serving relations

List the approved relation names for a service.

bash
uv run daeda serving relations [OPTIONS] SERVICE

Argument: service (required) — Service name.

OptionDefaultDescription
--output-root PATHoutputRoot directory containing materialized snapshots.
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--helpShow this message and exit.

serving schema

Print the Arrow schema (field names + types) for a relation as JSON.

bash
uv run daeda serving schema [OPTIONS] SERVICE

Argument: service (required) — Service name.

OptionDefaultDescription
-r, --relation TEXT (required)Relation name to inspect.
--output-root PATHoutputRoot directory containing materialized snapshots.
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--backend TEXTlocalServing backend to use (local or quack).
--helpShow this message and exit.

serving scan

Scan a relation and print rows as JSON.

bash
uv run daeda serving scan [OPTIONS] SERVICE

Argument: service (required) — Service name.

OptionDefaultDescription
-r, --relation TEXT (required)Relation name to scan.
--output-root PATHoutputRoot directory containing materialized snapshots.
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--backend TEXTlocalServing backend to use (local or quack).
-n, --limit INTEGERMaximum rows to return.
-c, --columns TEXTComma-separated column names to include.
--helpShow this message and exit.

serving serve

Start a long-running serving daemon for a service. Blocks until SIGINT or SIGTERM, then shuts down cleanly.

bash
uv run daeda serving serve [OPTIONS] SERVICE_NAME

Argument: service_name (required) — Service name.

OptionDefaultDescription
--backend TEXTquackServing backend to use (local or quack).
--host TEXT127.0.0.1Host to bind the Quack server to.
--port INTEGER RANGE [0<=x<=65535]0Port to bind the Quack server to (0 = auto-pick).
--token TEXTBearer token for Quack auth. If omitted, Quack generates one.
--output-root PATHoutputRoot directory containing materialized snapshots.
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--feature-services-dir DIRECTORYfeature_servicesDirectory containing YAML feature service definitions.
--helpShow this message and exit.

config

Persist AI-agent CLI configuration to ~/.daedalus/config.toml (override path via $DAEDALUS_CONFIG).

bash
uv run daeda config [OPTIONS] COMMAND [ARGS]...

config init

Write the default agent config to disk.

bash
uv run daeda config init [OPTIONS]
OptionDefaultDescription
--forceOverwrite an existing config file with defaults.
--helpShow this message and exit.

config show

Print the effective agent CLI config.

bash
uv run daeda config show [OPTIONS]
OptionDefaultDescription
-f, --format TEXTtomlOutput format: 'toml' (default) or 'json'.
--helpShow this message and exit.

config set

Persist one config key/value pair.

bash
uv run daeda config set [OPTIONS] KEY VALUE

Arguments: key (required) — Config key to update; value (required) — String value to persist.

OptionDefaultDescription
--helpShow this message and exit.

config path

Print the config file path.

bash
uv run daeda config path [OPTIONS]
OptionDefaultDescription
--helpShow this message and exit.

dev

Local dev utilities.

bash
uv run daeda dev [OPTIONS] COMMAND [ARGS]...

dev seed

Seed synthetic parquet for the catalog's declared source paths.

bash
uv run daeda dev seed [OPTIONS]
OptionDefaultDescription
--data-root DIRECTORY (required)Root directory where catalog source paths will be seeded.
--rows INTEGER RANGE [x>=0]1000Rows to write per unique source.
--seed INTEGER42Base RNG seed.
--id-pool INTEGER RANGE [x>=1]200Shared ID pool size per entity.
--feature-views-dir DIRECTORYfeature_viewsDirectory containing YAML feature view definitions.
--helpShow this message and exit.

lineage

Show upstream/downstream lineage for one feature view or service.

bash
uv run daeda lineage [OPTIONS] NAME

Argument: name (required) — Feature view or service name.

OptionDefaultDescription
-f, --format TEXTtableOutput format: 'table' (default) or 'json'.
--helpShow this message and exit.

materialize-day

Materialize one training-day partition so an agent can inspect sample output.

bash
uv run daeda materialize-day [OPTIONS] SERVICE DATE

Arguments: service (required) — Training service name; date (required) — Partition date (YYYY-MM-DD).

OptionDefaultDescription
--helpShow this message and exit.

serve-api

Run the Daedalus JSON-RPC control plane server.

bash
uv run daeda serve-api [OPTIONS]
OptionDefaultDescription
--host TEXT127.0.0.1Host interface to bind the FastAPI server to.
--port INTEGER8000TCP port to bind the FastAPI server to.
--helpShow this message and exit.

mcp

Run the Daedalus MCP server over stdio.

bash
uv run daeda mcp [OPTIONS]
OptionDefaultDescription
--helpShow this message and exit.