Charter your data — contract-governed local data exploration, powered by DuckDB
Project description
DataCharter
Explore all your data locally, in one place — contract-governed data exploration, powered by DuckDB
Contract-governed local data exploration, powered by DuckDB. Define your sources as data contracts (ODCS-compatible YAML), query them through DuckDB's SQL federation engine with real source pushdowns, explore in a local web UI — charts, profiling, SQL editor — and optionally ask questions in plain language with a fully local model.
Status: pre-release. V1 in development.
Quick start
# Try it instantly on generated demo data — no config, nothing to install globally:
uvx datacharter serve
# → opens a local workspace on http://127.0.0.1:8321
# Or install it:
pip install datacharter
# Start a real workspace:
datacharter init # scaffolds charter.yaml, queries/, .env.example
datacharter serve # explore in your browser
# Natural-language agent — bring your own endpoint…
export OPENAI_BASE_URL=... # any OpenAI-compatible API
export OPENAI_API_KEY=...
datacharter serve
# …or run fully local (no API key, no data leaves your machine):
datacharter serve --local # uses Ollama (qwen3:8b by default)
Drop a CSV, Parquet, or JSON file onto the window to query it instantly.
Why
- Your contracts are the catalog.
charter.yamldescribes sources, tables, and PII fields — the same contract spec your data team already writes. - One engine, every source. Postgres, MySQL, SQLite, BigQuery, SQL Server,
S3/GCS/Azure files, Iceberg, Delta — federated joins across all of them, with
filters and projections pushed down where the data lives — even across a
cross-source join, each leg is filtered at its source. Snowflake is supported
via connector extract (
datacharter[snowflake]) with filters/projections pushed into the extract. Every source's tables are exposed under one flatsource__tablenaming scheme. - Local-first. One process, your machine, no cloud dependency. Optional
--localagent mode runs a small open model via Ollama — no API key, no data leaves your machine. - The workspace is a directory.
charter.yaml+queries/*.sql+.env.example— commit it, clone it,datacharter serve. Your team's whole exploration environment travels as a repo; secrets and local state never do.
Built on
DataCharter stands on excellent open-source foundations:
- DuckDB — the analytical engine at our core:
federation (
ATTACH), file formats, Iceberg/Delta, encryption, autocomplete. - Open Data Contract Standard /
datacontract.com — the contract format
charter.yamlspeaks. - Vega-Lite — declarative charting.
- Monaco Editor — the SQL editor.
DuckDB is a trademark of the DuckDB Foundation. DataCharter is an independent project and is not affiliated with or endorsed by the DuckDB Foundation.
License
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 datacharter-0.1.0.tar.gz.
File metadata
- Download URL: datacharter-0.1.0.tar.gz
- Upload date:
- Size: 6.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e07f9f6ca75361115aedbaf1e1a252ad8265d220dd78fe3b794749de75275ee
|
|
| MD5 |
7fc15ecda82ad3049e1ce00664deccea
|
|
| BLAKE2b-256 |
62ba1be0dcc4b3d28dd00e4251e7f41c256758cdbec24cbbb0c47ea7a106ce79
|
File details
Details for the file datacharter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: datacharter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
898b813187229ba15cbf8543f03c1aabfa1a67db762ebc3cb6e5ac4ccdc03d1e
|
|
| MD5 |
1413b30203b5f6848a03a0dd8fef34f6
|
|
| BLAKE2b-256 |
50cd75cfa06ab585724c1db9ad6900925f035fccaa0f65a443a563ee182346f4
|