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.2.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.2.0-py3-none-any.whl (3.9 MB view details)

Uploaded Python 3

File details

Details for the file datacharter-0.2.0.tar.gz.

File metadata

  • Download URL: datacharter-0.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 c09b7b575832ca99c761fcb4dbfdc880bcf94ec80d63410a475f591905beb7b3
MD5 9cfc6919f5e0442563b7d60a5f449975
BLAKE2b-256 3c4765a47d3348bb5ef3c1b484e520d5771cf557db07c0acb1cfd1acc2162d91

See more details on using hashes here.

File details

Details for the file datacharter-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: datacharter-0.2.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 78bab97c5615f713de621063bcb4374df8a2cb40cc770658a8bbb3ccbb9a29ca
MD5 b5b69b8cc35000cf3bcb42f9b490b947
BLAKE2b-256 ff2cab756aacc64d12a224f5d478e85d2183a3dd375550dde78b42ecb97b545a

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