Install the CLI
- Docker
- Build from source
The image runs DuckDB, which is what the walkthrough below uses so it needs no warehouse. If a
type: duckdb connection fails with a driver error, your image predates DuckDB support — pull :latest.A public download channel for the binaries is on its way. Until it lands, the Docker image is the artifact available to everyone — get in touch if neither path works for you.
Sign in
Authentication is only needed once you want to save suites to your workspace or run them on our backend. A purely local comparison needs no credentials at all.auth whoami prints the workspace your credential resolves to. Get into the habit of reading that line — it is the only thing that decides which workspace a command writes to.
Describe what to compare
A suite is a YAML file holding the connections and the comparisons. Save this asquickstart.yaml:
quickstart.yaml
bisection block is tuned small here so the drill-down has something to do on a thousand rows. On real tables the defaults are the right starting point.
Validate before you run
--db to also connect, run every query through the database’s planner, and report table sizes, indexes and a suggested key column:
--db does not run the suite’s setup: SQL, so for this walkthrough it will report that app_orders does not exist. That is expected — the tables are created by setup when the comparison runs.Compare
The command exits
1. For a comparison, a non-zero exit means “differences found”, which is a result rather than a failure. Exit codes has the full list.--no-report keeps the run entirely local. Without it, a run reports its results to your workspace whenever it can find a credential, so they show up in the app alongside backend runs.
Locate the difference
Get the rows
Every mismatch leaf comes with ready-to-run SQL for both sides:Point it at your own databases
Swap theconnections: block for the real thing, drop the setup: block, and name your tables. Nothing else changes:
suite.yaml
- Keep the credentials out of the file. Move the
connections:block to a git-ignored.connections.yaml— the CLI picks it up automatically. See keep credentials out of the suite. - Run
check-config --db. It confirms every connection and query, and warns if your key column is not indexed — which is the difference between a drill that takes seconds and one that takes minutes.
Next steps
Authoring suites
Datasets, column selection, key columns, and the validation loop in full.
Time windows and cutoffs
Comparing two live systems? Read this before you trust a mismatch.
Workspace suites
Save the suite, run it on our backend, put it on a schedule.
CLI reference
Every command, argument and flag, generated from the CLI itself.