Skip to content

Storage

The vector store holds wdpkr’s embedded summaries and serves cosine-similarity search. It’s a trait (VectorStore) with two implementations; pick one with store.provider.

Turbopuffer (default)nidus
WhereHosted serviceLocal directory on disk
SetupAPI keyNone
Best forShared/CI indexes, large reposLocal-only, offline, zero-dependency
store.providerturbopuffernidus
CredentialTURBOPUFFER_API_KEY
DependenciesPure Rust, no FFI / no C toolchain

Both rank by cosine similarity and return identical search results — only where the vectors live differs.

The default. A hosted vector database — vectors and metadata live in Turbopuffer, keyed by a per-repo namespace. Good when the index is built in CI and queried from many machines.

Terminal window
export TURBOPUFFER_API_KEY=...
wdpkr config set store.provider turbopuffer
# optional: store the key in the config file instead of the env var
wdpkr config set store.turbopuffer.api_key "$TURBOPUFFER_API_KEY"
SettingEnv varDefaultDescription
store.providerWDPKR_STORE_PROVIDERturbopufferBackend selector
store.turbopuffer.api_keyTURBOPUFFER_API_KEYAPI key (prefer the env var)

A local, file-backed store — no external service and no API key. It’s built on nidus, a small pure-Rust embeddable vector store, so wdpkr compiles and links with no FFI and no C/C++ toolchain — which is what lets it be vendored into other products cleanly. The whole index is just a directory you can copy, back up, or delete. Good for local-only workflows and offline use.

Terminal window
wdpkr config set store.provider nidus
# optional: choose where the store directory lives
wdpkr config set store.nidus.path ~/.local/share/wdpkr/nidus
SettingEnv varDefaultDescription
store.providerWDPKR_STORE_PROVIDERturbopufferBackend selector
store.nidus.pathWDPKR_NIDUS_PATH$XDG_DATA_HOME/wdpkr/nidusStore directory path

The default path resolves to ~/.local/share/wdpkr/nidus (honoring $XDG_DATA_HOME).

How it works. One nidus directory holds every namespace — each wdpkr namespace maps to a nidus collection. Search is exact brute-force cosine similarity; nidus returns the cosine score directly, so score matches the Turbopuffer adapter exactly and min_score behaves identically across backends.

Re-index after changing the store — the new backend starts empty:

Terminal window
wdpkr config set store.provider nidus
wdpkr index --full

See Configuration for how these settings resolve, and Providers for the summarizer and embedder.