Skip to content

Configuration

wdpkr resolves every setting through four layers, each overriding the one before it:

defaults → config file → environment variables → CLI flags

Run config list at any time to see the effective value of every setting and exactly where it came from:

Terminal window
wdpkr config list

The fastest way to get configured is the guided walkthrough — it picks providers and stores your API keys:

Terminal window
wdpkr config init

To set or read individual values:

Terminal window
wdpkr config get embedder.model
wdpkr config set indexer.concurrency 16

Local settings live in ~/.config/wdpkr/config.yaml. Every field is optional, and environment variables override anything set here.

store:
provider: turbopuffer
# Provider-specific settings live in nested blocks:
# turbopuffer:
# api_key: ... # prefer the TURBOPUFFER_API_KEY env var
# nidus: # local, file-backed, pure-Rust store (provider: nidus)
# path: ~/.local/share/wdpkr/nidus # store directory; or WDPKR_NIDUS_PATH env var
embedder:
provider: voyage
model: voyage-code-3
batch_size: 64
# ollama_host: http://localhost:11434
summarizer:
provider: anthropic
model: claude-haiku-4-5-20251001
indexer:
# namespace: "" # auto-derived from git remote if empty
default_branch: main
concurrency: 8
max_cost: 50
hwm_success_threshold: 0.95
Key Default Description
store.provider turbopuffer Vector store backend — turbopuffer or nidus
store.turbopuffer.api_key Turbopuffer API key (prefer the env var)
store.nidus.path ~/.local/share/wdpkr/nidus nidus store directory (local backend)

See Storage for the trade-offs between backends. The flat store.turbopuffer_api_key key is still read for backwards compatibility, but prefer the nested store.turbopuffer.api_key.

Key Default Description
embedder.provider voyage voyage, openai, or ollama
embedder.model voyage-code-3 Provider-derived if unset
embedder.batch_size 64 Embeddings per request
embedder.ollama_host http://localhost:11434 Ollama endpoint (local provider)
embedder.voyage_api_key Voyage API key (prefer the env var)
embedder.openai_api_key OpenAI API key (prefer the env var)
Key Default Description
summarizer.provider anthropic Summarization provider
summarizer.model claude-haiku-4-5-20251001 Summarization model
summarizer.anthropic_api_key Anthropic API key (prefer the env var)
Key Default Description
indexer.namespace (auto) Index namespace; derived from the git remote when empty
indexer.default_branch main Branch the index tracks
indexer.git_remote (auto) Remote used to derive the namespace
indexer.concurrency 8 Parallel summarize/embed workers
indexer.max_cost 50 Hard cap (USD) on a single indexing run
indexer.hwm_success_threshold 0.95 Min success rate to advance the indexed high-water mark

Data sources to index. Omit taps to index repository code only (the default files tap). Each entry has a name and optional per-tap settings. See Taps for the full Linear and Notion tap references.

taps:
- name: files
- name: linear
settings:
amount: 100
order_by: updatedAt
include_comments: true
- name: notion
settings:
include_sections: true
decay: # opt-in per-tap search decay
enabled: true
half_life_days: 90
floor: 0.4
Key Default Description
taps[].name files Tap name — files, linear, or notion
taps[].settings Per-tap settings (Linear: amount, order_by, team, include_comments, api_key_env; Notion: api_key, api_key_env, notion_version, include_sections)
taps[].settings.decay off Opt-in search decay — enabled, half_life_days (default 90), floor (default 0.4). Ages down stale docs at search time without deleting them; see Decay and reinforce

Set API keys via environment variables (LINEAR_API_KEY, NOTION_API_KEY), not the config file. The Notion tap also accepts an inline settings.api_key for local use — keep the config file private if you use it.

Every setting has a matching environment variable, which overrides the config file:

# Credentials
ANTHROPIC_API_KEY # summarization (required)
TURBOPUFFER_API_KEY # vector storage (required for default store)
VOYAGE_API_KEY # embedding (required for default provider)
OPENAI_API_KEY # embedding (OpenAI provider)
OLLAMA_HOST # embedding (Ollama provider)
LINEAR_API_KEY # Linear tap (when the linear tap is configured)
NOTION_API_KEY # Notion tap (when the notion tap is configured)
# Providers & models
WDPKR_STORE_PROVIDER # turbopuffer | nidus
WDPKR_NIDUS_PATH # nidus store directory (nidus store)
WDPKR_EMBED_PROVIDER # voyage | openai | ollama
WDPKR_EMBED_MODEL
WDPKR_EMBED_BATCH_SIZE
WDPKR_SUMMARIZER_PROVIDER
WDPKR_SUMMARIZER_MODEL
# Indexing
WDPKR_NAMESPACE # override the auto-derived namespace
WDPKR_DEFAULT_BRANCH
WDPKR_GIT_REMOTE
WDPKR_CONCURRENCY
WDPKR_MAX_COST
WDPKR_HWM_SUCCESS_THRESHOLD