Environment variables
Provider API keys, embedder overrides, and runtime knobs that configure repowise's behavior at install and index time.
Most things are configured via .repowise/config.yaml (see
Configuration; repowise init
generates one for you). The handful of settings that make sense as
environment variables are below.
LLM provider keys
All optional. repowise init never requires one: with no provider
resolvable it renders the wiki from your code's structure and exits 0. Set
a key when you want model-written prose instead. See
Deterministic wiki.
Pick one. Anthropic is the default; pass --provider <name> on
init / update / mcp to switch, or set REPOWISE_PROVIDER /
REPOWISE_MODEL to override without touching config.yaml.
| Variable | Used by |
|---|---|
ANTHROPIC_API_KEY | Default provider |
OPENAI_API_KEY | --provider openai |
GEMINI_API_KEY / GOOGLE_API_KEY | --provider gemini |
OPENROUTER_API_KEY | --provider openrouter |
DEEPSEEK_API_KEY | --provider deepseek |
LITELLM_API_KEY / LITELLM_API_BASE | --provider litellm |
OLLAMA_BASE_URL | --provider ollama (default http://localhost:11434) |
Base URLs can also be overridden per provider: ANTHROPIC_BASE_URL,
OPENAI_BASE_URL (used for vLLM/SGLang-compatible endpoints),
GEMINI_BASE_URL, DEEPSEEK_BASE_URL, LITELLM_BASE_URL.
| Variable | Purpose |
|---|---|
REPOWISE_PROVIDER | Override provider, skips auto-detection. An empty value (REPOWISE_PROVIDER="", common in CI matrices) is treated as unset rather than as a provider named "" |
REPOWISE_MODEL | Override model |
REPOWISE_DOC_MODEL | Override the model used for get_answer synthesis specifically |
REPOWISE_REASONING | Override reasoning (auto, off, none, minimal, low, medium, high, xhigh, max) |
REPOWISE_ANSWER_LEAN_HIGH | Set to 1/true/yes/on to strip re-read evidence (symbol_bodies, quotes, flow_path, best_guesses, code_rationale) from high-confidence get_answer responses, shrinking the payload. Off by default; the citation and prose still carry the answer, but an agent that needs the dropped body pays a get_symbol round-trip. Grounded fast paths and why-questions are exempt, since their evidence is the answer. |
Repowise also persists provider/model choice into .repowise/state.json
during init, so the MCP server and update runs reuse the same
provider without you re-specifying.
Embedder overrides
The embedder powers semantic search and the RAG behind get_answer. It's
separate from the LLM provider, and defaults to mock (no semantic
search) when no key is detected.
| Variable | Notes |
|---|---|
REPOWISE_EMBEDDER | Embedder: gemini, openai, ollama, openrouter, or mock |
REPOWISE_EMBEDDING_MODEL | Embedding model, applies to whichever embedder is active |
REPOWISE_EMBEDDING_DIMS | Embedding output dimensions (optional; inferred from the model otherwise) |
REPOWISE_EMBEDDING_TIMEOUT | Embed request timeout in seconds |
OLLAMA_EMBEDDING_MODEL | Ollama embedding model (also selects the ollama embedder) |
OLLAMA_EMBEDDING_DIMS | Ollama embedding output dimensions (optional) |
OLLAMA_EMBEDDING_TIMEOUT | Ollama embed request timeout in seconds (default: 30). Raise it for long wiki pages on slow local models, otherwise those pages can silently drop out of the vector store. |
repowise init auto-detects which embedder to use based on which
key is set.
Server and database
| Variable | Default | Purpose |
|---|---|---|
REPOWISE_DB_URL | SQLite | Use PostgreSQL instead of SQLite (e.g. postgresql+asyncpg://...) |
REPOWISE_DATABASE_URL | none | Legacy alias for REPOWISE_DB_URL, still honored |
REPOWISE_HOST | 127.0.0.1 | API server host |
REPOWISE_PORT | 7337 | API server port |
REPOWISE_MCP_PORT | 7338 | MCP SSE server port |
REPOWISE_API_URL | http://localhost:7337 | Frontend only; backend URL for the web UI |
REPOWISE_API_KEY | none | Bearer token required by clients calling the server API |
REPOWISE_CONFIG_DIR | none | Override where repowise looks for its config directory |
Telemetry
Anonymous usage telemetry is enabled by default (opt-out).
| Variable | Purpose |
|---|---|
DO_NOT_TRACK | Any truthy value disables telemetry (respects the cross-tool convention) |
REPOWISE_TELEMETRY_DISABLED | Disables telemetry, repowise-specific |
REPOWISE_TELEMETRY_DEBUG | Prints the telemetry payload to stderr instead of sending it |
Misc
| Variable | Purpose |
|---|---|
REPOWISE_GIT_WINDOW_ANCHOR | Set to head to anchor git "now" to the latest commit instead of wall-clock time |
REPOWISE_SKIP_EDITOR_SETUP | Skip the interactive editor/MCP setup step |
REPOWISE_CHANGELOG | Override the changelog source used by the "what's new" check |
PYTHONIOENCODING | On Windows PowerShell, set to utf-8 if you see codec errors during indexing |
Hosted version
If you're using repowise.dev, none of the above apply, because the platform manages keys for you. The only env var you'd set client-side is the API key your editor uses to talk to the hosted MCP endpoint, which the Settings → Editor page generates automatically.
BYOK on hosted. Under Settings, you can attach your own Anthropic, OpenAI, or Gemini key. Repowise never sees your LLM calls; they go directly from our infrastructure to your provider.
Configuration: config.yaml & ignore files
The .repowise/ directory, the config.yaml file repowise generates on first init, and how to control which files get indexed with .gitignore, nested .gitignore, .repowiseIgnore, and --exclude.
Language support
16 languages with AST support and dedicated resolvers, 11 of them at the Full tier, plus per-language framework awareness for Django, FastAPI, Flask, Express, Spring Boot, Rails, Laravel, and more.