Skip to content

Settings Reference

This page is a comprehensive reference for every Snippbot configuration setting, organized by category. Settings can be set via:

  1. Environment variables (highest priority)
  2. Config file (~/.snippbot/config.toml)
  3. Settings UI (/settings)
  4. Settings API (PATCH /api/settings/{category})

See Configuration Priority for more on how values are resolved.

KeyEnv varDefaultDescription
server_hostSNIPPBOT_HOST"" (dual-stack)Daemon bind address (empty = IPv4 + IPv6)
server_portSNIPPBOT_PORT18781API + UI port
log_levelSNIPPBOT_LOG_LEVELinfodebug, info, warning, error
auto_open_browserSNIPPBOT_AUTO_OPEN_BROWSERtrueOpen browser on startup
data_dirSNIPPBOT_DATA_DIR~/.snippbotRoot data directory
projects_dirSNIPPBOT_PROJECTS_DIR{data_dir}/projectsProjects directory
log_dirSNIPPBOT_LOG_DIR{data_dir}/logsLog file directory
KeyEnv varDefaultDescription
anthropic_api_keyANTHROPIC_API_KEY""Anthropic Claude API key
openai_api_keyOPENAI_API_KEY""OpenAI API key
openrouter_api_keyOPENROUTER_API_KEY""OpenRouter API key
gemini_api_keyGEMINI_API_KEY""Google Gemini API key
deepseek_api_keyDEEPSEEK_API_KEY""DeepSeek API key
grok_api_keyGROK_API_KEY""Grok / xAI API key
groq_api_keyGROQ_API_KEY""Groq API key
mistral_api_keyMISTRAL_API_KEY""Mistral AI API key
default_modelSNIPPBOT_DEFAULT_MODELclaude-sonnet-4-6Default 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 fieldDefaultDescription
modeselectiveWhen to containerize: off, selective (risk-based), all
scopesessionContainer sharing: session, agent, shared
workspace_accessroWorkspace mount: none, ro, rw
network.enabledtrueContainer network (the Safe profile enables it; Strict disables it)
network.allowed_domains[]Optional domain allowlist
default_imagesnippbot/sandbox-base:latestBase container image
runtime_preference["docker","podman","process"]Runtime selection order (first available wins)
resources.cpu_cores1.0CPU cores per container
resources.memory_mb512Memory limit per container
resources.timeout_seconds300Per-command execution timeout
block_when_no_runtimefalseFail closed (block) instead of host fallback when no runtime is available
contain_custom_pythonfalseRun installed custom_python tools contained under Safe/Strict (vs. blocked). The SNIPPBOT_CONTAIN_CUSTOM_PYTHON env var overrides + locks it
strict_daemon_loopbackfalseUnder Strict, allow daemon-only loopback (Linux). The SNIPPBOT_STRICT_DAEMON_LOOPBACK env var overrides + locks it
KeyEnv varDefaultDescription
browser_backendSNIPPBOT_BROWSER_BACKENDmanagedmanaged, chrome, cdp, browserless
browser_headlessSNIPPBOT_BROWSER_HEADLESStrueRun browser headlessly
browser_auto_snapshotSNIPPBOT_BROWSER_AUTO_SNAPSHOTfalseAuto-screenshot on each action
browser_snapshot_interval_msSNIPPBOT_BROWSER_SNAPSHOT_INTERVAL500Screenshot interval
browser_stream_fpsSNIPPBOT_BROWSER_STREAM_FPS2Live stream frame rate
browser_stream_qualitySNIPPBOT_BROWSER_STREAM_QUALITY75JPEG quality (1–100)
browserless_urlSNIPPBOT_BROWSERLESS_URL""Browserless instance URL
browser_cdp_urlSNIPPBOT_BROWSER_CDP_URL""Chrome DevTools Protocol URL
KeyEnv varDefaultDescription
secret_keySNIPPBOT_SECRET_KEY(auto-generated)HMAC signing key
cors_originsSNIPPBOT_CORS_ORIGINShttp://localhost:5173Comma-separated allowed origins
api_key_requiredSNIPPBOT_API_KEY_REQUIREDtrueRequire API key for all requests
bootstrap_mode(auto)(disabled after setup)First-run setup mode
KeyEnv varDefaultDescription
scheduler_enabledSNIPPBOT_SCHEDULER_ENABLEDtrueEnable the scheduler engine
scheduler_tick_intervalSNIPPBOT_SCHEDULER_TICK_INTERVAL1.0Check interval in seconds
scheduler_max_concurrentSNIPPBOT_SCHEDULER_MAX_CONCURRENT4Max concurrent job runs
scheduler_auto_pause_failures5Auto-pause after N consecutive failures
KeyEnv varDefaultDescription
workflow_max_concurrent_runsWORKFLOW_MAX_CONCURRENT_RUNS10Max simultaneous workflow runs
workflow_step_timeout3600Per-step timeout in seconds
KeyEnv varDefaultDescription
memory_max_episodesSNIPPBOT_MEMORY_MAX_EPISODES10000Max stored episodes per agent
memory_max_age_daysSNIPPBOT_MEMORY_MAX_AGE_DAYS365Episode retention period
memory_vector_enabledSNIPPBOT_MEMORY_VECTORtrueEnable vector/semantic memory
memory_graph_enabledSNIPPBOT_MEMORY_GRAPHtrueEnable knowledge graph
KeyEnv varDefaultDescription
channel_adapter_portSNIPPBOT_CHANNEL_PORT18790Adapter webhook receiver port
channel_rate_limit_per_minute30Inbound message rate limit
channel_rate_limit_per_hour500Hourly message limit
channel_proactive_enabledfalseAllow proactive agent messages
channel_quiet_hours_start22:00Start of quiet hours
channel_quiet_hours_end08:00End of quiet hours
channel_max_proactive_per_hour5Max proactive messages/hour
channel_public_urlSNIPPBOT_PUBLIC_URL""Public URL for webhooks
channel_keySNIPPBOT_CHANNEL_KEY(auto)Credential encryption passphrase
KeyEnv varDefaultDescription
brave_search_api_keyBRAVE_SEARCH_API_KEY""Brave Search API key
github_tokenGITHUB_TOKEN""GitHub personal access token
slack_bot_tokenSLACK_BOT_TOKEN""Alternative Slack token
elevenlabs_api_keyELEVENLABS_API_KEY""ElevenLabs TTS key
hume_api_keyHUME_API_KEY""Hume AI voice key