
<h1>Qwery: the AI data agent in your terminal</h1>
<a href="https://youtu.be/WlOkLnoY2h8?si=hb6-7kLhlOvVL1u6">
<img src="https://img.shields.io/badge/Watch-YouTube-%23ffcb51?logo=youtube&logoColor=black" alt="Watch on YouTube" />
</a>
<a href="https://discord.gg/nCXAsUd3hm">
<img src="https://img.shields.io/badge/Join-Community-%23ffcb51?logo=discord&logoColor=black" alt="Join our Community" />
</a>
<a href="https://github.com/Guepard-Corp/qwery-core/actions/workflows/ci.yml" target="_blank">
<img src="https://img.shields.io/github/actions/workflow/status/Guepard-Corp/qwery-core/ci.yml?branch=main" alt="Build">
</a>
<a href="https://github.com/Guepard-Corp/qwery-core/blob/main/LICENCE" target="_blank">
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License" />
</a>
<a href="https://bun.sh/" target="_blank">
<img src="https://img.shields.io/badge/bun-%3E%3D1.3-brightgreen" alt="Bun Version" />
</a>
<a href="https://github.com/Guepard-Corp/qwery-core/pulls" target="_blank">
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome" />
</a>
🚧 This project is under active development and not yet suitable for production use. Expect breaking changes, incomplete features, and evolving APIs.
Qwery is an AI data analyst that lives in your terminal. Ask questions in plain language; Qwery connects to your datasources, generates the SQL, runs it locally, and answers, without you ever leaving the keyboard.
It pairs two agents (a DataAgent for analysis and a CodingAgent for building scripts and apps) behind a single TUI.
Row-level data never leaves your machine and is never sent to the LLM. Queries run in a local query engine; the model only ever sees schemas, aggregate scalars, and locally-rendered output. Destructive operations are protected by GFS ("git for databases"): the agent can branch and snapshot a database before touching it.
/models (Ollama local & cloud, Azure OpenAI, AWS Bedrock, and any OpenAI-compatible endpoint).curl -fsSL https://raw.githubusercontent.com/Guepard-Corp/qwery-core/main/install | bash
This installs qwery (and the GFS engine) under ~/.qwery and adds it to your PATH. Then just run:
qwery
Once in the TUI, press /models to connect a provider. No API keys live in environment variables; provider configuration is stored under ~/.qwery.
Try it for free with Ollama: install Ollama, pull a tool-capable model (e.g.
ollama pull qwen3-coder:30b), then in/modelspick Ollama (local) and point it athttp://localhost:11434/v1.
Prerequisites: Bun >= 1.3.
git clone https://github.com/Guepard-Corp/qwery-core.git
cd qwery-core
bun install
bun start # launch the TUI (use `bun dev` for --watch)
A Bun + Turborepo monorepo with a hexagonal architecture (see AGENTS.md):
apps/cli: the Ink TUI (primary adapter)apps/e2e: end-to-end tests driving the real TUIevals/: real-model evaluation suite (NL→SQL correctness, etc.)packages/domain: entities, value objects, and ports (no I/O)packages/application: use cases orchestrating the domainpackages/agent-factory-sdk: the agent loop, tools, and compactionpackages/adapters/*: compute-duckdb, llm-aisdk, persistence-sqlite, model-catalog-http, branching-gfs, semantic-inprocesspackages/extension-sdk + packages/extensions/*: datasource extensionstooling/: dependency-cruiser, privacy and coverage checksbun start # launch the TUI
bun dev # launch with --watch
bun run lint # Biome lint + format check (bun run lint:fix to apply)
bun run typecheck # tsc -b
bun test # unit + component tests (bun:test)
bun run check:arch # hexagonal boundaries (dependency-cruiser)
bun run check:privacy # privacy invariant (no row data crosses the LLM line)
bun run coverage # test coverage + ADR #16 tiered gate
bun run check:all # lint + typecheck + arch + privacy + coverage
cd apps/e2e && bun test # TUI end-to-end tests
cd evals && bun run evals # real-model evals (defaults to a local Ollama; skips if none)
any.dependency-cruiser.bun:test for unit/component, apps/e2e for end-to-end, evals/ for real-model checks.Run bun run check:all before committing.
We welcome contributions! Check out our Contributing Guide to get started.
bun run check:all to ensure all quality checks pass.This project is licensed under the MIT License. See the LICENSE file for details.
We're grateful to the open source community. See our Thank You page for acknowledgments.
$ claude mcp add qwery-core \
-- python -m otcore.mcp_server <graph>