glyf
Open Source Visualization build tool to data pipeline.
glyf turns analytical metadata and SQL-first visualisation files into
versioned chart artifacts and static dashboards. Its first integration reads dbt
project artifacts, resolves dbt ref() and source() calls from
target/manifest.json, executes chart SQL with DuckDB, renders PNG/SVG charts
with Altair, and exports publishable dashboard sites.
glyf is artifact-driven, not dbt-runtime-driven. Run dbt first, then run
glyf against the resulting artifacts and relations.
Installation
Install from a GitHub Release wheel:
uv tool install \
https://github.com/glyf-data/glyf/releases/download/v0.2.0/glyf-0.2.0-<platform>.whl
Replace <platform> with the wheel asset that matches your OS and architecture.
PyPI publishing is intentionally deferred for now.
When developing from this repository, install dependencies with uv:
uv sync
For the included dbt examples, dev dependencies include dbt-core and
dbt-duckdb.
CI Run
This project uses Taskfile to run the same checks locally and in GitHub Actions. Install Task before running these commands:
brew install go-task
task --version
Run the full CI pipeline:
task ci
Run CI with a specific Python version:
task ci PYTHON_VERSION=3.12
Run individual CI steps:
task install
task test
task coverage
task build
task dashboard-ci
task test runs pytest with coverage and writes coverage.xml; CI uploads that
report to Codecov for the README coverage badge.
Copy-Paste Quickstart
In a dbt project:
glyf init
dbt build
glyf doctor
glyf build
glyf serve
For the included example project:
uv sync
cd examples/simple_dbt
uv run dbt seed --profiles-dir . --full-refresh --no-partial-parse
uv run dbt run --profiles-dir .
uv run dbt compile --profiles-dir .
uv run glyf build
uv run glyf serve
This creates the example DuckDB database at
examples/simple_dbt/target/simple_dbt.duckdb.
Open:
examples/simple_dbt/target/glyf/site/index.html
CLI
High-level workflow commands:
uv run glyf init
uv run glyf doctor
uv run glyf build
uv run glyf serve
Low-level control commands:
uv run glyf list
uv run glyf validate
uv run glyf render
uv run glyf dashboard
uv run glyf export --clean --zip
Point at another project:
uv run glyf build --project-dir examples/sales_dashboard
Preview a generated dashboard locally:
uv run glyf build --project-dir examples/simple_dbt
uv run glyf serve --project-dir examples/simple_dbt
uv run glyf serve --project-dir examples/simple_dbt --host 127.0.0.1 --port 8080
Example Output
Generated files are written under target/glyf/:
target/glyf/
compiled/
charts/
dashboards/
site/
index.html
The publish-ready site lives in:
target/glyf/site/
Examples
See examples/README.md.
examples/simple_dbtexamples/sales_dashboardexamples/product_analyticsexamples/finance_metrics
Documentation
The Docusaurus docs site source lives in docs-site. It is intended to be the primary documentation experience with a landing page, quickstart, examples gallery, command reference, integrations, AI context, and community resources.
Run it locally after installing Node.js:
cd docs-site
npm install
npm start
Existing Markdown docs are still available while the site is being introduced:
- Getting started
- Configuration
- Visualisation syntax
- Dashboard YAML
- dbt integration
- CI/CD
- Release process
- Troubleshooting
Roadmap
See ROADMAP.md for the detailed future roadmap.
Near-term themes:
- richer chart syntax while keeping the parser small
- more dashboard layouts
- better error messages for dbt adapter-specific execution failures
- snapshot tests for generated HTML
- optional publish helpers for common static hosts
- local
serveandwatchworkflows after the release baseline is stable
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 glyf_core-0.3.0.tar.gz.
File metadata
- Download URL: glyf_core-0.3.0.tar.gz
- Upload date:
- Size: 206.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b7b52822b075c1673759bca4e1a2964cfc070fbb5d6d625896d144cecb32e53
|
|
| MD5 |
c673e9fab6a025c4d2f0311dfa3d087f
|
|
| BLAKE2b-256 |
c07e344a7246ae017b0bbec07aa7bcbe33b70830b466dd837f293d414612d554
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0.tar.gz:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0.tar.gz -
Subject digest:
8b7b52822b075c1673759bca4e1a2964cfc070fbb5d6d625896d144cecb32e53 - Sigstore transparency entry: 2609357310
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file glyf_core-0.3.0-cp311-abi3-win_amd64.whl.
File metadata
- Download URL: glyf_core-0.3.0-cp311-abi3-win_amd64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.11+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef7128c4142e739be5b9f18226f6cfb34f638a1a8442aa72a5db490013758dbe
|
|
| MD5 |
566b288a8286cbc12301965af15164cf
|
|
| BLAKE2b-256 |
606648fd1f619c54996acfd780f2f53363c2a8df762af334a94defbe6a9f74b3
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0-cp311-abi3-win_amd64.whl:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0-cp311-abi3-win_amd64.whl -
Subject digest:
ef7128c4142e739be5b9f18226f6cfb34f638a1a8442aa72a5db490013758dbe - Sigstore transparency entry: 2609357626
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file glyf_core-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: glyf_core-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f120f60999751904ba2274df695f61c393ac2a571ee6d4e72d550451ea7b4c4c
|
|
| MD5 |
3a1c2b50bbffe738d4011944bfb39cdc
|
|
| BLAKE2b-256 |
131554819288764cac6487545e8f31aa8f90cd919a3ed502734530d86f77d56c
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
f120f60999751904ba2274df695f61c393ac2a571ee6d4e72d550451ea7b4c4c - Sigstore transparency entry: 2609357744
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file glyf_core-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: glyf_core-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e61cdb17cf037167981d59b4e7dbe354ee07a39d5053ac3e182d6d4843fc35
|
|
| MD5 |
271e824ae79ea9a9b3c8985b6e7c0e01
|
|
| BLAKE2b-256 |
65f0384081908f44485e1d2c3cd6520762afd8e78cb205ca4724b361e2840918
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
c8e61cdb17cf037167981d59b4e7dbe354ee07a39d5053ac3e182d6d4843fc35 - Sigstore transparency entry: 2609357441
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file glyf_core-0.3.0-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: glyf_core-0.3.0-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91b678232ef76bbb2448a3375b05ade9981bb0fcb1c57ab857aa64abdb4b4f36
|
|
| MD5 |
8167f2a3148dc74d0526fd82d7eda8c0
|
|
| BLAKE2b-256 |
dedd407e442649e237db1939b1f3f16d0099c3fed14ba6f4c38895152d58cb1f
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0-cp311-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0-cp311-abi3-macosx_11_0_arm64.whl -
Subject digest:
91b678232ef76bbb2448a3375b05ade9981bb0fcb1c57ab857aa64abdb4b4f36 - Sigstore transparency entry: 2609357864
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file glyf_core-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: glyf_core-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.11+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c892313bebaaa21d900a3b638d6cff5599ac9f18479338fbb4ea2a20d7e261fb
|
|
| MD5 |
f8733b721da1beff03afd8e6d943f06c
|
|
| BLAKE2b-256 |
a1c42ec8a8fde56d08ad0b00096a99faa543b6b6358bd1c1ec05e69c157a6085
|
Provenance
The following attestation bundles were made for glyf_core-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on glyf-data/glyf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glyf_core-0.3.0-cp311-abi3-macosx_10_12_x86_64.whl -
Subject digest:
c892313bebaaa21d900a3b638d6cff5599ac9f18479338fbb4ea2a20d7e261fb - Sigstore transparency entry: 2609357548
- Sigstore integration time:
-
Permalink:
glyf-data/glyf@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/glyf-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a05bd5bc37d91883af17196522c4c24d0b973fd7 -
Trigger Event:
push
-
Statement type: