Environment Variables¶
A complete reference of all environment variables used by InnoClaw.
Core Configuration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
Yes |
— |
Comma-separated absolute paths where workspaces can be created. Directories must exist on the server. |
|
|
No |
|
SQLite database filesystem path. Set to a local path when the project resides on NFS or another network filesystem. |
|
|
Recommended |
Development fallback |
Long random secret used to sign local authentication session cookies. Set this in production. |
|
|
No |
|
Authentication mode. Set to |
|
|
No |
|
When |
|
|
No |
|
Overrides the |
|
|
No |
|
Next.js build output directory inside the project root (for example |
With AUTH_SINGLE_ADMIN=true, run the administrator bootstrap command before
opening public registration. Ordinary users receive private roots at
<WORKSPACE_ROOTS entry>/users/<immutable-user-id>; the administrator retains
visibility across the configured operator roots.
AI Provider Configuration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
OpenAI API key for chat and embedding. |
|
|
No |
— |
Anthropic API key for Claude models. |
|
|
No |
— |
Google Gemini API key for Gemini models. |
|
|
No |
— |
SH-Lab API key for Intern models. |
|
|
No |
— |
Qwen API key. |
|
|
No |
— |
Moonshot API key for Kimi models. |
|
|
No |
— |
DeepSeek API key. |
|
|
No |
— |
MiniMax API key. |
|
|
No |
— |
Zhipu API key for GLM models. |
|
|
No |
|
Custom OpenAI-compatible API endpoint (for proxies or third-party providers). |
|
|
No |
|
Custom Anthropic API endpoint. |
|
|
No |
— |
Custom Gemini-compatible API endpoint (OpenAI-compatible proxy). |
|
|
No |
— |
Vendor-level base URL for all SH-Lab models. Per-model URLs (e.g. |
|
|
No |
— |
Vendor-level base URL for all Qwen models. Per-model URLs (e.g. |
|
|
No |
— |
Vendor-level base URL for all Moonshot models. Per-model URLs (e.g. |
|
|
No |
— |
Vendor-level base URL for all DeepSeek models. Per-model URLs (e.g. |
|
|
No |
— |
Vendor-level base URL for all MiniMax models. Per-model URLs (e.g. |
|
|
No |
— |
Vendor-level base URL for all Zhipu models. Per-model URLs (e.g. |
|
|
No |
|
Default LLM provider: |
|
|
No |
|
Default model ID. Overridable in Settings UI. |
|
|
No |
Provider default |
Default reasoning effort for OpenAI language-model calls: |
Note
At least one AI API key (OpenAI, Anthropic, or Gemini) is needed for AI chat and note generation features. Without any API key, workspace management, file browsing, and other non-AI features still work.
OPENAI_REASONING_EFFORT applies only to OpenAI language-model calls and the
unknown-provider OpenAI-compatible fallback. It does not alter embeddings or
named Anthropic, Gemini, Qwen, Moonshot, DeepSeek, MiniMax, Zhipu, or SH-Lab
providers. Omit it to preserve the upstream provider default. Confirm that a
custom OpenAI-compatible endpoint supports the normalized value before rollout.
Agent Configuration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
|
Maximum agent tool-call steps per request (1–100). Higher values allow complex multi-step tasks but cost more tokens. |
Embedding API Configuration¶
These allow using a separate service for vector embeddings, independent of the chat model provider.
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
Falls back to |
API key for the embedding service. |
|
|
No |
Falls back to |
Endpoint for the embedding service. |
|
|
No |
|
Name of the embedding model to use. |
Example — Using a dedicated embedding service:
# Chat model (via OpenAI-compatible proxy)
OPENAI_API_KEY=sk-your-chat-key
OPENAI_BASE_URL=http://your-proxy:3888/v1
# Embedding model (separate configuration)
EMBEDDING_API_KEY=sk-your-embedding-key
EMBEDDING_BASE_URL=http://your-proxy:3888/v1
EMBEDDING_MODEL=google/gemini-embedding-001
GitHub Integration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
GitHub Personal Access Token for cloning/pulling private repositories. Requires |
HuggingFace / ModelScope Datasets¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
HuggingFace access token. Avoids rate limits when downloading datasets. Also settable via the Settings UI. |
|
|
No |
|
Local directory for downloaded HuggingFace/ModelScope datasets. |
SCP Hub (Scientific Skills)¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
API key for the Intern-Discovery Platform, enabling 206 built-in SCP scientific skills (drug discovery, protein analysis, genomics, chemistry, etc.). |
HTTP Proxy¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
HTTP proxy for all outbound |
|
|
No |
— |
HTTPS proxy. Typically the same value as |
|
|
No |
— |
Comma-separated hosts/CIDRs that bypass the proxy, e.g. |
Feishu (Lark) Bot Configuration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
|
Enable Feishu bot integration. |
|
|
No |
— |
Feishu application ID. |
|
|
No |
— |
Feishu application secret. |
|
|
No |
— |
Token for verifying Feishu webhook requests. |
|
|
No |
— |
Encryption key for Feishu event payloads. |
|
|
No |
— |
Shared secret for authenticating the push API ( |
|
|
No |
|
SDK log verbosity: |
WeChat Enterprise Bot Configuration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
|
Enable WeChat Enterprise bot integration. |
|
|
No |
— |
WeChat Enterprise corporation ID. |
|
|
No |
— |
WeChat Enterprise application secret. |
|
|
No |
— |
Token for verifying WeChat webhook requests. |
|
|
No |
— |
AES key for encrypting/decrypting WeChat messages. |
|
|
No |
— |
WeChat Enterprise agent (application) ID. |
Kubernetes / Cluster Integration¶
Variable |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
|
No |
— |
Path to the kubeconfig file used by generic Kubernetes Job tools. |
|
|
No |
— |
Kubeconfig context used by the generic Job profile fallback. |
|
|
No |
|
Default namespace for the generic Job profile fallback. |
|
|
No |
|
Comma-separated namespace allow-list for generic Job tools. |
|
|
No |
— |
Default image for the generic Job profile fallback. |
|
|
No |
|
Profile id used when env vars create the fallback profile. |
|
|
No |
— |
Path to a private local JSON file containing generic clusters and Job profiles. |
|
|
No |
— |
Inline JSON config for generic clusters and Job profiles. Use a file for private local values. |
Security Notes¶
All API keys and tokens are used server-side only and are never exposed to the browser client.
AUTH_MODE=disabledremoves application-level authentication. Anyone who can reach the service gets admin-level access, so use it only behind trusted local access or another access-control layer.AUTH_SINGLE_ADMIN=truefails closed until the administrator bootstrap has completed. Do not expose registration before that step.AUTH_COOKIE_SECURE=falseonly permits cookies over plain HTTP. It does not encrypt login credentials, session cookies, or application traffic; use HTTPS and restore the secure-cookie default as soon as possible.Store your
.env.localfile securely and do not commit it to version control.The
.gitignorefile already excludes.env*files (except.env.example).