Skip to main content

dbt-bouncer logo

dbt-bouncer

Configure and enforce conventions for your dbt project.


Documentation

All documentation can be found on dbt-bouncer documentation website.

Aims

dbt-bouncer aims to:

  • Provide a 100% configurable way to enforce conventions in a dbt project.
  • Be as fast as possible, running checks against dbt artifacts.
  • Be as easy as possible to use, with a simple config file written in YAML or TOML.
  • Be as flexible as possible, allowing checks to be written in Python.
  • Provide immediate feedback when run as a pre-commit hook or as part of a CI pipeline.

Features

  • Presets — start with a bundled minimal, standard or strict config, with no config file to write. Run dbt-bouncer run --preset strict.
  • Baselines — adopt strict checks on an existing project and fail only on new failures. Record today's failures with dbt-bouncer baseline, or compare against a previous set of artifacts with dbt-bouncer run --state ./base-target.
  • Discovery — browse every check with dbt-bouncer list, read one check in detail with dbt-bouncer explain check_model_names, or open the dashboard with dbt-bouncer studio.
  • Config linting — catch mistakes in your config before a run with dbt-bouncer validate.
  • AI agent integration — expose dbt-bouncer to Claude Code, Cursor and other agents over the Model Context Protocol with dbt-bouncer mcp.
  • CI-friendly output — write results as csv, gitlab, json, junit, sarif or tap, and get distinct exit codes for check failures, config errors and artifact errors.
  • Configuration anywhere — set every run option in the config file, on the command line, or through a DBT_BOUNCER_* environment variable.

See the CLI reference for all subcommands and options.

TLDR

  1. Install dbt-bouncer:

    pip install dbt-bouncer
    
  2. dbt-bouncer requires a manifest.json file. If not already present, run:

    dbt parse
    
  3. Create a dbt-bouncer.yml config file:

    dbt-bouncer init
    
  4. Run dbt-bouncer:

    $ dbt-bouncer run
    Running dbt-bouncer (X.X.X)...
    Loaded config from dbt-bouncer.yml...
    Validating conf...
    
                Parsed artifacts for
              'dbt_bouncer_test_project'
    ╭──────────────────┬─────────────────┬───────╮
    │ Artifact         │ Category        │ Count │
    ├──────────────────┼─────────────────┼───────┤
    │ manifest.json    │ Exposures       │     2 │
    │                  │ Macros          │     3 │
    │                  │ Nodes           │    12 │
    │                  │ Seeds           │     3 │
    │                  │ Semantic Models │     1 │
    │                  │ Snapshots       │     2 │
    │                  │ Sources         │     4 │
    │                  │ Tests           │    36 │
    │                  │ Unit Tests      │     3 │
    │ catalog.json     │ Nodes           │    13 │
    │                  │ Sources         │     0 │
    │ run_results.json │ Results         │    51 │
    ╰──────────────────┴─────────────────┴───────╯
    Assembled 463 checks, running...
    Running checks... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
    `dbt-bouncer` failed. Please see below for more details or run `dbt-bouncer` with the `-v` flag.
    Failed checks
    ╭────────────────────────────────────┬────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
    │ Check name                         │  Severity  │ Failure message                                                                                                          │
    ├────────────────────────────────────┼────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
    │ check_model_names:48:orders        │   ERROR    │ Models in the staging layer should always start with "stg_". - `orders` does not match the supplied regex `^stg_`.       │
    ╰────────────────────────────────────┴────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
    Done. SUCCESS=462 WARN=0 ERROR=1
    

Reporting bugs and contributing code

  • Want to report a bug or request a feature? Let us know and open an issue.
  • Want to help us build dbt-bouncer? Check out the Contributing Guide.

Code of Conduct

Everyone interacting in dbt-bouncer's codebase, issue trackers, chat rooms, and mailing lists is expected to follow the Code of Conduct.

Metadata

Release files for dbt-bouncer 4.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbt-bouncer 4.2.1
File Size Uploaded
dbt_bouncer-4.2.1.tar.gz 173.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dbt-bouncer 4.2.1
File Interpreter ABI Platform
dbt_bouncer-4.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 397.3 kB

Release files / dbt_bouncer-4.2.1.tar.gz

Download URL dbt_bouncer-4.2.1.tar.gz
Size 173.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c11b9d0b5df7685222c01d76e2ffbb3b014a314f5b970d407d9aa12d35efe84e
BLAKE2b-256 checksum
How to use checksums
35b720738d64c92eb90077d2f42da5adc35b705acd2432a63b84f46d82cf901a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / dbt_bouncer-4.2.1-py3-none-any.whl

Download URL dbt_bouncer-4.2.1-py3-none-any.whl
Size 223.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
749813be5d1fae7c41d299cf61c6d5152aee96d108c2d95610da4b992bcf9a5b
BLAKE2b-256 checksum
How to use checksums
2a463fcf096d73f26c8dc62b108444cfa3c759820f2e6ee370d5bb546f93881f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

4.2.1 This release

2 release files

4.2.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.8.0

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.31.0

2 release files

1.30.0

2 release files

1.29.0

2 release files

1.28.0

2 release files

1.25.0

2 release files

1.24.0

2 release files

1.23.0

2 release files

1.21.0

2 release files

1.20.0

2 release files

1.19.0

2 release files

1.18.0

2 release files

1.17.0

2 release files

1.16.1

2 release files

1.16.0

2 release files

1.13.0

2 release files

1.12.1

2 release files

1.12.0

2 release files

1.11.2

2 release files

1.11.1

2 release files

1.10.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.24.0

2 release files

0.23.2

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.1

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.5

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.2

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.7

2 release files

0.14.6

2 release files

0.14.5

2 release files

0.14.4

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page