OwliaBot is configured via config.yaml in the project root.
# AI Providers (required)
directory: ./workspace/skills
channel: "telegram:883499266"
# Heartbeat (scheduled tasks)
Configure one or more AI providers. OwliaBot uses failover if the primary is unavailable.
| Field | Type | Description |
|---|
id | string | Unique identifier |
model | string | Model name (e.g., claude-sonnet-4-5) |
apiKey | string | API key |
priority | number | Lower = higher priority |
| Field | Type | Description |
|---|
token | string | Bot token from @BotFather |
allowList | string[] | Allowed user IDs |
| Field | Type | Description |
|---|
token | string | Bot token from Discord Developer Portal |
allowList | string[] | Allowed user IDs |
| Field | Type | Default | Description |
|---|
workspace | string | ./workspace | Path to workspace directory |
| Field | Type | Default | Description |
|---|
skills.enabled | boolean | true | Enable/disable skills system |
skills.directory | string | {workspace}/skills | Skills directory path |
Scheduled task execution.
| Field | Type | Default | Description |
|---|
heartbeat.enabled | boolean | false | Enable heartbeat |
heartbeat.cron | string | 0 * * * * | Cron expression (hourly default) |
Some settings can be overridden via environment:
| Variable | Purpose |
|---|
ANTHROPIC_API_KEY | Claude API key |
OPENAI_API_KEY | OpenAI API key |
ALCHEMY_API_KEY | For crypto-balance skill |