This page is a comprehensive reference for every Snippbot configuration setting, organized by category. Settings can be set via:
- Environment variables (highest priority)
- Config file (
~/.snippbot/config.toml)
- Settings UI (
/settings)
- Settings API (
PATCH /api/settings/{category})
See Configuration Priority for more on how values are resolved.
| Key | Env var | Default | Description |
|---|
server_host | SNIPPBOT_HOST | "" (dual-stack) | Daemon bind address (empty = IPv4 + IPv6) |
server_port | SNIPPBOT_PORT | 18781 | API + UI port |
log_level | SNIPPBOT_LOG_LEVEL | info | debug, info, warning, error |
auto_open_browser | SNIPPBOT_AUTO_OPEN_BROWSER | true | Open browser on startup |
data_dir | SNIPPBOT_DATA_DIR | ~/.snippbot | Root data directory |
projects_dir | SNIPPBOT_PROJECTS_DIR | {data_dir}/projects | Projects directory |
log_dir | SNIPPBOT_LOG_DIR | {data_dir}/logs | Log file directory |
| Key | Env var | Default | Description |
|---|
anthropic_api_key | ANTHROPIC_API_KEY | "" | Anthropic Claude API key |
openai_api_key | OPENAI_API_KEY | "" | OpenAI API key |
openrouter_api_key | OPENROUTER_API_KEY | "" | OpenRouter API key |
gemini_api_key | GEMINI_API_KEY | "" | Google Gemini API key |
deepseek_api_key | DEEPSEEK_API_KEY | "" | DeepSeek API key |
grok_api_key | GROK_API_KEY | "" | Grok / xAI API key |
groq_api_key | GROQ_API_KEY | "" | Groq API key |
mistral_api_key | MISTRAL_API_KEY | "" | Mistral AI API key |
default_model | SNIPPBOT_DEFAULT_MODEL | claude-sonnet-4-6 | Default LLM model |
Sandbox settings are not stored in config.toml and are not set via
environment variables. They live in their own store,
~/.snippbot/sandbox_config.json, and are edited through the Sandbox settings
page in the UI or the PUT /api/sandbox/config API. Selecting an Isolation
Profile (Off / Safe / Strict) sets the first four fields as a bundle; see
Run Code in Sandbox.
| Config field | Default | Description |
|---|
mode | selective | When to containerize: off, selective (risk-based), all |
scope | session | Container sharing: session, agent, shared |
workspace_access | ro | Workspace mount: none, ro, rw |
network.enabled | true | Container network (the Safe profile enables it; Strict disables it) |
network.allowed_domains | [] | Optional domain allowlist |
default_image | snippbot/sandbox-base:latest | Base container image |
runtime_preference | ["docker","podman","process"] | Runtime selection order (first available wins) |
resources.cpu_cores | 1.0 | CPU cores per container |
resources.memory_mb | 512 | Memory limit per container |
resources.timeout_seconds | 300 | Per-command execution timeout |
block_when_no_runtime | false | Fail closed (block) instead of host fallback when no runtime is available |
contain_custom_python | false | Run installed custom_python tools contained under Safe/Strict (vs. blocked). The SNIPPBOT_CONTAIN_CUSTOM_PYTHON env var overrides + locks it |
strict_daemon_loopback | false | Under Strict, allow daemon-only loopback (Linux). The SNIPPBOT_STRICT_DAEMON_LOOPBACK env var overrides + locks it |
| Key | Env var | Default | Description |
|---|
browser_backend | SNIPPBOT_BROWSER_BACKEND | managed | managed, chrome, cdp, browserless |
browser_headless | SNIPPBOT_BROWSER_HEADLESS | true | Run browser headlessly |
browser_auto_snapshot | SNIPPBOT_BROWSER_AUTO_SNAPSHOT | false | Auto-screenshot on each action |
browser_snapshot_interval_ms | SNIPPBOT_BROWSER_SNAPSHOT_INTERVAL | 500 | Screenshot interval |
browser_stream_fps | SNIPPBOT_BROWSER_STREAM_FPS | 2 | Live stream frame rate |
browser_stream_quality | SNIPPBOT_BROWSER_STREAM_QUALITY | 75 | JPEG quality (1–100) |
browserless_url | SNIPPBOT_BROWSERLESS_URL | "" | Browserless instance URL |
browser_cdp_url | SNIPPBOT_BROWSER_CDP_URL | "" | Chrome DevTools Protocol URL |
| Key | Env var | Default | Description |
|---|
secret_key | SNIPPBOT_SECRET_KEY | (auto-generated) | HMAC signing key |
cors_origins | SNIPPBOT_CORS_ORIGINS | http://localhost:5173 | Comma-separated allowed origins |
api_key_required | SNIPPBOT_API_KEY_REQUIRED | true | Require API key for all requests |
bootstrap_mode | (auto) | (disabled after setup) | First-run setup mode |
| Key | Env var | Default | Description |
|---|
scheduler_enabled | SNIPPBOT_SCHEDULER_ENABLED | true | Enable the scheduler engine |
scheduler_tick_interval | SNIPPBOT_SCHEDULER_TICK_INTERVAL | 1.0 | Check interval in seconds |
scheduler_max_concurrent | SNIPPBOT_SCHEDULER_MAX_CONCURRENT | 4 | Max concurrent job runs |
scheduler_auto_pause_failures | — | 5 | Auto-pause after N consecutive failures |
| Key | Env var | Default | Description |
|---|
workflow_max_concurrent_runs | WORKFLOW_MAX_CONCURRENT_RUNS | 10 | Max simultaneous workflow runs |
workflow_step_timeout | — | 3600 | Per-step timeout in seconds |
| Key | Env var | Default | Description |
|---|
memory_max_episodes | SNIPPBOT_MEMORY_MAX_EPISODES | 10000 | Max stored episodes per agent |
memory_max_age_days | SNIPPBOT_MEMORY_MAX_AGE_DAYS | 365 | Episode retention period |
memory_vector_enabled | SNIPPBOT_MEMORY_VECTOR | true | Enable vector/semantic memory |
memory_graph_enabled | SNIPPBOT_MEMORY_GRAPH | true | Enable knowledge graph |
| Key | Env var | Default | Description |
|---|
channel_adapter_port | SNIPPBOT_CHANNEL_PORT | 18790 | Adapter webhook receiver port |
channel_rate_limit_per_minute | — | 30 | Inbound message rate limit |
channel_rate_limit_per_hour | — | 500 | Hourly message limit |
channel_proactive_enabled | — | false | Allow proactive agent messages |
channel_quiet_hours_start | — | 22:00 | Start of quiet hours |
channel_quiet_hours_end | — | 08:00 | End of quiet hours |
channel_max_proactive_per_hour | — | 5 | Max proactive messages/hour |
channel_public_url | SNIPPBOT_PUBLIC_URL | "" | Public URL for webhooks |
channel_key | SNIPPBOT_CHANNEL_KEY | (auto) | Credential encryption passphrase |
| Key | Env var | Default | Description |
|---|
brave_search_api_key | BRAVE_SEARCH_API_KEY | "" | Brave Search API key |
github_token | GITHUB_TOKEN | "" | GitHub personal access token |
slack_bot_token | SLACK_BOT_TOKEN | "" | Alternative Slack token |
elevenlabs_api_key | ELEVENLABS_API_KEY | "" | ElevenLabs TTS key |
hume_api_key | HUME_API_KEY | "" | Hume AI voice key |