Productivity, warehous cost and QoL improvements for your dbt development
Project description
dbt-toolbox
A powerful CLI toolkit that supercharges your dbt development workflow with intelligent caching, dependency analysis, and enhanced documentation generation.
🚀 What Makes dbt-toolbox Amazing
Smart Caching & Performance
- Lightning-fast model parsing with intelligent cache invalidation
- Persistent Jinja environment caching for instant macro resolution
- Dependency graph caching for rapid upstream/downstream analysis
Enhanced dbt Commands
dt build- Drop-in replacement fordbt buildwith enhanced output and performancedt run- Drop-in replacement fordbt runwith smart execution and caching- Target-specific options for environment control
- Intelligent pre/post processing hooks
Intelligent Documentation
dt docs- YAML documentation generator with smart column inheritance- Automatically inherits descriptions from upstream models and macros
- Tracks column changes (additions, removals, reordering) between runs
- One-click clipboard integration
Dependency Intelligence
- Lightweight DAG implementation for model and macro relationships
- Efficient upstream/downstream traversal
- Node type tracking and statistics
- Perfect for impact analysis and refactoring
Configuration
- Multi-source settings hierarchy (env vars > TOML > dbt profiles > defaults)
- Dynamic dbt profile and target integration
- Source tracking for all configuration values
🛠️ Installation
# Using uv
uv add dbt-toolbox
# Or install with pip
pip install dbt-toolbox
⚡ Quick Start
# Initialize and explore your project
dt settings # View all configuration
# Enhanced dbt commands with caching
dt build # Build with intelligent caching
dt run --model +my_model+ # Support for most dbt selection syntax
dt build --target prod # Build against production target
# Analyze cache and dependencies
dt analyze # Analyze all models
dt analyze --model customers+ # Analyze specific model selection
# Generate documentation YAML
dt docs --model customers # Generate docs for specific model
dt docs -m orders --clipboard # Copy to clipboard
📋 Core Commands
| Command | Description |
|---|---|
dt build |
Enhanced dbt build with caching and better output |
dt run |
Enhanced dbt run with intelligent execution and caching |
dt docs |
Generate YAML documentation with smart inheritance |
dt analyze |
Analyze cache state and model dependencies without execution |
dt clean |
Clear all cached data with detailed reporting |
dt settings |
Inspect configuration from all sources |
🏗️ Key Features
Intelligent Caching System
dbt-toolbox caches parsed models, macros, and Jinja environments in .dbt_toolbox/ directory with smart invalidation based on file changes and project configuration.
Dependency Graph Analysis
Lightweight DAG implementation provides efficient model relationship tracking:
- Upstream/downstream dependency resolution
- Node type classification (models, macros, sources)
- Impact analysis for refactoring
Enhanced CLI Experience
- Colored output with progress indicators
- Global options that work across all commands
- Command shadowing for seamless dbt integration
- Comprehensive error handling and reporting
Smart Documentation Generation
The dt docs command intelligently inherits column descriptions from:
- Upstream model columns with matching names
- Macro parameters that reference the columns
- Existing schema.yml documentation
📚 Documentation
- CLI Reference - Detailed command documentation and examples
- Contributing Guide - Development setup and guidelines
🧪 Testing Integration
dbt-toolbox includes a testing module for your dbt projects:
from dbt_toolbox.testing import check_column_documentation
def test_model_documentation():
"""Ensure all model columns are documented."""
result = check_column_documentation()
if result:
pytest.fail(result)
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for development setup, coding standards, and contribution guidelines.
📄 License
MIT License - Feel free to use this project in your own work.
🙏 Acknowledgments
Built with modern Python tooling:
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_toolbox-0.2.1.tar.gz.
File metadata
- Download URL: dbt_toolbox-0.2.1.tar.gz
- Upload date:
- Size: 6.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c569c2867cdac9d1617df299ef1852987140ae2f9c7a04bdcbc87a3bd4dde74
|
|
| MD5 |
438a85bbb9ea1f6127b387816196f06b
|
|
| BLAKE2b-256 |
d58d28535923434c26d629a388ba368f0f6806cee7b19cc4e87573bb0a95b211
|
Provenance
The following attestation bundles were made for dbt_toolbox-0.2.1.tar.gz:
Publisher:
release_publish.yml on erikmunkby/dbt-toolbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dbt_toolbox-0.2.1.tar.gz -
Subject digest:
4c569c2867cdac9d1617df299ef1852987140ae2f9c7a04bdcbc87a3bd4dde74 - Sigstore transparency entry: 377451230
- Sigstore integration time:
-
Permalink:
erikmunkby/dbt-toolbox@9fdda561ec7cadc7642108ecca7d2150c58f67c1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/erikmunkby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_publish.yml@9fdda561ec7cadc7642108ecca7d2150c58f67c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dbt_toolbox-0.2.1-py3-none-any.whl.
File metadata
- Download URL: dbt_toolbox-0.2.1-py3-none-any.whl
- Upload date:
- Size: 48.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
867b093f0095c0cbfea5b1bc393bd54077cff8530d7ef37a7df49cf5ab390fc2
|
|
| MD5 |
5aaf9a352414289189a992522915100d
|
|
| BLAKE2b-256 |
2d83f0e3e8f8e3187fdd295ab5e132189621d10ebb7c362df02759eb228a123c
|
Provenance
The following attestation bundles were made for dbt_toolbox-0.2.1-py3-none-any.whl:
Publisher:
release_publish.yml on erikmunkby/dbt-toolbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dbt_toolbox-0.2.1-py3-none-any.whl -
Subject digest:
867b093f0095c0cbfea5b1bc393bd54077cff8530d7ef37a7df49cf5ab390fc2 - Sigstore transparency entry: 377451265
- Sigstore integration time:
-
Permalink:
erikmunkby/dbt-toolbox@9fdda561ec7cadc7642108ecca7d2150c58f67c1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/erikmunkby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_publish.yml@9fdda561ec7cadc7642108ecca7d2150c58f67c1 -
Trigger Event:
push
-
Statement type: