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.
uv run daeda --helpGlobal options
uv run daeda [OPTIONS] COMMAND [ARGS]...🛸 Daedalus CLI — Feature store utilities for smoother engineering experience.
| Option | Description |
|---|---|
--version | Show CLI version and exit. |
--install-completion | Install completion for the current shell. |
--show-completion | Show completion for the current shell, to copy it or customize the installation. |
--help | Show this message and exit. |
Commands
| Command | Description |
|---|---|
download | Download monthly feature data from S3 using parallel sync workers. |
lineage | Show upstream/downstream lineage for one feature view or service. |
materialize-day | Materialize one training-day partition so an agent can inspect sample output. |
mcp | Run the Daedalus MCP server over stdio. |
serve-api | Run the Daedalus JSON-RPC control plane server. |
catalog | Inspect the feature catalog: list views, show schema, dump lineage. |
config | Persist AI-agent CLI configuration to ~/.daedalus/config.toml. |
dev | Local dev utilities. |
pipeline | Load and run YAML-defined feature pipelines. |
service | Inspect feature services: list contracts, show schema, dump lineage. |
materialize | Query and manage materialization metadata: list, show, gc. |
registry | Version Protocol: lock, check, and diff the resolved feature schemas. |
serving | Inspect and query materialized serving relations. |
download
Download monthly feature data from S3 using parallel sync workers.
uv run daeda download [OPTIONS]| Option | Default | Description |
|---|---|---|
--features TEXT | Feature names, comma-separated and/or repeated. | |
--start TEXT | Start month in YYYYMM format. | |
--end TEXT | End month in YYYYMM format. | |
--output-dir PATH | data/mewtant | Local output directory. |
--workers INTEGER RANGE [x>=1] | 8 | Maximum parallel sync workers. |
--backend TEXT | Transfer backend: s5cmd (default) or aws. Autodetected when omitted, preferring s5cmd. | |
--dry-run | Print generated sync commands and exit without executing. | |
--help | Show this message and exit. |
catalog
Inspect the feature catalog: list views, show schema, dump lineage.
uv run daeda catalog [OPTIONS] COMMAND [ARGS]...catalog list
List feature views in the catalog with a one-line summary each.
uv run daeda catalog list [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --definitions-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
catalog show
Print a feature view's metadata + schema as JSON.
uv run daeda catalog show [OPTIONS] NAMEArgument: name (required) — Feature view name.
| Option | Default | Description |
|---|---|---|
-d, --definitions-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--help | Show this message and exit. |
catalog lineage
Dump the catalog's lineage graph as JSON or Graphviz DOT.
uv run daeda catalog lineage [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --definitions-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
-f, --format TEXT | json | Output format: 'json' (default) or 'dot' (Graphviz). |
--help | Show this message and exit. |
service
Inspect feature services: list contracts, show schema, dump lineage.
uv run daeda service [OPTIONS] COMMAND [ARGS]...service materialize
Materialize a feature service's offline serving snapshot to Parquet.
uv run daeda service materialize [OPTIONS] NAMEArgument: name (required) — Feature service name.
| Option | Default | Description |
|---|---|---|
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--output-root DIRECTORY | output | Directory where materialized Parquet snapshots and metadata.db are stored. |
--repo-root DIRECTORY | Root used to resolve repo-relative feature-view source paths. Omit to preserve the catalog paths unchanged. | |
--run-id TEXT | Explicit run identifier. Auto-generated if omitted. | |
--attempt INTEGER RANGE [x>=1] | 1 | Attempt number (increment when retrying the same run_id). |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--online | Publish the materialized snapshot to the online store. | |
--online-backend TEXT | redis | Online store backend used with --online: 'memory' or 'redis'. |
--redis-url TEXT | redis://localhost:6379 | Redis/Valkey URL used when --online is set. |
--online-prefix TEXT | daedalus: | Redis key prefix used when --online is set. |
--help | Show this message and exit. |
service list
List feature services with a one-line summary each.
uv run daeda service list [OPTIONS]| Option | Default | Description |
|---|---|---|
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
service show
Print a feature service's full resolved contract as JSON (redacted).
uv run daeda service show [OPTIONS] NAMEArgument: name (required) — Feature service name.
| Option | Default | Description |
|---|---|---|
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--no-redact | Show unredacted sensitive metadata (trusted local use only). | |
-f, --format TEXT | json | Output format: 'json' (default). |
--help | Show this message and exit. |
service lineage
Dump the platform lineage graph (service → view → source).
uv run daeda service lineage [OPTIONS]| Option | Default | Description |
|---|---|---|
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
-f, --format TEXT | json | Output format: 'json' (default) or 'dot' (Graphviz). |
--help | Show this message and exit. |
registry
Version Protocol: lock, check, and diff the resolved feature schemas.
uv run daeda registry [OPTIONS] COMMAND [ARGS]...registry lock
Write registry.lock.json from the current view + service definitions.
uv run daeda registry lock [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
-s, --feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
-l, --lock-file PATH | registry.lock.json | Path to registry.lock.json. |
--help | Show this message and exit. |
registry check
Fail (exit non-zero) on a breaking change or a missing version bump.
uv run daeda registry check [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
-s, --feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
-l, --lock-file PATH | registry.lock.json | Path to registry.lock.json. |
--help | Show this message and exit. |
registry diff
Show the structural diff against the lock (informational; never fails).
uv run daeda registry diff [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
-s, --feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
-l, --lock-file PATH | registry.lock.json | Path to registry.lock.json. |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
materialize
Query and manage materialization metadata: list, show, gc.
uv run daeda materialize [OPTIONS] COMMAND [ARGS]...materialize list
List materialization records, newest first.
uv run daeda materialize list [OPTIONS]| Option | Default | Description |
|---|---|---|
--output-root DIRECTORY | output | Directory containing metadata.db and output artifacts. |
-s, --service TEXT | Filter records by service name. | |
--status TEXT | Filter by status: running, succeeded, or failed. | |
-n, --limit INTEGER RANGE [x>=1] | 20 | Maximum records to return. |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
materialize show
Show the full materialization record(s) for a run_id.
uv run daeda materialize show [OPTIONS] RUN_IDArgument: run_id (required) — The run_id of the record to show.
| Option | Default | Description |
|---|---|---|
--output-root DIRECTORY | output | Directory containing metadata.db and output artifacts. |
-f, --format TEXT | json | Output format: 'json' (default). |
--help | Show this message and exit. |
materialize gc
Garbage-collect old materialization records and optional output directories.
uv run daeda materialize gc [OPTIONS]| Option | Default | Description |
|---|---|---|
--output-root DIRECTORY | output | Directory containing metadata.db and output artifacts. |
-s, --service TEXT | Limit garbage collection to this service. | |
--older-than TEXT | Prune 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-outputs | Also delete the output directories for pruned records. | |
--execute | Execute the prune (default is dry-run). | |
--help | Show this message and exit. |
pipeline
Load and run YAML-defined feature pipelines.
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).
uv run daeda pipeline train [OPTIONS] SERVICEArgument: service (required) — Feature service name.
| Option | Default | Description |
|---|---|---|
--feature-views-dir PATH | feature_views | Directory of feature view YAML. |
--feature-services-dir PATH | feature_services | Directory of feature service YAML. |
--runtime-config-path PATH | config/training/runtime.yaml | Training runtime.yaml. |
--aggregation-config-path PATH | config/training/aggregations.yaml | Training aggregations.yaml. |
--output-root PATH | Override the skeleton output root. | |
--target-date TEXT | A single YYYY-MM-DD target day. | |
--day-workers INTEGER | Concurrent target days (default config). | |
--skeleton-only | Run the source stage only. | |
--enrich-only | Run the enrichment stage only. | |
--ray-num-cpus INTEGER | 16 | Ray logical CPUs (enrich). |
--help | Show 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.
uv run daeda pipeline compile [OPTIONS] SERVICEArgument: service (required) — Feature service name.
| Option | Default | Description |
|---|---|---|
--feature-views-dir PATH | feature_views | Directory of feature view YAML. |
--feature-services-dir PATH | feature_services | Directory of feature service YAML. |
--runtime-config-path PATH | config/training/runtime.yaml | Training runtime.yaml. |
--aggregation-config-path PATH | config/training/aggregations.yaml | Training aggregations.yaml. |
--output-dir PATH | config/pipelines | Where to write the generated pipeline YAML. |
--write / --no-write | write | Write the YAML (else stdout only). |
--help | Show this message and exit. |
pipeline list
List YAML-defined pipelines in pipelines-dir.
uv run daeda pipeline list [OPTIONS]| Option | Default | Description |
|---|---|---|
-d, --pipelines-dir DIRECTORY | config/pipelines | Directory of YAML pipeline definitions. |
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
pipeline show
Print a pipeline's definition as JSON.
uv run daeda pipeline show [OPTIONS] NAMEArgument: name (required) — Pipeline name.
| Option | Default | Description |
|---|---|---|
-d, --pipelines-dir DIRECTORY | config/pipelines | Directory of YAML pipeline definitions. |
--help | Show this message and exit. |
pipeline run
Execute a pipeline end-to-end (Source → Ops → Sink).
uv run daeda pipeline run [OPTIONS] NAMEArgument: name (required) — Pipeline name.
| Option | Default | Description |
|---|---|---|
-d, --pipelines-dir DIRECTORY | config/pipelines | Directory of YAML pipeline definitions. |
--no-sink | Skip the sink write step. Useful for dry-runs and previewing the pipeline output without touching the destination. | |
--help | Show this message and exit. |
serving
Inspect and query materialized serving relations.
uv run daeda serving [OPTIONS] COMMAND [ARGS]...serving health
Print the backend health status as JSON.
uv run daeda serving health [OPTIONS]| Option | Default | Description |
|---|---|---|
--output-root PATH | output | Root directory containing materialized snapshots. |
--backend TEXT | local | Serving backend to use (local or quack). |
--help | Show this message and exit. |
serving relations
List the approved relation names for a service.
uv run daeda serving relations [OPTIONS] SERVICEArgument: service (required) — Service name.
| Option | Default | Description |
|---|---|---|
--output-root PATH | output | Root directory containing materialized snapshots. |
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--help | Show this message and exit. |
serving schema
Print the Arrow schema (field names + types) for a relation as JSON.
uv run daeda serving schema [OPTIONS] SERVICEArgument: service (required) — Service name.
| Option | Default | Description |
|---|---|---|
-r, --relation TEXT (required) | Relation name to inspect. | |
--output-root PATH | output | Root directory containing materialized snapshots. |
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--backend TEXT | local | Serving backend to use (local or quack). |
--help | Show this message and exit. |
serving scan
Scan a relation and print rows as JSON.
uv run daeda serving scan [OPTIONS] SERVICEArgument: service (required) — Service name.
| Option | Default | Description |
|---|---|---|
-r, --relation TEXT (required) | Relation name to scan. | |
--output-root PATH | output | Root directory containing materialized snapshots. |
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--backend TEXT | local | Serving backend to use (local or quack). |
-n, --limit INTEGER | Maximum rows to return. | |
-c, --columns TEXT | Comma-separated column names to include. | |
--help | Show this message and exit. |
serving serve
Start a long-running serving daemon for a service. Blocks until SIGINT or SIGTERM, then shuts down cleanly.
uv run daeda serving serve [OPTIONS] SERVICE_NAMEArgument: service_name (required) — Service name.
| Option | Default | Description |
|---|---|---|
--backend TEXT | quack | Serving backend to use (local or quack). |
--host TEXT | 127.0.0.1 | Host to bind the Quack server to. |
--port INTEGER RANGE [0<=x<=65535] | 0 | Port to bind the Quack server to (0 = auto-pick). |
--token TEXT | Bearer token for Quack auth. If omitted, Quack generates one. | |
--output-root PATH | output | Root directory containing materialized snapshots. |
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--feature-services-dir DIRECTORY | feature_services | Directory containing YAML feature service definitions. |
--help | Show this message and exit. |
config
Persist AI-agent CLI configuration to ~/.daedalus/config.toml (override path via $DAEDALUS_CONFIG).
uv run daeda config [OPTIONS] COMMAND [ARGS]...config init
Write the default agent config to disk.
uv run daeda config init [OPTIONS]| Option | Default | Description |
|---|---|---|
--force | Overwrite an existing config file with defaults. | |
--help | Show this message and exit. |
config show
Print the effective agent CLI config.
uv run daeda config show [OPTIONS]| Option | Default | Description |
|---|---|---|
-f, --format TEXT | toml | Output format: 'toml' (default) or 'json'. |
--help | Show this message and exit. |
config set
Persist one config key/value pair.
uv run daeda config set [OPTIONS] KEY VALUEArguments: key (required) — Config key to update; value (required) — String value to persist.
| Option | Default | Description |
|---|---|---|
--help | Show this message and exit. |
config path
Print the config file path.
uv run daeda config path [OPTIONS]| Option | Default | Description |
|---|---|---|
--help | Show this message and exit. |
dev
Local dev utilities.
uv run daeda dev [OPTIONS] COMMAND [ARGS]...dev seed
Seed synthetic parquet for the catalog's declared source paths.
uv run daeda dev seed [OPTIONS]| Option | Default | Description |
|---|---|---|
--data-root DIRECTORY (required) | Root directory where catalog source paths will be seeded. | |
--rows INTEGER RANGE [x>=0] | 1000 | Rows to write per unique source. |
--seed INTEGER | 42 | Base RNG seed. |
--id-pool INTEGER RANGE [x>=1] | 200 | Shared ID pool size per entity. |
--feature-views-dir DIRECTORY | feature_views | Directory containing YAML feature view definitions. |
--help | Show this message and exit. |
lineage
Show upstream/downstream lineage for one feature view or service.
uv run daeda lineage [OPTIONS] NAMEArgument: name (required) — Feature view or service name.
| Option | Default | Description |
|---|---|---|
-f, --format TEXT | table | Output format: 'table' (default) or 'json'. |
--help | Show this message and exit. |
materialize-day
Materialize one training-day partition so an agent can inspect sample output.
uv run daeda materialize-day [OPTIONS] SERVICE DATEArguments: service (required) — Training service name; date (required) — Partition date (YYYY-MM-DD).
| Option | Default | Description |
|---|---|---|
--help | Show this message and exit. |
serve-api
Run the Daedalus JSON-RPC control plane server.
uv run daeda serve-api [OPTIONS]| Option | Default | Description |
|---|---|---|
--host TEXT | 127.0.0.1 | Host interface to bind the FastAPI server to. |
--port INTEGER | 8000 | TCP port to bind the FastAPI server to. |
--help | Show this message and exit. |
mcp
Run the Daedalus MCP server over stdio.
uv run daeda mcp [OPTIONS]| Option | Default | Description |
|---|---|---|
--help | Show this message and exit. |