A column lineage parser and dashboarding tool
Project description
A lightweight, developer-friendly CLI tool and self-hostable dashboard for extracting and visualizing column-level lineage from your dbt projects.
Built for data teams who want transparent, flexible lineage tracking without vendor lock-in or complex enterprise tooling.
Why dbt-colibri?
- 🔍 Complete visibility: Easy UI, track how every column flows through your dbt transformations
- ⚡ Fast & lightweight: Generate reports in seconds from your existing dbt artifacts
- 🏠 Self-hosted: No cloud dependencies or external services required
Live demo of dashboard: https://demo.colibri-data.com/
Documentation site: https://www.colibri-data.com/docs
Quick Start
Installation
# Using uv (recommended)
uv add dbt-colibri
# Using pip
pip install dbt-colibri
Basic Usage
-
Run dbt to generate the required artifacts:
dbt compile dbt docs generate
-
Generate lineage report:
colibri generate -
View results: Open
dist/index.htmlin your browser
That's it! Your column lineage dashboard is ready. Note you can also use dbt run/build, to generate the manifest.json.
Documentation
CLI Commands
colibri generate
Generates column lineage reports from your dbt project.
colibri generate [OPTIONS]
Options:
--manifest-path: Path to dbt manifest.json (default:target/manifest.json)--catalog-path: Path to dbt catalog.json (default:target/catalog.json)--output-dir: Output directory (default:dist/)--help: Show help message--light: For very big dbt projects, excludes attributes like compiled SQL and returns smaller HTML file.
Output Files
colibri-manifest.json: Lineage dataindex.html: Interactive (standalone) visualization dashboard
Project Structure
your-dbt-project/
├── target/
│ ├── manifest.json # Generated by dbt
│ └── catalog.json # Generated by dbt docs generate
└── dist/ # Generated by colibri
├── index.html # Interactive dashboard
└── colibri-manifest.json
Advanced Usage
CI/CD Integration
The easiest way to deploy your static html is through github/gitlab pages (if you are on enterprise license you can do this privately)
You can find the full example workflow at docs/github_pages_example.yml.
General idea
- After every change to the production dbt code (push the
mainbranch), GitHub Actions will:- Set up Python and install dependencies with
uv. - Compile and generate docs needed for colibri.
- Run
colibri generateto build the static HTML report in thedist/folder.
- Set up Python and install dependencies with
- The
dist/folder is uploaded as an artifact and deployed natively to GitHub Pages using the officialactions/deploy-pagesaction. - The result is available at your repository’s Pages URL.
Gitlab has similar functionality. Other options are writing the file to a bucket and mount it into a web server container (nginx).
Technical Details
Requirements
-
Python: tested on versions 3.9, 3.11, 3.13
-
Supported dbt Adapters:
- Snowflake,
- BigQuery,
- Redshift,
- duckDB,
- Postgres
- Databricks (limited to SQL models)
- Athena
- Trino
- SQL Server (TSQL)
- ClickHouse
dbt Compatibility
| dbt-core Version | Status |
|---|---|
| 1.8.x | ✅ Tested |
| 1.9.x | ✅ Tested |
| 1.10.x | ✅ Tested |
Architecture
dbt-colibri leverages:
- SQLGlot for SQL parsing and column lineage extraction
- dbt artifacts (manifest.json, catalog.json) for metadata
- Static HTML/JS for zero-dependency dashboard deployment
Contributing
We welcome contributions! Raise an issue or request a feature, if you are open to contribute you can let us now in the issue.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Development Setup
# Clone the repository
git clone https://github.com/your-org/dbt-colibri.git
cd dbt-colibri
# Install development dependencies
uv sync --dev
# Run tests
pytest
# Format code
ruff format
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
This project builds upon excellent open source work:
- dbt-column-lineage-extractor - Original column lineage extraction logic
- SQLGlot - SQL parsing and transformation
- elementary-data - Inspiration for static HTML report structure
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dbt_colibri-0.2.8.tar.gz.
File metadata
- Download URL: dbt_colibri-0.2.8.tar.gz
- Upload date:
- Size: 967.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c0993c4e262a12071b37e7b955384a83df9d817cf5714a60a4eda05aeccc9fc
|
|
| MD5 |
7f3e8035c06de2c600d6d1d2411b071a
|
|
| BLAKE2b-256 |
da3bcbceef172e463e5e984568f6ea63f4e894ac93db89755b6c4d08e5935e9b
|
File details
Details for the file dbt_colibri-0.2.8-py3-none-any.whl.
File metadata
- Download URL: dbt_colibri-0.2.8-py3-none-any.whl
- Upload date:
- Size: 958.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d956ab671b04a6c0774472a2d7a8e144535d995f5ba9a13cd41c86e514d126da
|
|
| MD5 |
51dfda9fc61c95e5e84c583563e43898
|
|
| BLAKE2b-256 |
367a350f5c85d876fdcfcfb53414b1a9f9e9619beb678983248cfc620b057a62
|