Navin

Environment Variables Reference

Navin reads API keys and behavior overrides from the process environment. Exporting a variable is enough - no config edit, no import step:

# Linux / macOS / WSL
export KIMI_API_KEY="sk-..."
navin .

# PowerShell
$env:KIMI_API_KEY = "sk-..."
navin .

Precedence - for each provider, the first source that carries a value wins:

  1. the key stored in Settings > Providers (config.json);
  2. the provider's primary environment variable;
  3. its aliases (the names other tools use - Claude Code, OpenCode, Hermes…), in the order listed below.

Keys found in the environment are used for the request only and are never written to config.json.

LLM Provider API Keys

The table derives from the provider registry (navin/providers/registry.py) - a test keeps it in sync.

ProviderVariableAliases also honored
OpenRouterOPENROUTER_API_KEY-
OpenCode ZenOPENCODE_API_KEYOPENCODE_ZEN_API_KEY
OpenCode GoOPENCODE_API_KEYOPENCODE_GO_API_KEY
Hugging FaceHF_TOKENHUGGINGFACE_TOKEN, HUGGING_FACE_HUB_TOKEN
SiliconFlowOPENAI_API_KEY-
Novita AINOVITA_API_KEY-
AnthropicANTHROPIC_API_KEY-
OpenAIOPENAI_API_KEY-
AWS BedrockAWS_BEARER_TOKEN_BEDROCK- (also honors the standard AWS credential chain: AWS_PROFILE, AWS_REGION, ~/.aws/credentials)
DeepSeekDEEPSEEK_API_KEY-
GeminiGEMINI_API_KEYGOOGLE_API_KEY
Z.AI (GLM)ZAI_API_KEYGLM_API_KEY, Z_AI_API_KEY
Zhipu AIZHIPUAI_API_KEYZHIPU_API_KEY
Moonshot (Kimi)MOONSHOT_API_KEYKIMI_API_KEY
Kimi CodingKIMI_CODING_API_KEY-
Qwen (Alibaba)DASHSCOPE_API_KEYQWEN_API_KEY, ALIBABA_API_KEY
DashScopeDASHSCOPE_API_KEY- (same credential as Qwen, international endpoint)
Doubao (Volcengine Ark)VOLCENGINE_API_KEYARK_API_KEY, BYTEPLUS_API_KEY
Tencent HunyuanHUNYUAN_API_KEYTENCENT_HUNYUAN_API_KEY
Baidu QianfanQIANFAN_API_KEYERNIE_API_KEY, BAIDU_API_KEY
StepFunSTEPFUN_API_KEY-
SiliconFlowSILICONFLOW_API_KEYSF_API_KEY
MiniMaxMINIMAX_API_KEY-
MistralMISTRAL_API_KEY-
vLLMHOSTED_VLLM_API_KEYVLLM_API_KEY
OllamaOLLAMA_API_KEY- (local: key optional)
LM StudioLM_STUDIO_API_KEYLM_API_KEY, LMSTUDIO_API_KEY
Atomic ChatATOMIC_CHAT_API_KEY- (local: key optional)
OmniRouteOMNIROUTE_API_KEY- (local gateway: key only when REQUIRE_API_KEY is on)
NVIDIA NIMNVIDIA_NIM_API_KEYNVIDIA_API_KEY
xAIXAI_API_KEY-
GroqGROQ_API_KEY-
AssemblyAIASSEMBLYAI_API_KEY- (transcription only)

OAuth providers (OpenAI Codex, GitHub Copilot, Grok x.ai subscription) and Azure OpenAI / OpenVINO / Custom endpoints don't use these variables - they authenticate through their own flow or through Settings.

Project Configuration Discovery (no variables needed)

