Skip to content

Let your agentbuild your analytics.

Explore, Transform, Maintain.The agent-native analytics engine.

Point it at your data. Dex learns the landscape, builds your models and metrics, and tells you exactly what to fix when anything drifts.

npx skills add exmergo/dex

Codex, Gemini CLI, Cursor, and others, via AGENTS.md.

Works withClaude CodeOpenAI CodexCursorand more
dex: thelook_ecommerce
ranked inventory
order_items181K rows
inventory_items490K rows
users100K rows
products29K rows
PIIusers.email flagged PII (email) · never surfaced
SELECT product_id, COUNT(*) AS units_sold, SUM(sale_price) AS revenue FROM order_items JOIN inventory_items ON …
needs confirmation · est. 49.3 MB scanned
✓ allowed · 10 rows returned
Draft map cached to .dex/ · fully read-only
/dex:explore what's in the thelook_ecommerce warehouse?

Analytics loved by builders at

CVS HealthMetaChimeElectronic ArtsRokuTeslaHelloFreshGrouponCitibankNBCUniversalMercedes-BenzSalesforceDomino's
CVS HealthMetaChimeElectronic ArtsRokuTeslaHelloFreshGrouponCitibankNBCUniversalMercedes-BenzSalesforceDomino's
CVS HealthMetaChimeElectronic ArtsRokuTeslaHelloFreshGrouponCitibankNBCUniversalMercedes-BenzSalesforceDomino's
CVS HealthMetaChimeElectronic ArtsRokuTeslaHelloFreshGrouponCitibankNBCUniversalMercedes-BenzSalesforceDomino's

“Most deadly errors arise from obsolete assumptions.”

Frank Herbert, Children of Dune

Dex Semantics

Let your agent build analytics with 25% fewer errors.

ADE-bench · Sonnet 5.5 · 20 → 15 failures

Thanks to data that explains itself to your coding agent.

The imperial accounts / 01

The Emperor wants his spice report.

Let your agent build your analytics.

You → your coding agent

“Build analytics for spice production and revenue on Arrakis.”

Build the models & record the meaning

Production
Spice extracted
Spice sold
Spice shipped
Revenue
Sold × agreed price

The imperial accounts / 02

The report says spice production doubled overnight.

The report changed overnight (but the desert didn’t)

100 tReport: 200 tReality: still 100 tYesterdayThis morning

The imperial accounts / 03

The join broke silently!

Same shipment, but the new API sends two rows instead of one.

S01+S01

Revenue: 140k → 280k credits.

My Duke, those extra 100 tonnes exist only in the report.

The imperial accounts / 04

Dex embeds semantic meaning explicitly.

Declare the rules → Check the results → Keep the context

The declaration lives with your models

One row per shipment.

  • Production counts harvests.
  • Revenue uses the agreed price.

Stored as code and read next session.

Dex checks the built data

S01 and S02: expected 1 row, found 2.

Duplicate shipments flagged.

The imperial accounts / 05

Without Dex: 200 t

With Dex: 100 t

Proposed fix: tally the lines first, then count harvests separately.

01 / 05

The meaning must flow.

  1. Tests

  2. Semantic models

    dbt Semantic Layer logoApache Ossie logoSLayer logoCube logoSnowflake Semantic Views logoDatabricks Metric Views logo
  3. Next agent session

Illustrated workflow · synthetic Arrakis data

Analytics Engineering is ETM

ETL ends at Load. Dex is built for what comes after.

  1. 1/dex:explore

    Explore

    Make sense of your data.

    Stop running SELECT * LIMIT 10 by hand. Dex intelligently profiles columns, infers relationships, and builds a comprehensive draft map of your tables, cached locally. PII is automatically flagged, never surfaced.

  2. 2/dex:transform

    Transform

    Build models and semantic layers.

    Ask for a metric, and Dex writes the reviewable diffs. It authors dependency-aware dbt SQL models, schema tests, and the semantic layer on top, in MetricFlow, Apache Ossie, SLayer, Cube, Snowflake Semantic Views, or Databricks Metric Views. Validate against dev targets with built-in cost guards before anything runs.

  3. 3/dex:maintain

    Maintain

    Detect drift before it breaks.

    Sources change. Business definitions drift. Run /dex:maintain against your .dex/ snapshot to instantly detect schema, grain, and semantic drift. Dex proposes the exact edits needed to keep your project correct.

