Instance
| Variable | Default | Needed in production? |
|---|---|---|
COMPANY_AGENTS_HOME | ~/.company-agents/instances/default | Yes, if you want the data anywhere other than the home directory |
COMPANY_AGENTS_INSTANCE_ID | default | No, unless you run multiple instances on one host |
NODE_ENV | development | Yes, set to production |
Ports and network
| Variable | Default | Notes |
|---|---|---|
DASHBOARD_HOST | 127.0.0.1 | Set to 0.0.0.0 for network access |
DASHBOARD_PORT | 3101 | |
ORCHESTRATOR_PORT | 3100 | Internal API; usually bound to loopback |
MCP_SERVER_PORT | 4200 | Where agent adapters connect |
DASHBOARD_SCHEME | http | Set to https when terminating TLS in-process |
TLS_CERT_PATH | (unset) | Path to TLS cert for https scheme |
TLS_KEY_PATH | (unset) | Path to TLS key |
Database
| Variable | Default | Notes |
|---|---|---|
DATABASE_URL | (unset; uses PGlite) | Set to a Postgres URL to use real Postgres |
DATABASE_POOL_MIN | 2 | Connection pool minimum |
DATABASE_POOL_MAX | 10 | Connection pool maximum |
DATABASE_SSL | false | Set to true for managed Postgres |
PGLITE_PATH | $COMPANY_AGENTS_HOME/db | Where PGlite writes data |
Secrets and master key
| Variable | Default | Notes |
|---|---|---|
MASTER_KEY_PATH | $COMPANY_AGENTS_HOME/secrets/master.key | Default file path |
MASTER_KEY_SOURCE | file://$MASTER_KEY_PATH | Use a secret manager URI for production |
SECRET_STORE_ALGORITHM | aes-256-gcm | Do not change unless you have a very good reason |
Storage paths
| Variable | Default | Notes |
|---|---|---|
STORAGE_PATH | $COMPANY_AGENTS_HOME/data/storage | User-uploaded files |
BACKUP_PATH | $COMPANY_AGENTS_HOME/data/backups | Scheduled backups |
RUNTIME_SERVICES_PATH | ~/.company-agents/runtime-services | Per-run service state |
LOG_PATH | $COMPANY_AGENTS_HOME/logs | Orchestrator logs |
LOG_RETENTION_DAYS | 30 | How long to keep rotated logs |
LLM providers
The Vercel AI SDK selects the provider at runtime based onLLM_PROVIDER. The corresponding API key env var must be set for
the provider you pick.
| Variable | Default | Notes |
|---|---|---|
LLM_PROVIDER | deepseek | anthropic, openai, google, deepseek, mistral, etc. |
ANTHROPIC_API_KEY | (unset) | If using Anthropic |
OPENAI_API_KEY | (unset) | If using OpenAI |
GOOGLE_GENERATIVE_AI_API_KEY | (unset) | If using Google |
DEEPSEEK_API_KEY | (unset) | If using Deepseek |
MISTRAL_API_KEY | (unset) | If using Mistral |
LLM_BASE_URL | (unset) | Override for proxies (OpenRouter, etc.) |
Budgets and safety
| Variable | Default | Notes |
|---|---|---|
DEFAULT_TASK_BUDGET_USD | 1.50 | Per-task ceiling default |
DEFAULT_LOOP_BUDGET_CALLS | 100 | Per-loop tool call ceiling |
APPROVAL_TIMEOUT_MINUTES | 240 | Default approval expiry |
BREACH_KILL_FACTOR | 5 | Catastrophic breach multiplier |
LEASE_TTL_SECONDS | 300 | Default lease window |
LEASE_RENEWAL_FRACTION | 0.6 | Renew at 60% of window |
Adapters
Adapters are configured per-adapter via their own env vars. The common ones:| Variable | Default | Notes |
|---|---|---|
CLAUDE_CODE_BIN | claude | Path to Claude Code binary |
CODEX_BIN | codex | Path to Codex binary |
GEMINI_BIN | gemini | Path to Gemini CLI binary |
CURSOR_BIN | cursor-agent | Path to Cursor agent binary |
OPENCLAW_BIN | openclaw | Path to OpenClaw binary |
MCP_SERVER_URL | http://localhost:4200 | Where adapters find the MCP server |
Logging and observability
| Variable | Default | Notes |
|---|---|---|
LOG_LEVEL | info | debug, info, warn, error |
LOG_FORMAT | pretty | pretty or json (use json in production) |
OTEL_EXPORTER_OTLP_ENDPOINT | (unset) | Enable OpenTelemetry export |
OTEL_SERVICE_NAME | company-agents | Service name in traces |
Development-only
These are meant for local dev and should not be set in production:| Variable | Default | Notes |
|---|---|---|
DEV_DISABLE_AUTH | false | Skip dashboard auth entirely; never in prod |
DEV_FAKE_COSTS | false | Return pretend cost numbers instead of real ones |
DEV_ALLOW_INSECURE_MASTER_KEY | false | Allow world-readable master key file |
Marketing and docs
These have nothing to do with the orchestrator, but they are in the same repo and may show up in.env.local:
| Variable | Default | Notes |
|---|---|---|
NEXT_PUBLIC_SITE_URL | https://agents.salesteams.ai | Marketing site canonical URL |
NEXT_PUBLIC_DOCS_URL | https://docs.salesteams.ai | Docs canonical URL |
Reading order
If you are new to configuring a production deployment, read these in order:- Overview to pick a shape
- Storage for the directory layout
- Database for PGlite vs. real Postgres
- Secrets for the master key story
- This page, as you go, to find the specific var you need