Repository navigation
v0.1.0
Documentation RAG for coding agents. DocuGraph crawls or indexes your documentation, builds a documentation knowledge graph and a repository/branch-scoped agent memory, and serves all of it to Claude Code and other MCP clients over stdio. Embeddings run in-process on ONNX — there is no PyTorch in the dependency tree, and your documents are not sent anywhere to be embedded by default: embeddings.provider defaults to auto, which resolves to fastembed locally and never consults the environment. Name a cloud provider (openai or cohere) and your documents are sent there — that is what naming one asks for.
pip install docugraphThe MCP server is the primary surface. The CLI (docugraph crawl | index | search | stats | memory | graph | config) is for out-of-band index bootstrapping. docugraph-mcp starts the MCP server over stdio.
Requires Python 3.11–3.13; CI runs the suite on all three, on Linux. Python 3.14 is excluded deliberately, for two independent reasons: kuzu 0.11.3 — the final release, and the version this package pins — publishes no 3.14 wheels for macOS or Windows, and fastembed's 3.14 requirement (onnxruntime>=1.24.2) cannot be satisfied alongside the onnxruntime<1.24 cap this package carries.
Extras — docugraph[cloud] (OpenAI, Anthropic and Cohere SDKs: LLM-backed graph extraction and cloud embeddings), docugraph[ollama] (local LLM via Ollama), docugraph[dev] (test and lint tooling), docugraph[all] (the cloud and ollama extras — not dev, which serves contributors rather than callers).
Kùzu. The graph store is reached through graphiti-core[kuzu]==0.30.2, and kuzu itself is pinned ==0.11.3. Kùzu is archived upstream — 0.11.3 is the final release — and its on-disk format is not stable before 1.0, so a database written by one version may not be readable by another. Treat the pin as a migration boundary, not a floor: to move versions, upgrade and then re-ingest rather than pointing the new version at the old file.
Known limits.
- The security posture is documented in
docs/SECURITY.md: the index, graph and memory are local; the MCP server runs over stdio as a child process and opens no port;embeddings.providerdefaults toauto, which resolves to fastembed and deliberately never consults the environment — anOPENAI_API_KEYin your shell does not send your documents anywhere. - The live reranker test (BAAI/bge-reranker-v2-m3, about 2 GB) does not run on every push or PR. It runs weekly, Tuesdays 07:41 UTC, and on demand; it is skipped in the default suite.
- DocuGraph does not send
temperatureto Anthropic; the setting has no effect for that provider. OpenAI and Ollama receive it when you set it. - URL crawling needs Playwright's Chromium, which is not part of the Python install:
playwright install chromium. lancedbis capped below 0.26 andonnxruntimebelow 1.24; the next release of each dropped the macOS x86_64 wheels.