Visual data model editor for dbt projects
Project description
trellis Data
trellis is a lightweight, local-first app that connects conceptual and logical data modeling with how you actually build the warehouse today—dbt-core first, with a live canvas that stays aligned to your project.
Why trellis
Typical pain
- ERDs live in separate tools and go stale on real projects.
- Transformations drift from the story the business understands.
- Stakeholders can’t see structure without wading through SQL and YAML.
- “All-in-one” warehouse designers rarely meet teams where they are (dbt, git, the modern stack).
What you get with trellis
- Small PyPI install, local web app — run it beside your dbt project; the canvas and model files (
data_model.yml, dbt YAML) stay in version control, so names, relationships, and descriptions evolve like the rest of your code—not a one-off diagram export. - One place to see entities, fields, relationships, and descriptions—tied to your repo, not a dead export.
- Conceptual view for names and meaning; Logical view for columns, types, and materialization detail—switch without losing context.
- Greenfield: sketch entities and attributes, then push structured artifacts into dbt.
- Brownfield: load what you already modeled in dbt, infer links from relationship tests, and push descriptions and tags back into the project.
What you can do
- Visualize your data model — canvas layout, conceptual vs logical views, less manual “diagram maintenance.”
- Work with your dbt project — point at
manifest.json/catalog.json, keep the diagram honest, round-trip descriptions and tags, and generate relationship tests from drawn links. - Optional — Kimball-style modeling — classify facts and dimensions, sensible default placement, and a Bus Matrix when your team thinks in stars/snowflakes; you can stay on plain entities if you prefer.
- Optional — business events & processes — capture events with 7W-style annotations and group them into processes; most useful for greenfield and dimensional workflows. Skip this entirely if it’s not your methodology.
Getting started
Install
pip install trellis-datamodel
# or: uv pip install trellis-datamodel
Run next to your dbt project
cd /path/to/your/dbt-projecttrellis init— createstrellis.yml(point it at your dbt paths and artifacts).trellis run— opens http://localhost:8089 (usetrellis run --helpfor port and config path).
Generate manifest.json and catalog.json with dbt docs generate in your dbt project so trellis can load models; without them, the UI may start but show no dbt-backed entities.
Install from source or hack on the app: see CONTRIBUTING.md.
Examples & walkthroughs
Short video walkthroughs:
| Getting started | Init, settings in the UI, conceptual vs logical, relationships, push to dbt. |
| dbt integration | Link a project, mock data, bind entities to models, stay in sync with artifacts. |
| Documenting business processes | Optional / experimental: events, 7Ws, processes—enable in config or UI first. |
More narrative walkthroughs and context: full tutorial · general information.
Configuration
After trellis init, edit trellis.yml. Annotated options and defaults live in trellis.yml.example (paths, modeling style, optional lineage/exposures, entity guidance, prefixes, etc.).
You can also open /config in the app to edit settings in the browser (validated saves; see example file for field meanings).
Vision
trellis is built and tested around dbt-core today. The longer-term idea is to stay tool-agnostic—concepts outlive any one framework. Possible directions include dbt Fusion, Pydantic-flavored exports, or adapters for tools like SQLMesh or Bruin where it makes sense. For now, the focus is a great experience with dbt-core.
Contributing
Contributions welcome. Workflow, local dev, tests, and packaging: CONTRIBUTING.md. All contributors sign the CLA once per GitHub account—see CLA.md and the bot on your PR.
Acknowledgments
- dbt-colibri for lineage-related capabilities that support trellis visualization.
License
trellis Datamodel is licensed under the GNU Affero General Public License v3.0. See NOTICE for a short summary of copyright and licensing.
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 trellis_datamodel-0.15.0.tar.gz.
File metadata
- Download URL: trellis_datamodel-0.15.0.tar.gz
- Upload date:
- Size: 953.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83a40698846e07e1ec05c5c223d0954480f86986a96113bdfa386b30dd35fdc8
|
|
| MD5 |
d1f501455ba0348e03caf97c4195db58
|
|
| BLAKE2b-256 |
4ed45929bb0ddec27e2aa9855070e75a6a2bc21fb1643598382f0994f2c4c929
|
Provenance
The following attestation bundles were made for trellis_datamodel-0.15.0.tar.gz:
Publisher:
publish.yml on timhiebenthal/trellis-datamodel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trellis_datamodel-0.15.0.tar.gz -
Subject digest:
83a40698846e07e1ec05c5c223d0954480f86986a96113bdfa386b30dd35fdc8 - Sigstore transparency entry: 1397299988
- Sigstore integration time:
-
Permalink:
timhiebenthal/trellis-datamodel@35d41fe6591be4acc6f7b485642c40f30f02ca38 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/timhiebenthal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@35d41fe6591be4acc6f7b485642c40f30f02ca38 -
Trigger Event:
release
-
Statement type:
File details
Details for the file trellis_datamodel-0.15.0-py3-none-any.whl.
File metadata
- Download URL: trellis_datamodel-0.15.0-py3-none-any.whl
- Upload date:
- Size: 995.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f53b6b4426e579fbfcd455c9b7408c3d97f6f0026fd8ad6f725441956d68ed6
|
|
| MD5 |
59cdd9a28bf918b137f19f514069082c
|
|
| BLAKE2b-256 |
3708e0959e306502463ee2ed1f8ae174c077a0e59f1b2c58e3e134fb3ed4801e
|
Provenance
The following attestation bundles were made for trellis_datamodel-0.15.0-py3-none-any.whl:
Publisher:
publish.yml on timhiebenthal/trellis-datamodel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trellis_datamodel-0.15.0-py3-none-any.whl -
Subject digest:
2f53b6b4426e579fbfcd455c9b7408c3d97f6f0026fd8ad6f725441956d68ed6 - Sigstore transparency entry: 1397300019
- Sigstore integration time:
-
Permalink:
timhiebenthal/trellis-datamodel@35d41fe6591be4acc6f7b485642c40f30f02ca38 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/timhiebenthal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@35d41fe6591be4acc6f7b485642c40f30f02ca38 -
Trigger Event:
release
-
Statement type: