odd-cli
Operator-side CLI for pushing local file metadata, running dbt ingestion, and managing platform tokens.
Status: Stable, evolving. A small operator-facing CLI; the repo is the source of truth for the command surface as it grows.
odd-cli is the operator-side command-line companion to the ODD Platform. It exposes a small set of subcommands for ad-hoc metadata pushes (CSV / Parquet folders), running dbt ingestion (re-using odd-dbt under the hood), and managing platform tokens. It is the right tool for "I have a folder of files I want to register" and "give me a token for a script" without standing up a full collector.
For the broader pull-vs-push picture, start at the Integrations hub.
Installation
pip install odd-cliInstalls the odd executable into your Python environment.
Configuration
The CLI reads two environment variables for platform addressing:
ODD_PLATFORM_HOST
Platform URL (e.g. http://localhost:8080).
ODD_PLATFORM_TOKEN
A collector token. Create one in the UI (Management → Collectors) or with odd tokens create.
Source: odd-cli README.
Commands
odd collect <path_to_folder>
Walks a local folder of dataset files (CSV / Parquet / similar), maps them to ODD entities, and pushes to the platform.
odd dbt test <path_to_dbt_project>
Runs dbt test and ingests the resulting target/ artefacts. Re-uses odd-dbt — same supported targets (Postgres, Snowflake) and same generic-tests-only constraint apply.
odd tokens create <collector_name>
Issues a new collector token from the platform. Useful in CI scripts.
What gets sent
odd collect— dataset entities for each detected file under the path, with inferred schema where possible.odd dbt test— same payload asodd-dbt: models, model-to-model lineage, generic test results.odd tokens create— no metadata is emitted; the command interacts with the platform's token-management API.
Known limitations
odd dbtinheritsodd-dbt's constraints. Postgres and Snowflake targets only; generic tests only; dbt 1.6+ only. See theodd-dbtpage for full detail.odd collectis for batch pushes, not continuous tail-and-push from a folder. Run it on a schedule (cron / CI) for periodic refresh.odd tokens createrequires a token that is itself authorised to create tokens — the bootstrap token still has to come from somewhere (typically the UI for the first one).
Where to next
Last updated