Skip to content

CLI ​

daeda is the Typer-based command group that exposes every Daedalus operator surface: catalog/service inspection, the Version Protocol, materialization, the embedding store, 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
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.
storeBuild and inspect the declared embedding stores.

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 as one operator DAG. Output is byte-identical to the now-deprecated daeda skeleton + daeda enrich (the executor wraps the same proven engine entry points).

--only selects a DAG sub-range, not a stage

There are no separate "skeleton" and "enrich" stages — just one operator DAG. --only source runs a contiguous sub-range of that DAG (the source-side operators that read sources in place and build the spine); --only enrich runs the complementary sub-range (the enrichment operators that append the Ray/Lance embeddings). --only sql / --only sql-arrow-udf / --only pythonic narrow to a single engine. See the Architecture Overview.

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 PATHfeature_services/pixai_feed_relevance/settings.yamlTraining settings.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).
--only TEXT(full DAG)Run only selected engine units: source | enrich | sql | sql-arrow-udf | pythonic.
--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 PATHfeature_services/pixai_feed_relevance/settings.yamlTraining settings.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.

store ​

Build and inspect the declared embedding stores.

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

The Lance embedding pool is the one artifact Daedalus cannot read in place — it is local-path only and needs a filesystem with atomic rename. See Local Lance embedding store for the full setup, including the download step that produces the source parquet.

store list ​

List the declared embedding stores and whether each is built.

bash
uv run daeda store list [OPTIONS]
OptionDefaultDescription
--aggregation-config FILEconfig/training/aggregations.yamlConfig declaring embedding_stores.
--helpShow this message and exit.

store build ​

Build a declared Lance store from pre-downloaded hive-partitioned parquet.

bash
uv run daeda store build [OPTIONS] NAME
OptionDefaultDescription
NAME (required)Name of an embedding_stores entry to build.
--source DIRECTORYdeclared source_parquetRoot of the pre-downloaded hive-partitioned vectors.
--store-path PATHdeclared pathBuild somewhere other than the declared path.
--source-filter TEXTdeclared source_filterSQL predicate scoping the pool; '' builds every partition.
--rebuildoffDelete an existing store first. Without it, an existing store is an error.
--duckdb-threads INTEGER RANGE [x>=1]16DuckDB threads for the streaming read.
--duckdb-memory-limit TEXT32GiBDuckDB memory_limit for the streaming read.
--allow-network-filesystemoffSkip the filesystem check. Lance needs atomic rename; a store on GPFS/NFS corrupts under concurrent actors.
--aggregation-config FILEconfig/training/aggregations.yamlConfig declaring embedding_stores.
--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.