Skip to main content
The fastest path uses local connectors: no server, no network. Pick either SQLite or DuckDB.
canonic setup walkthrough on the rental example

canonic setup end-to-end on the vehicle rental example.

See the Rental guide for the full walkthrough behind this recording.
Don’t have a database handy? The Guides section ships 5 ready-to-run sample projects (dbt Jaffle Shop, e-commerce, rental, SaaS analytics, Dutch railway), a good way to try the wizard before pointing it at your own data.
Point at a local .db file:

What the wizard does

1

Name your project

Give your canonic project a name.
2

Connect a source

SQLite/DuckDB file, or Postgres if you have a server.
3

Configure an LLM (optional)

Skippable: the core works without one. See Configuring an LLM.
4

Bootstrap

canonic introspects the schema and drafts your semantics.
5

First answer

The wizard runs a real query against your data and shows the result, plus how fresh it is and which definition it used.
Connecting to Postgres, or configuring an LLM provider, needs a credential. Set the corresponding environment variable before running canonic setup: canonic never stores secrets in canonic.yaml directly, only a credentials_ref like env:WAREHOUSE_PASSWORD pointing at it:
See Configuring an LLM and canonic connection for the full credential reference formats (env:, keyring:, file:).

Ask your own questions

You now have a working context layer committed to your repo:
Using your own data instead of a guide? Replace revenue with a metric that actually exists in your project. Run canonic status to see what’s available. For a query with more filters or joins than is comfortable inline, write a SemanticQuery JSON file and pass it with -f instead. See canonic query for the full flag reference.

Review what canonic drafted

It’s all an ordinary git diff:

Out of the box vs. a bit more effort

Works immediately, zero modeling:
  • Connect a database (SQLite or Postgres) and canonic introspects the live schema.
  • It auto-drafts semantics: typed columns, primary-key grains, foreign-key joins, and additive measures (sums, counts).
  • The setup wizard ends by answering a real question from your data, so you see the payoff in minutes.
  • Connect your agent over MCP and start asking.
A bit more manual effort (when you need it):
  • Canonical bindings: when two sources define “revenue” differently, you pick the authoritative one. canonic surfaces the ambiguity. You resolve it once.
  • Knowledge prose: the business “why” behind a definition. canonic drafts it, you refine it.
  • Guardrails & contracts: mandatory filters, required dimensions, final-vs-provisional rules. Added when a number needs protecting.
  • Non-additive metrics: ratios, averages, distinct counts, balances. Declared as composable definitions so they stay correct at any grain.
  • More sources: dbt / Metabase / Notion / web pages, layered on as context evidence. The connector contract is extensible, so a Confluence, Jira, or other wiki/knowledge-base connector can be added the same way.
The design principle throughout: canonic proposes, you approve. It never silently edits your context: every change is a reviewable diff.
See the end-to-end example for the full loop in one place: ingest → review → apply, what happens when your data actually changes, defining a canonical metric and guardrail by hand, and running the same loop headless in CI.