dbt project scaffold CLI

Scaffold a dbt project
with a repeatable template for teams.

dbt-forge is a Python CLI for dbt project scaffolding, architectural linting, impact analysis, cost estimation, data contracts, and health checks. It helps teams start faster and maintain quality without rebuilding the same folders, profiles, starter models, and setup files for every new project.

marouane@macbook: ~/projects
dbt-forge init analytics_core --defaults
cd analytics_core
uv sync
uv run --env-file .env dbt debug
Adapter templates
BigQuerySnowflakePostgreSQLDuckDBDatabricksRedshiftTrinoSpark
Why teams use it

Avoid hand-built setup and inconsistent dbt project layouts.

dbt-forge gives you a repeatable dbt project scaffold with adapter-aware profiles, starter models, a clear project structure, and optional tooling that can be reused across projects.

Why it exists

Stop rebuilding the same dbt project setup.

Use one command to scaffold folders, profiles, packages, pre-commit hooks, CI pipelines, and environment config that teams often add by hand.

What it generates

Start with a structure that matches dbt work.

The scaffold includes staging, intermediate, marts, tests, macros, adapter-aware profiles, and optional tooling like SQLFluff, pre-commit, and CI pipelines. Use --mesh for multi-project setups with access controls and contracts.

How it grows

Lint, analyze impact, estimate costs, generate contracts, and track changes.

Use `lint` for architectural checks, `impact` for blast radius analysis, `cost` for warehouse spend, `contracts generate` for data contracts, and `changelog generate` to track breaking changes. Plus `migrate`, `docs generate`, and `doctor`.

Supported workflows

From first scaffold to multi-project meshes, migration, and AI docs.

Use the same CLI to initialize a dbt project, migrate legacy SQL to dbt, introspect warehouse metadata, validate best practices, and keep templates updated over time.

01

Scaffold

dbt-forge init analytics_core --defaults

Scaffold a single project or a multi-project Mesh with --mesh.

02

Migrate

dbt-forge migrate ./legacy_sql/

Convert existing SQL scripts into dbt models with ref() and source().

03

Introspect

dbt-forge add source raw --from-database

Generate sources and staging models from live warehouse metadata.

04

Extend

dbt-forge add model users

Add models, tests, packages, CI, and sub-projects as the project grows.

05

Document

dbt-forge docs generate

Generate model and column descriptions using Claude, OpenAI, or Ollama.

06

Analyze

dbt-forge lint --ci && dbt-forge impact --diff

Lint architecture, measure blast radius, estimate costs, and generate contracts.

07

Maintain

dbt-forge doctor && dbt-forge status

Validate best practices, review project health, and track model changes.

Keep reading

Go deeper in the docs without bloating the homepage.

Start with Getting started, then use init, add, lint, impact, cost, and doctor to build and maintain a project. The more detailed guides live in the docs.