Skip to main content

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.yaml describes 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 flat source__table naming scheme.
  • Local-first. One process, your machine, no cloud dependency. Optional --local agent 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 is a trademark of the DuckDB Foundation. DataCharter is an independent project and is not affiliated with or endorsed by the DuckDB Foundation.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datacharter-0.1.0.tar.gz (6.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datacharter-0.1.0-py3-none-any.whl (3.9 MB view details)

Uploaded Python 3

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

Hashes for datacharter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0e07f9f6ca75361115aedbaf1e1a252ad8265d220dd78fe3b794749de75275ee
MD5 7fc15ecda82ad3049e1ce00664deccea
BLAKE2b-256 62ba1be0dcc4b3d28dd00e4251e7f41c256758cdbec24cbbb0c47ea7a106ce79

See more details on using hashes here.

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

Hashes for datacharter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 898b813187229ba15cbf8543f03c1aabfa1a67db762ebc3cb6e5ac4ccdc03d1e
MD5 1413b30203b5f6848a03a0dd8fef34f6
BLAKE2b-256 50cd75cfa06ab585724c1db9ad6900925f035fccaa0f65a443a563ee182346f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page