Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dallay/corvus/llms.txt

Use this file to discover all available pages before exploring further.

Configuration Schema

Corvus uses a TOML configuration file located at ~/.corvus/config.toml. Generate with:
corvus onboard

Complete Example

api_key = "sk-..."
default_provider = "openrouter"
default_model = "anthropic/claude-sonnet-4-20250514"
default_temperature = 0.7

[memory]
backend = "sqlite"
auto_save = true
embedding_provider = "openai"
vector_weight = 0.7
keyword_weight = 0.3

[memory.surreal]
url = "http://127.0.0.1:8000"
namespace = "corvus"
database = "memory"
allow_http_loopback = true

[gateway]
port = 8080
host = "127.0.0.1"
require_pairing = true
allow_public_bind = false

[autonomy]
level = "supervised"
workspace_only = true
allowed_commands = ["git", "npm", "cargo", "ls", "cat", "grep"]
forbidden_paths = ["/etc", "/root", "/proc", "/sys", "~/.ssh", "~/.gnupg", "~/.aws"]
max_actions_per_hour = 100
max_cost_per_day_cents = 500

[runtime]
kind = "native"

[runtime.docker]
image = "alpine:3.20"
network = "none"
memory_limit_mb = 512
cpu_limit = 1.0
read_only_rootfs = true
mount_workspace = true

[heartbeat]
enabled = false
interval_minutes = 30

[tunnel]
provider = "none"

[secrets]
encrypt = true

[browser]
enabled = false
allowed_domains = ["docs.rs"]

[composio]
enabled = false

[observability]
backend = "log"

[identity]
format = "openclaw"

[channels_config.telegram]
bot_token = "..."
allowed_users = ["alice", "bob"]

[channels_config.discord]
bot_token = "..."
allowed_users = ["123456789012345678"]

[channels_config.slack]
bot_token = "..."
app_token = "..."
allowed_users = ["U01234567"]

[channels_config.whatsapp]
access_token = "EAABx..."
phone_number_id = "123456789012345"
verify_token = "my-secret-verify-token"
allowed_numbers = ["+1234567890"]

[peripherals]
enabled = false
boards = []

Root Fields

api_key
string
required
Primary API key for default provider
default_provider
string
default:"openrouter"
AI provider: openai, anthropic, openrouter, ollama, etc.
default_model
string
Model name (provider-specific)
default_temperature
float
default:"0.7"
Temperature (0.0 - 2.0)

[memory]

backend
string
default:"sqlite"
Backend: sqlite, surreal, markdown, none
auto_save
boolean
default:"true"
Automatically save memories
embedding_provider
string
default:"openai"
Embedding provider: openai, noop
vector_weight
float
default:"0.7"
Vector search weight (0.0 - 1.0)
keyword_weight
float
default:"0.3"
Keyword search weight (0.0 - 1.0)

[autonomy]

level
string
default:"supervised"
Autonomy level: readonly, supervised, full
workspace_only
boolean
default:"true"
Restrict file access to workspace
allowed_commands
string[]
Shell command allowlist
forbidden_paths
string[]
Blocked filesystem paths
max_actions_per_hour
u32
default:"100"
Rate limit for tool executions
max_cost_per_day_cents
u32
default:"500"
Daily cost limit in cents

[runtime]

kind
string
default:"native"
Runtime: native, docker

[gateway]

port
u16
default:"8080"
Gateway port
host
string
default:"127.0.0.1"
Gateway host
require_pairing
boolean
default:"true"
Require pairing code
allow_public_bind
boolean
default:"false"
Allow binding to 0.0.0.0 without tunnel

Build docs developers (and LLMs) love