Skip to content

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.

RoleDefaultAlternativesAPI key
SummarizerAnthropic Claude HaikuANTHROPIC_API_KEY
EmbedderVoyage voyage-code-3OpenAI, Ollama (local)VOYAGE_API_KEY
Vector storeTurbopuffernidus (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).

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.

Terminal window
wdpkr config set summarizer.model claude-haiku-4-5-20251001

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.

Terminal window
export VOYAGE_API_KEY=...
wdpkr config set embedder.provider voyage
wdpkr config set embedder.model voyage-code-3
Terminal window
export OPENAI_API_KEY=...
wdpkr config set embedder.provider openai
wdpkr config set embedder.model text-embedding-3-large

Run embeddings entirely on your machine — nothing leaves the box:

Terminal window
wdpkr config set embedder.provider ollama
wdpkr config set embedder.ollama_host http://localhost:11434
wdpkr config set embedder.model mxbai-embed-large

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).

Terminal window
# hosted (default)
export TURBOPUFFER_API_KEY=...
wdpkr config set store.provider turbopuffer
# or local, no API key
wdpkr config set store.provider nidus

See Storage for the full comparison and configuration of each backend.