puxti
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.
Propagate dbt schema changes as small, reviewable PRs, grounded in a knowledge graph of your lineage. BYOK.
Puxti
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 scanon a 20-model project typically costs under $0.05. See LLM providers. - GitHub personal access token with
reposcope (Contents + Pull requests write) - A dbt project with a compiled
manifest.json(dbt compileordbt 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
- Configuration: environment variables, LLM providers, Postgres storage,
.puxti.ymlworkspaces - Commands: every command with examples and options
- Metrics: MetricFlow import,
defineandbind - MCP: Claude Code and Cursor setup, the tools, the agent skill
- Known limitations
- Architecture: how puxti works inside
- getpuxti.com/docs
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)
Sign in to leave a review.
Leave a reviewNo results found