ScuttleBot
Config Schema - scuttlebot
Back to top
scuttlebot
Config Schema
Config Schema¶
Quick-reference for all scuttlebot.yaml fields. For narrative explanation and examples see Configuration.
Top-level¶
| Field | Type | Default | Env override |
|---|---|---|---|
api_addr |
string | 127.0.0.1:8080 |
SCUTTLEBOT_API_ADDR |
mcp_addr |
string | 127.0.0.1:8081 |
SCUTTLEBOT_MCP_ADDR |
ergo¶
| Field | Type | Default | Env override |
|---|---|---|---|
external |
bool | false |
SCUTTLEBOT_ERGO_EXTERNAL |
binary_path |
string | ergo |
— |
data_dir |
string | ./data/ergo |
— |
network_name |
string | scuttlebot |
SCUTTLEBOT_ERGO_NETWORK_NAME |
server_name |
string | irc.scuttlebot.local |
SCUTTLEBOT_ERGO_SERVER_NAME |
irc_addr |
string | 127.0.0.1:6667 |
SCUTTLEBOT_ERGO_IRC_ADDR |
api_addr |
string | 127.0.0.1:8089 |
SCUTTLEBOT_ERGO_API_ADDR |
api_token |
string | (auto-generated) | SCUTTLEBOT_ERGO_API_TOKEN |
tls_domain |
string | — | — |
require_sasl |
bool | false |
— |
default_channel_modes |
string | +n |
— |
ergo.history¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
postgres_dsn |
string | — |
mysql.host |
string | — |
mysql.port |
int | — |
mysql.user |
string | — |
mysql.password |
string | — |
mysql.database |
string | — |
bridge¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | true |
nick |
string | bridge |
password |
string | (auto-generated) |
channels |
[]string | ["#general"] |
buffer_size |
int | 200 |
web_user_ttl_minutes |
int | 5 |
tls¶
| Field | Type | Default |
|---|---|---|
domain |
string | (empty — TLS disabled) |
email |
string | — |
cert_dir |
string | {ergo.data_dir}/certs |
allow_insecure |
bool | true |
llm.backends[]¶
| Field | Type | Default |
|---|---|---|
name |
string | required |
backend |
string | required |
api_key |
string | — |
base_url |
string | (provider default) |
model |
string | (first available) |
region |
string | us-east-1 (Bedrock only) |
aws_key_id |
string | (from env/role) |
aws_secret_key |
string | (from env/role) |
allow |
[]string | — |
block |
[]string | — |
default |
bool | false |
Supported backend values: anthropic, gemini, openai, bedrock, ollama, openrouter, groq, together, fireworks, mistral, deepseek, xai, cerebras, litellm, lmstudio, vllm, localai
bots¶
bots.oracle¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
default_backend |
string | (first default backend) |
bots.scribe¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | true |
log_dir |
string | data/logs/scribe |
bots.sentinel¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
backend |
string | (default backend) |
channel |
string | #general |
mod_channel |
string | #moderation |
policy |
string | (built-in policy) |
window_size |
int | 20 |
window_age |
duration | 5m |
cooldown_per_nick |
duration | 10m |
min_severity |
string | medium |
bots.steward¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
backend |
string | (default backend) |
channel |
string | #general |
mod_channel |
string | #moderation |
bots.warden¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | true |
Rate limits are fixed at 5 messages/second sustained with a burst of 10. They are not configurable via YAML.
bots.herald¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
channel |
string | #alerts |
bots.scroll¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | true |
max_lines |
int | 50 |
rate_limit |
int | 3 (requests/min) |
bots.snitch¶
| Field | Type | Default |
|---|---|---|
enabled |
bool | false |
alert_channel |
string | #ops |
Full skeleton¶
api_addr: 127.0.0.1:8080
mcp_addr: 127.0.0.1:8081
ergo:
external: false
binary_path: ergo
data_dir: ./data/ergo
network_name: scuttlebot
server_name: irc.scuttlebot.local
irc_addr: 127.0.0.1:6667
api_addr: 127.0.0.1:8089
tls_domain: "" # set to enable Let's Encrypt on the IRC port
history:
enabled: false
postgres_dsn: ""
bridge:
enabled: true
nick: bridge
channels:
- "#general"
buffer_size: 200
web_user_ttl_minutes: 5
tls:
domain: "" # set to enable Let's Encrypt on the HTTP API
email: ""
allow_insecure: true
llm:
backends:
- name: anthro
backend: anthropic
api_key: ${ANTHROPIC_API_KEY}
model: claude-haiku-4-5-20251001
default: true
bots:
oracle:
enabled: false
scribe:
enabled: true
sentinel:
enabled: false
steward:
enabled: false
warden:
enabled: true
herald:
enabled: false
scroll:
enabled: true
snitch:
enabled: false