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
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 |
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 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 | — | 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 | — | Bearer token required by clients calling the server API |
REPOWISE_CONFIG_DIR | — | 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 — 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
15 languages with AST support and dedicated resolvers, 9 of them at the Full tier — plus per-language framework awareness for Django, FastAPI, Flask, Express, Spring Boot, Rails, Laravel, and more.