dbt-osmosis
A dbt utility for managing YAML to make developing with dbt more delightful.
What it is and what it does
dbt-osmosis extends dbt development by automating schema YAML file organization, managing column-level documentation inheritance across dbt lineage, and providing ad-hoc SQL compilation and execution helpers. It ships as a CLI with a Python package interface, centered on four primary surfaces: schema YAML management (organize, document, refactor), documentation inheritance, SQL compile/run helpers, and an optional Streamlit workbench for interactive development. The tool also includes command families for generation, natural-language helpers, schema diffing, migration planning, validation, documentation analysis, SQL linting, and test suggestions.
The package depends on 13 runtime dependencies including dbt-core, dbt-common, dbt-core-interface, click, rich, sqlglot, pyyaml, and others. It targets Python 3.10–3.13 and requires dbt-core 1.8 or later with a compatible adapter. Optional extras unlock Streamlit workbench features, DuckDB adapter support, LLM-assisted synthesis, Azure AD authentication, and an experimental SQL proxy runtime. No known security vulnerabilities are recorded.
Use it for:
- Automatically organize and refactor schema YAML files across a dbt project to maintain consistent structure and naming conventions.
- Inherit column-level documentation from upstream dbt models down the lineage to reduce documentation duplication.
- Compile and run ad-hoc SQL queries within dbt context without materializing models, for testing and exploration.
- Use the Streamlit workbench for interactive SQL development and model testing during dbt development cycles.
- Analyze documentation coverage and gaps across a dbt project to identify undocumented models and columns.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
dbt-osmosis is a CLI tool and Python package that automates schema YAML management, documentation inheritance, and SQL development workflows for dbt projects.
Yes. dbt-osmosis is actively maintained, has low install friction, carries a permissive Apache-2.0 license, and solves a real pain point in dbt workflows—YAML management and documentation inheritance. It is well-suited for teams using dbt-core 1.8+ who want to reduce manual YAML maintenance and improve documentation consistency. Start with the core yaml commands; optional extras can be added later if needed.
Install
dbt-osmosis on PyPI
pip
pip install dbt-osmosisuv
uv add dbt-osmosispoetry
poetry add dbt-osmosisInstalling dbt-osmosis
Before you install
Low install friction with a pure-Python wheel. Actively maintained (released 2026-07-05, 40 days ago). Requires dbt-core 1.8+ and a compatible adapter; the package intentionally leaves dbt-core unpinned to allow newer releases, though audited support covers dbt Core 1.8.x through 1.11.x.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most development and production workflows.
Quickstart
pip install dbt-osmosis
# Configure in dbt_project.yml:
# models:
# your_project_name:
# +dbt-osmosis: "_{model}.yml"
dbt-osmosis yaml refactor --dry-run --check
Requires Python 3.10–3.13, dbt-core 1.8+, and a compatible dbt adapter in your environment.
Verify before relying
- Whether all optional extras (workbench, duckdb, openai, azure, proxy) are production-ready or experimental.
- Specific adapter compatibility matrix beyond the dbt-core 1.8+ requirement.
- Performance characteristics on large dbt projects with many models and YAML files.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<3.14,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — agate, click, dbt-common, dbt-core-interface, dbt-core, packaging, pluggy, pyyaml, rapidfuzz, rich, ruamel-yaml, sqlglot, typing-extensions |
| Maintenance | actively maintained — 40 days since the last release |
| First released | |
| Downloads | 149,686/month — #10,989 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dbt_osmosis-1.5.0-py3-none-any.whl
Keywords: dbt, osmosis, yaml
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
dbt-bigquerydbt-bigquery is a dbt adapter that enables data…
permissive · top 5,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
dbt-postgresdbt-postgres is a dbt adapter that connects dbt…
permissive · top 5,000 on PyPI
dbt-autofixdbt-autofix scans dbt projects for deprecated…
unclear · top 15,000 on PyPI
dbt-fusion-package-toolsUpgrades dbt package dependencies to versions…
unclear · top 15,000 on PyPI
dbt-sqlserverA dbt adapter that enables data transformation…
permissive · top 15,000 on PyPI
sqlfluff-templater-dbtEnables SQLFluff to lint and auto-fix dbt…
permissive · top 5,000 on PyPI
dbt-oracledbt-oracle is a dbt adapter that enables data…
permissive · top 15,000 on PyPI
dbt-redshiftdbt-redshift is an adapter that enables dbt to…
permissive · top 5,000 on PyPI
datacontract-cliA CLI tool for defining, validating, and…
permissive · top 5,000 on PyPI