Skip to main content

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 for dbt build with enhanced output and performance
  • dt run - Drop-in replacement for dbt run with 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

🧪 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:

  • Typer for the CLI framework
  • SQLGlot for SQL parsing and optimization
  • Jinja2 for template processing
  • yamlium for YAML manipulation and generation
  • uv for dependency management

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbt_toolbox-0.2.1.tar.gz (6.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbt_toolbox-0.2.1-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

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

Hashes for dbt_toolbox-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4c569c2867cdac9d1617df299ef1852987140ae2f9c7a04bdcbc87a3bd4dde74
MD5 438a85bbb9ea1f6127b387816196f06b
BLAKE2b-256 d58d28535923434c26d629a388ba368f0f6806cee7b19cc4e87573bb0a95b211

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_toolbox-0.2.1.tar.gz:

Publisher: release_publish.yml on erikmunkby/dbt-toolbox

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for dbt_toolbox-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 867b093f0095c0cbfea5b1bc393bd54077cff8530d7ef37a7df49cf5ab390fc2
MD5 5aaf9a352414289189a992522915100d
BLAKE2b-256 2d83f0e3e8f8e3187fdd295ab5e132189621d10ebb7c362df02759eb228a123c

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page