Skills, subagents and instruction files carried by the repository are read natively on every request - nothing to export or import:

  • Skills: skills/, plus <harness>/skills/ for every harness folder (.navin, .agents, .claude, .cursor, .opencode, .codex, .omp, .ai). Symlinked skill directories (mirror layouts like .agents/skills/) are followed.
  • Subagents: <harness>/agents/ and OpenCode's singular <harness>/agent/, scanned recursively (category layouts like .ai/agents/<category>/<name>.md work as-is). Markdown-with-frontmatter and Codex TOML (name / description / developer_instructions) are both parsed.
  • Instructions: AGENTS.md (plus SOUL.md, USER.md); CLAUDE.md is honored when no AGENTS.md exists, and Claude Code's @path import lines are resolved in both.
  • A skill's own requires.env frontmatter is checked against the process environment, so skills that need e.g. NOTION_API_KEY report exactly which variable is missing.

Navin Runtime Overrides (NAVIN_*)

Optional knobs; most users never set any of these.

VariableDescription
NAVIN_LLM_TIMEOUT_SLLM API call timeout in seconds.
NAVIN_OPENAI_COMPAT_TIMEOUT_STimeout override for OpenAI-compatible providers only.
NAVIN_STREAM_IDLE_TIMEOUT_SKill a streaming response when no chunk arrives within this window.
NAVIN_MAX_CONCURRENT_REQUESTSCap on concurrent model requests (default 200, aligned with max_concurrent_subagents). <=0 = unlimited.
NAVIN_MODEL_CATALOG_URLOverride the managed model-catalog endpoint (default: navin.live).
NAVIN_LICENSE_SERVER_URLDev-only. License endpoint for testing against a local site checkout. Must be HTTPS (plain HTTP is only accepted toward localhost); anything else is ignored and the official server is used. Spoofing it gains nothing: paid plans are enforced server-side through the provisioned, spend-capped API key.
NAVIN_UPDATE_BASE_URLOverride the desktop auto-update endpoint. Safe by construction: every update must still pass the bundled Ed25519 signature, size, SHA-256 and HTTPS checks.
NAVIN_UPDATE_PUBLIC_KEYDev-only, ignored in packaged builds. Replaces the update-signature key when testing the pipeline from a source checkout.
NAVIN_UPDATE_ALLOW_HTTPDev-only, ignored in packaged builds. Allows a localhost plain-HTTP update endpoint.
NAVIN_DOCS_BASE_URLOverride the documentation base URL.
NAVIN_EXTENSION_REGISTRY_URL / NAVIN_EXTENSION_RAW_BASEOverride the extension registry endpoints.
NAVIN_PATH_PREPEND / NAVIN_PATH_APPENDExtra PATH entries injected into tool subprocesses.
NAVIN_TMUX_SOCKET_DIRDirectory for the tmux sockets backing persistent shells.
NAVIN_SANDBOX_BIN / NAVIN_SANDBOX_ENFORCEDSandbox binary override / require sandboxing for shell tools.
NAVIN_WORKSPACE_SANDBOX_PROVIDER / NAVIN_WORKSPACE_SANDBOX_ENFORCEDWorkspace sandbox backend selection / enforcement.
NAVIN_CHROMIUM / NAVIN_CHROME_PATHBrowser binary used by the browser tools.
NAVIN_DISABLE_NATIVEDisable native accelerated modules (troubleshooting).
NAVIN_DIROverride the Navin state directory (default: ~/.navin).
NAVIN_DESKTOP_CONFIG / NAVIN_DESKTOP_BIN / NAVIN_DESKTOP_ZOOMDesktop app: config path, sidecar binary, UI zoom.
NAVIN_WEBUI_TABOpen the WebUI on a specific tab at startup.
NAVIN_PRESENTATION_TEMPLATES_DIRExtra directory of presentation templates.
NAVIN_INSTALL_KINDSet by installers to tag the install type (telemetry-free display only).
NAVIN_SKIP_WEBUI_BUILDSkip the WebUI build step in dev tooling.
NAVIN_BUNDLED_EXTRASSet by packaged builds to locate bundled extras.
NAVIN_COPILOT_BASE_URL / NAVIN_COPILOT_TOKEN_URL / NAVIN_GITHUB_*GitHub Copilot endpoint overrides (enterprise proxies).
NAVIN_RESTART_*Internal handoff variables written by the self-restart flow - never set manually.