Providers
wdpkr leans on three external roles: a summarizer, an embedder, and a vector store. Each is a trait with a real implementation behind it, so any of them can be swapped without touching the pipeline. The defaults are production-ready.
| Role | Default | Alternatives | API key |
|---|---|---|---|
| Summarizer | Anthropic Claude Haiku | — | ANTHROPIC_API_KEY |
| Embedder | Voyage voyage-code-3 | OpenAI, Ollama (local) | VOYAGE_API_KEY |
| Vector store | Turbopuffer | nidus (local, pure-Rust) | TURBOPUFFER_API_KEY |
All adapters share one shape: a reqwest HTTP client, bounded
exponential-backoff retry on 429/5xx, and a configurable base URL (which is how
the test suite drives them without live calls).
Summarizer
Section titled “Summarizer”Generates the natural-language summary for each chunk before it’s embedded. Defaults to Anthropic Claude Haiku — fast and cheap, which matters because indexing summarizes every symbol in the repo.
wdpkr config set summarizer.model claude-haiku-4-5-20251001Embedder
Section titled “Embedder”Turns summaries (at index time) and queries (at search time) into vectors. The same model must be used for both — that’s what makes the vectors comparable.
Voyage (default)
Section titled “Voyage (default)”export VOYAGE_API_KEY=...wdpkr config set embedder.provider voyagewdpkr config set embedder.model voyage-code-3OpenAI
Section titled “OpenAI”export OPENAI_API_KEY=...wdpkr config set embedder.provider openaiwdpkr config set embedder.model text-embedding-3-largeOllama (local, no API key)
Section titled “Ollama (local, no API key)”Run embeddings entirely on your machine — nothing leaves the box:
wdpkr config set embedder.provider ollamawdpkr config set embedder.ollama_host http://localhost:11434wdpkr config set embedder.model mxbai-embed-largeVector store
Section titled “Vector store”Holds the embedded summaries and serves cosine-similarity search. Two backends,
selected by store.provider: hosted Turbopuffer (default) or local
pure-Rust nidus (no FFI / no C toolchain).
# hosted (default)export TURBOPUFFER_API_KEY=...wdpkr config set store.provider turbopuffer
# or local, no API keywdpkr config set store.provider nidusSee Storage for the full comparison and configuration of each backend.