A self-hostable Agentic RAG platform. Bring files of any format; CKW extracts, indexes, and reasons over them through a multi-agent chat that cites unstructured content and queries tabular data in the same answer.
Runs entirely on your machine. No cloud account required.
cp .env.example .env
make up # first run on THIS machine: 133s once images/model caches are warm — see
# docs/releases/pre-release-baseline-clean-machine.md for a real measured
# baseline and what a genuinely first-ever run adds on top; restarts: ~120s
make status
make seedThen open http://localhost:5173.
| Ingest | Upload files or folders, connect Google Drive or a local path. PDF · DOCX · XLSX · CSV · MD · TXT · JPG · PNG · MP4 · WAV · MP3 |
| Understand | Layout-aware parsing, OCR for scans and images, speech-to-text for audio and video, table structure extraction |
| Find | Metadata filters, full-text, and semantic search — fused, reranked, and multilingual |
| Reason | Agentic chat over metadata, document content, and tabular data at once, with clickable citations and visible SQL |
| Integrate | OpenAI-compatible endpoints, and MCP servers you can point Claude Desktop or Cursor at |
React → Ckw.Api (ASP.NET Core) → Ckw.AgentHost (Router + Blackboard + Experts) → MCP servers → Postgres · Qdrant · OpenSearch · MinIO
with Python workers doing perception off a NATS bus.
Full detail: docs/system_architecture.md.
The reasoning behind every choice: IMPLEMENTATION_PLAN.md.
This repository is built by coding agents that propose, gate and merge their own changes. Nothing
waits for a human answer; every autonomous call is written down in docs/decisions/ and reviewed
after the fact.
Open an agent in the repo root and type /ckw — it detects whether to bootstrap, resume, finish
a delivery, fix red CI, or claim the next task, and follows the right procedure. Then
/ckw-propose to deliver and merge, or /ckw-resolve when it hits a wall.
make autopilot # unattended, forever: task → branch → proposal → green checks → squash-merge
make wake # register the watchdog that restarts the autopilot if it dies (once)
make verify # THE gate: build · arch rules · unit · property · specs · lint · coverage bandsEach autopilot iteration runs in a fresh process — the repository is the only memory that crosses
a task boundary, which is why decisions get written down rather than remembered. Details in
docs/sop/SOP-08-autonomous-continuation.md.
Start here, in this order:
.claude/commands/— the slash commands (Cursor:.cursor/commands/)AGENTS.md— orientation: where things go, the one workflow.cursorrules— the binding rulesdocs/sop/— step-by-step procedures; every task names one
Agents never commit to main. Every merged batch leaves a release you can clone, make up, and demo.
| Minimum | Comfortable | |
|---|---|---|
| RAM | 16 GB | 32 GB |
| Disk | 40 GB | 100 GB |
| GPU | none (CPU works) | any 8 GB+ NVIDIA → make up-gpu |
| Software | Docker Desktop / Engine + Compose v2 | + .NET 10 SDK, Node 22, uv for local dev |
Measured cold-start times and memory footprints per release are in docs/releases/.
| Web UI | 5173 | API + docs | 7000 |
| Keycloak | 8080 | Traces (Jaeger) | 16686 |
| MinIO console | 9001 | Qdrant | 6333 |
| OpenSearch | 9200 | Postgres | 5432 |
All configurable in .env.
Every runtime dependency is open source. See docs/licences.md for the full inventory.