Your raw data stays where it lives.

Dex is read-only against your data and never routes it through Exmergo. Security is architectural, not a setting.

S-1

Aggregates leave, rows do not.

Dex is read-only, and understanding is built from SQL aggregates: schema, statistics, and bounded summaries cached locally in .dex/. Raw rows and flagged PII are never copied out. Exactly what crosses is written down in the Dex privacy policy.

S-2

Your agent, your keys.

You run Dex through your own coding agent, on your own API key or subscription. Exmergo never sits between your data and a model.

S-3

Credentials never reach the LLM.

Dex connects with the credentials you already use (for example, BigQuery Application Default Credentials). Those credentials, and your raw data, never enter the model's context.

Anyone building analytics is stuck between a rock and a hard place.

Two meters run on every query an agent writes. Dex is made to hold both of them down.

Meter Abilled per byte scanned

The data platform bills every scan

Snowflake and Databricks are some of the most expensive consumption-billed software on the planet. An agent left to explore freely explores on your credit card.

Meter Bbilled per token generated

The agent bills every token

Anthropic and OpenAI bill by the token, and nothing burns through a context window faster than data analytics. One unguarded schema dump can cost more than the query it was meant to plan.

Open source · Apache 2.0

Dex is made for anyone paying both meters.

  • Dex forces the agent to clear a cost guard before it runs an exploration query or a transformation.
  • Dex gives the agent a set of tooling that makes it hard to get burned when transforming data.

Both come from tight control scripts that the SKILL.md files point the agent at, on every /dex:explore, /dex:transform and /dex:maintain.

The guardrails are not a tax on quality.

80%
on ADE-bench with Claude Sonnet 5.5
2.5x
cheaper to run Claude Sonnet 5 than Claude Fable 5
57.3%
top published Sonnet 5 result at k=1 on Snowflake’s 103-task data-eng-bench

Built for the production stack.

Every scan is estimated with a dry-run and confirmed before it spends, then recorded in a local ledger.

Single-player is free. Your data workflow is Enterprise.

Dex Enterprise is the harness that brings Scope, Build, and Fix to your whole team, deployed on your infrastructure, with every change reviewed before it merges.

DexOpen · Free · Apache 2.0
  • Full ETM loop (explore, transform, maintain)
  • Manual, on-demand drift detection
Dex Enterprise

Everything in free, plus:

  • Scope: analytics goals become scoping reports
  • Build: tickets become draft pull requests
  • Fix: scheduled drift checks with draft fixes
  • Deployed on your infrastructure, never merges on its own

Frequently asked questions

Q01What is Dex?

Dex is an open-source, agent-native analytics engine that lets Claude Code and other coding agents build your analytics. It explores your data, whether it lives in a data warehouse, a lakehouse, or a database; authors dbt models and semantic layers; and detects schema, volume, grain, and semantic drift. Your repository is the source of truth and every change is a reviewable diff.

Q02How do I install Dex?

In Claude Code, run the commands one at a time: /plugin marketplace add exmergo/exmergo-agent-plugins, then /plugin install dex@exmergo. The skills appear as /dex:explore, /dex:transform, and /dex:maintain. For other agents such as Codex, Gemini CLI, and Cursor, run npx skills add exmergo/dex.

Q03What data can Dex connect to?

Dex connects to data warehouses, lakehouses, databases, and SQL engines: BigQuery, Snowflake, Databricks, Redshift, ClickHouse (both ClickHouse Cloud and self-hosted), PostgreSQL, Trino, and DuckDB. Every connector has a cost guard in its own billing unit: bytes scanned on BigQuery, compute time on Snowflake, DBUs on Databricks, RPU-hours on Redshift, compute seconds on ClickHouse, a load limit on PostgreSQL, and cluster-seconds on Trino. DuckDB is the zero-credential on-ramp: point Dex at a local file and nothing else is needed.

Q04Does Dex support Apache Ossie?

Yes, natively. Apache Ossie (incubating) is the vendor-neutral standard for exchanging semantic metadata, and Dex reads it as a first-class semantic layer. Install the extra with pip install 'exmergo-dex-core[ossie]', set semantic.vendor: ossie in .dex/config.yml, and list your .ossie.yaml, .ossie.yml, or .ossie.json documents under semantic.ossie.files. Dex reads the datasets, fields, relationships, and metrics they declare into the same catalog /dex:explore has always returned, authors documents as reviewable diffs, and detects drift against them.

