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 |
| Key | Env var | Default | Description |
|---|
sandbox_mode | SNIPPBOT_SANDBOX_MODE | selective | off, selective, all |
sandbox_scope | SNIPPBOT_SANDBOX_SCOPE | session | session, agent, shared |
sandbox_workspace_access | SNIPPBOT_SANDBOX_WORKSPACE | rw | none, ro, rw |
sandbox_docker_host | DOCKER_HOST | (system) | Docker socket path |
sandbox_default_image | SNIPPBOT_SANDBOX_IMAGE | python:3.12-slim | Default container image |
sandbox_network_enabled | SNIPPBOT_SANDBOX_NETWORK | false | Enable network in containers |
sandbox_allowed_domains | SNIPPBOT_SANDBOX_DOMAINS | "" | Comma-separated domain allowlist |
sandbox_cpu_limit | SNIPPBOT_SANDBOX_CPU | 1.0 | Default CPU cores |
sandbox_memory_mb | SNIPPBOT_SANDBOX_MEMORY_MB | 512 | Default memory limit |
sandbox_timeout_seconds | SNIPPBOT_SANDBOX_TIMEOUT | 300 | Default execution timeout |
| 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 |