dbt-semantic-interfaces
The shared semantic layer definitions that dbt-core and MetricFlow use
Decision gist · record as of 2026-08-14
Yes, if you are building integrations with dbt-core or MetricFlow that need to validate semantic objects. No, if you are a typical dbt user—you will get this as a transitive dependency. The aging maintenance status (185 days since last release) is not a blocker for a stable interface library, but monitor for compatibility issues with newer dbt or MetricFlow versions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; no compiled dependencies.
- Low friction install with a pure-Python wheel and stable dependencies.
- Maintenance status is aging—last release was 185 days ago—so expect slower response to issues, though the package remains functional for its core use case.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows use in most commercial and open-source projects without significant restriction.
last release 2026-02-10 (185 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 26,339,550 downloads/mo, #883 on PyPI
Alternatives
Verify before relying
pip install dbt-semantic-interfaces
from dbt_semantic_interfaces.protocols import SemanticModel
from jsonschema import validate
# Use the shared semantic classes and validation in your dbt or MetricFlow integration- Whether this package is intended for direct end-user installation or primarily as a transitive dependency of dbt-core and MetricFlow.
- What specific semantic protocols and validation rules are exposed in the public API beyond the description.
- Whether there are breaking changes between versions that would affect downstream consumers.
What it is and what it does
dbt-semantic-interfaces is a shared library that centralizes semantic class definitions, validation logic, and test fixtures used by both dbt-core and MetricFlow. It defines protocols for semantic objects—such as metrics, dimensions, and measures—that both projects must implement consistently. The package uses Pydantic for validation and Jinja2 for templating, ensuring that objects comply with expected structure and constraints before being processed by either project.
The package is designed to reduce code duplication and maintain a single source of truth for the semantic layer contract between dbt-core and MetricFlow. It is primarily consumed as a dependency by those two projects rather than as a standalone tool, but can be imported directly to validate or work with semantic objects in custom integrations.
Use it for
- Validate semantic model definitions (metrics, dimensions, measures) in dbt or MetricFlow configurations.
- Build custom integrations that need to parse and validate dbt semantic layer objects consistently.
- Ensure semantic object compliance in CI/CD pipelines before passing to dbt-core or MetricFlow.
- Extend or customize semantic validation rules by importing and subclassing the shared protocols.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building integrations with dbt-core or MetricFlow that need to validate semantic objects.
No, if you are a typical dbt user—you will get this as a transitive dependency. The aging maintenance status (185 days since last release) is not a blocker for a stable interface library, but monitor for compatibility issues with newer dbt or MetricFlow versions.
Install
dbt-semantic-interfaces on PyPI
Before you install
Low friction install with a pure-Python wheel and stable dependencies. Maintenance status is aging—last release was 185 days ago—so expect slower response to issues, though the package remains functional for its core use case.
Requires Python 3.8 or later; no compiled dependencies.
License in practice
Apache-2.0 permissive license allows use in most commercial and open-source projects without significant restriction.
Quickstart
pip install dbt-semantic-interfaces
from dbt_semantic_interfaces.protocols import SemanticModel
from jsonschema import validate
# Use the shared semantic classes and validation in your dbt or MetricFlow integration
Verify before relying
- Whether this package is intended for direct end-user installation or primarily as a transitive dependency of dbt-core and MetricFlow.
- What specific semantic protocols and validation rules are exposed in the public API beyond the description.
- Whether there are breaking changes between versions that would affect downstream consumers.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 9 packagesclickimportlib-metadatajinja2jsonschemamore-itertoolspydanticpython-dateutilpyyamltyping-extensions |
| Maintenance | Aging 185 days since the last release |
| First released | |
| Downloads | 26,339,550 / month, #883 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: dbt_semantic_interfaces-0.10.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dbt semantic layer interfaces”
- dbt-semantic-interfacesProvides shared semantic class definitions, validation protocols, and…
- cube_dbtIntegrates dbt models with Cube's semantic layer by parsing dbt…
- dbt-metricflowBundles dbt-core and MetricFlow with compatible versioning, allowing…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
Bundles dbt-core and MetricFlow with compatible versioning, allowing you to execute semantic layer commands through a single unified installation instead of managing separate packages.
A Python client library for querying dbt's Semantic Layer via REST APIs, supporting both synchronous and asynchronous workflows with results returned as PyArrow tables.
MetricFlow compiles metric definitions into reusable SQL queries, handling multi-hop joins, complex metric types, and aggregations across different time granularities.
Integrates dbt models with Cube's semantic layer by parsing dbt manifests and converting model definitions into Cube-compatible data model specifications.
However, the aging maintenance status (296 days since last release) means you should verify compatibility with your current dbt and Cube versions before relying on it…
Provides shared utilities and common code used by dbt-core and dbt adapter implementations to avoid duplication across the dbt ecosystem.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also dbt-loom · dbt-core-interface · dbt-score · dbt-osmosis