puxti

mcp
Security Audit
Warn
Health Warn
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Propagate dbt schema changes as small, reviewable PRs, grounded in a knowledge graph of your lineage. BYOK.

README.md

Puxti

PyPI version
PyPI downloads
Python versions
License
Docs

Puxti helps data teams propagate schema and semantic changes across dbt and the downstream stack as reviewable PRs. Each change also captures business meaning, so future changes get cheaper and safer.

pip install puxti

Python 3.12 or 3.13 required. No signup, no license key.


How it works

Puxti sits in the critical path of making data changes. Every change goes through two layers:

  • Structural layer — entities, lineage edges, and column-level relationships extracted from your dbt manifest
  • Semantic layer — business definitions and conceptual dependencies between entities, captured when changes are made

Together, these layers let Puxti reason about what a change means across the stack, not just what it touches mechanically.

Three types of change

Case Example How Puxti handles it
Column rename order_date → recorded_date Deterministic find-and-replace across all dbt models, opened as a PR
Definition redefinition gross_revenue now excludes refunds Traverses the semantic graph to find downstream entities whose meaning is now affected — annotates files for human review
Cross-system change An Airflow DAG change affects a dbt source puxti link declares the cross-system edge; puxti capture generates coordinated PRs in both repos

Requirements

  • Python 3.12 or 3.13 — dbt-duckdb is not yet compatible with Python 3.14
  • An LLM API key (BYOK) from any supported provider. Your key stays in your environment and calls your provider directly. The default is Anthropic (claude-sonnet-5-5); puxti scan on a 20-model project typically costs under $0.05. See LLM providers.
  • GitHub personal access token with repo scope (Contents + Pull requests write)
  • A dbt project with a compiled manifest.json (dbt compile or dbt run)

Puxti runs fully locally. No data or metadata leaves your machine except the calls to your LLM provider and GitHub.


Quick start

pip install puxti
cp .env.example .env      # set ANTHROPIC_API_KEY, GITHUB_TOKEN, DBT_PROJECT_DIR
puxti health              # verify the key, the manifest and GitHub access
puxti scan                # build the Knowledge Graph; nothing is written without your confirmation
puxti impact model.jaffle_shop.orders   # what depends on orders, no LLM call

Then connect a coding agent so it can query the graph: add puxti mcp serve as an MCP server and run puxti mcp init to install the agent skill. See MCP.


Commands

Command What it does
puxti scan Build the Knowledge Graph from dbt, Prisma and SQL views, including MetricFlow metrics
puxti impact Show what depends on an entity, no LLM call
puxti capture Propagate a column rename and open a PR
puxti redefine Change what an entity means and open a PR for the affected models
puxti correct Fix a wrong definition without touching code
puxti define / puxti bind Define a metric before a model implements it, then bind it
puxti link Declare a cross-system edge, such as an Airflow task feeding a dbt source
puxti describe / puxti graph Inspect the graph in the terminal or as an HTML page
puxti mcp serve / puxti mcp init Serve the graph to coding agents and teach them to use it
puxti config / puxti health Show resolved config and check connectivity
puxti purge Remove a project or the whole graph

Guides


Telemetry

Anonymous, opt-in usage analytics, off by default. Turn it on with puxti telemetry on. When enabled, each command reports its name, duration, exit status and a random install ID: no project data, no entity names, no SQL. See TELEMETRY.md.


Support the project

If Puxti saved you a migration, a ⭐ on GitHub helps other data teams find it.

The CLI asks for this once, after your first successful command in an interactive terminal. It records star_shown = true in ~/.puxti/config.toml and never shows the message again. CI runs and coding agents never see it.


Contributing

Bug reports, feature requests and questions go in GitHub issues. AI-assisted contributions are welcome. See CONTRIBUTING.md for dev setup, the project layout and what a good PR looks like.


License

Apache 2.0. See LICENSE.

Reviews (0)

No results found