Skip to content

Configuration

Commander is configured through environment variables and configuration files.

Environment Variables

Core

VariableDefaultDescription
COMMANDER_MODEauto-editApproval mode: plan, read-only, auto-edit, full-auto, suggest
COMMANDER_DEBUGfalseEnable verbose debug logging
COMMANDER_LOG_LEVELinfoLog level: debug, info, warn, error
COMMANDER_LOG_PERSISTfalseEnable log persistence to disk (auto-degrades to Error-only when backlog >10000)
COMMANDER_MAX_CONCURRENCY5Maximum concurrent agent executions
COMMANDER_TIMEOUT_MS120000Default execution timeout (ms)

Server

VariableDefaultDescription
PORT4000HTTP server port
HOST0.0.0.0HTTP server host
CORS_ORIGIN*CORS allowed origins
RATE_LIMIT_WINDOW_MS60000Rate limit window (ms)
RATE_LIMIT_MAX100Max requests per window

Multi-Tenancy

VariableDefaultDescription
TENANT_PROVIDERnullnull (single-tenant) or simple (multi-tenant)
TENANT_PROVIDER_CONFIGJSON config for tenant mapping

Security

VariableDefaultDescription
COMMANDER_SECURITY_PROFILEstandardSandbox profile: strict, standard, permissive, hardened
COMMANDER_EVENT_SOURCING_WAL.commander_state/event-sourcing.walEvent sourcing WAL file path
WARROOM_STORAGEmemoryWar Room storage backend: memory or sqlite

Observability

VariableDefaultDescription
OTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry OTLP endpoint
OTEL_SERVICE_NAMEcommanderOpenTelemetry service name

CLI Configuration

Commander supports a .commander.json config file in your project root:

json
{
  "provider": "auto",
  "model": "auto",
  "mode": "balanced",
  "topology": "auto",
  "budget": "auto",
  "mcpServers": [],
  "a2a": {
    "server": {
      "enabled": false,
      "port": 3002,
      "host": "127.0.0.1"
    },
    "remoteAgents": []
  }
}
FieldDefaultDescription
providerautoPrimary LLM provider
modelautoModel name
modebalancedExecution mode: fast, balanced, thorough
topologyautoOrchestration topology: auto, single, chain, dispatch, orchestrator, review
budgetautoToken budget (integer ≥1000 or auto)
mcpServers[]MCP server configurations
a2aAgent-to-Agent server and remote agent config

API keys are never stored in the config file — they remain in environment variables or system keychain.

Provider Config

Set any single provider key. Commander auto-detects and chains fallbacks:

bash
export OPENAI_API_KEY=sk-...        # Primary: OpenAI | Fallback: DeepSeek → GLM → MiMo
export ANTHROPIC_API_KEY=sk-ant-... # Anthropic Claude
export GOOGLE_API_KEY=...           # Google Gemini

See the full providers list.

MIT Licensed — Built for multi-agent orchestration.