Q05Does Dex support SLayer?

Yes, natively. SLayer by Motley keeps a semantic layer as YAML model files, and Dex reads it as a first-class semantic layer. Install the extra with pip install 'exmergo-dex-core[slayer]', set semantic.vendor: slayer in .dex/config.yml, point semantic.slayer.base_dir at SLayer's storage root, and list your model files under semantic.slayer.models. Dex validates every file with SLayer's own model class from one pinned release, authors models as reviewable diffs, and detects drift against them. For a governed query, SLayer renders the SQL as a dry run and Dex runs it under its own cost guard and PII gate, so SLayer never opens a warehouse connection.

Q06Does Dex support Cube, Snowflake Semantic Views, and Databricks Metric Views?

Yes, natively, each in its own format with no conversion. Cube cubes and views, Snowflake Semantic Views, and Databricks Metric Views are read from the YAML files in your repository: install exmergo-dex-core[cube], exmergo-dex-core[semantic-views], or exmergo-dex-core[metric-views], set semantic.vendor to cube, snowflake, or databricks in .dex/config.yml, and list the files under semantic.cube.files, semantic.snowflake.files, or semantic.databricks.files. Dex validates every file against its port of the vendor's rules, authors files as reviewable diffs, derives a cube, logical table, or Metric View from a declared dbt mart, and detects drift against the warehouse. It never deploys a Semantic View or Metric View for you. On Cube, a governed query is rendered by your Cube server and run by Dex under its own cost guard and PII gate.

Q07Do I need a dbt project to use Dex?

No. Dex reads Apache Ossie documents, SLayer and Cube model files, Snowflake Semantic Views, and Databricks Metric Views natively, so a repository with no dbt project and no MetricFlow anywhere in the path still gets a governed semantic layer: set semantic.vendor to ossie, slayer, cube, snowflake, or databricks in .dex/config.yml and Dex explores, authors, and drift-checks against those files. A repository that keeps dbt for its models and declares its semantics in one of those formats beside them gets both.

Q08How does Dex author Apache Ossie documents?

Through semantic ossie define, update, and plan, applied with transform apply like every other Dex change. Each prospective document is validated against a content-pinned copy of the Ossie JSON Schema and then against Dex's own integrity rules, unique names, resolvable relationship endpoints, and matching key arity, before a plan is stored. Writes are confined to the exact paths in semantic.ossie.files, applied edits are byte-for-byte so your comments, quoting, and ordering survive, and a file that changed after planning refuses the whole edit.

Q09Is Dex safe to run against production data?

Yes. Dex is read-only against your data and writes only reviewable diffs to your repo. Understanding is built from SQL aggregates, not raw rows, so credentials and raw data never enter the model context. Every scan is estimated with a dry-run and confirmed before it spends, capped by a per-connector cost guard.

Q10What is free and what is Enterprise?

Dex is free and open source under Apache 2.0, including the full Explore, Transform, Maintain loop with manual drift detection. Dex Enterprise is the harness that runs that loop for a whole team, deployed on your infrastructure: it scopes analytics goals, builds dbt changes from tickets, and fixes drift on a schedule, in your own CI, with every change opened as a draft pull request.

Q11How does Dex control cost?

Agentic analytics is billed twice: the data platform charges for every scan, and the model charges for every token. Dex forces the agent to clear a cost guard before it runs an exploration query or a transformation, and it routes the agent through tight control scripts on /dex:explore, /dex:transform, and /dex:maintain rather than letting it dump schemas into context. On dbt Labs' ADE-bench, Dex with Claude Sonnet 5.5 resolves 80% of tasks, and in the July model sweep Dex with Claude Sonnet 5 outscored the same loop on Claude Fable 5 for about 2.5x less. On Snowflake's data-eng-bench, Dex with Claude Sonnet 5 is the top published Sonnet 5 result at 57.3% and used 32% fewer tokens per trial than the identical harness on Snowflake's own published board.

Install

Ready to turn maintenance into an automated habit?

Install the open-source engine today.

npx skills add exmergo/dex

Codex, Gemini CLI, Cursor, and others, via AGENTS.md.