Configuration
Current source of truth: src/config.rs.
Config locations
- primary:
~/.asterclaw/config.json - legacy fallback:
~/.picoclaw/config.json - if
ASTERCLAW_HOMEis set, path resolves toASTERCLAW_HOME/config.json
Template:
config/config.example.json
Top-level sections
agentschannelsprovidersgatewayruntimetoolsheartbeatdevices
agents.defaults
workspacerestrict_to_workspaceprovidermodelmax_tokenstemperaturemax_tool_iterations
channels.telegram
enabledtokenproxyallow_from
When Telegram is enabled, token and non-empty allow_from are required.
providers
Sections present in Config schema:
openai,openrouter,groq,zhipu,gemini,deepseek,anthropic
Providers actually implemented in runtime (src/providers/mod.rs):
openai,openrouter,groq,zhipu(glm),deepseek
Important:
anthropic/claudeis explicitly rejected in current MVPgeminiexists in config schema, but provider runtime support is not implemented yet
Fields per provider section:
api_key,api_base,proxy,auth_method,connect_mode
API keys can be provided via config or env:
OPENAI_API_KEYOPENROUTER_API_KEYGROQ_API_KEYZHIPU_API_KEYDEEPSEEK_API_KEY
gateway
hostport
runtime
worker_threadsmax_blocking_threads
Low-memory baseline:
worker_threads: 1max_blocking_threads: 8..16
tools.web
brave.*duckduckgo.*fetch_default_max_charsfetch_hard_max_charsfetch_hard_max_bytes
For Brave, API key is taken from tools.web.brave.api_key or BRAVE_API_KEY.
tools.exec
confirm_unknownauto_allow_prefixesrequire_confirm_prefixesalways_deny_prefixesstdout_max_bytesstderr_max_bytes
tools.tool_output_max_chars
0means no truncation>0applies truncation in tool loop context