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-cli

Installs the odd executable into your Python environment.

Configuration

The CLI reads two environment variables for platform addressing:

Variable
Value

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

Command
Purpose

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 as odd-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 dbt inherits odd-dbt's constraints. Postgres and Snowflake targets only; generic tests only; dbt 1.6+ only. See the odd-dbt page for full detail.

  • odd collect is for batch pushes, not continuous tail-and-push from a folder. Run it on a schedule (cron / CI) for periodic refresh.

  • odd tokens create requires 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

  • odd-dbt — the standalone dbt push adapter that odd dbt wraps.

  • Repo — sources, releases, and the latest command surface.

Last updated