Agent Configuration
Crucible runs AI agents through two complementary systems:
- Chat agents (
[chat]) — Crucible’s own REPL agent backed by one of the configured LLM providers. - ACP agents (
[acp]) — external agents (Claude Code, OpenCode, Gemini, etc.) hosted via the Agent Client Protocol.
LLM provider credentials and endpoints live in [llm]; this page covers the two agent-selection sections.
Configuration Location
Agent settings live in ~/.config/crucible/config.toml, or in whatever file you point
-C / $CRUCIBLE_CONFIG at. A kiln’s .crucible/ directory holds kiln.toml, which
carries only the kiln’s display name — [chat] and [acp] are not read from there.
[chat] — Chat Defaults
Applied when you run cru chat without --acp or --provider.
[chat]# Override the default model (otherwise inherited from the default provider)model = "llama3.2"
# Prefer external ACP agents or Crucible's built-in agent# Values: "acp" or "crucible" (default)agent_preference = "crucible"
# Override provider endpoint for Ollama/compatible# endpoint = "http://localhost:11434"
# Generation controls (optional)# temperature = 0.7# max_tokens = 4096
# Stream thinking/reasoning tokens below the spinnershow_thinking = falseThe actual provider default lives under [llm]:
[llm]default = "ollama" # key from [llm.providers.*]
[llm.providers.ollama]type = "ollama"default_model = "llama3.2"See [llm] for the full provider reference.
[acp] — ACP Agent Defaults
Applied when you run cru chat --acp <name> or bring up the agent picker.
[acp]# Default ACP agent to use when --acp is omitted (optional)default_agent = "opencode" # or "claude", "gemini", "codex", "cursor", "hermes"
# Streaming response timeout in minutesstreaming_timeout_minutes = 15The removed fields lazy_agent_selection, enable_discovery,
session_timeout_minutes and max_message_size_mb still load without an
error; the values are ignored. See acp.
Custom ACP Agent Profiles
Extend a built-in agent profile with additional environment or arguments under [acp.agents.<name>]:
[acp.agents.my-claude]extends = "claude"env = { ANTHROPIC_BASE_URL = "http://localhost:4000" }The extended name is then selectable via cru chat --acp my-claude.
See acp for every field on [acp] and [acp.agents.<name>], including
delegation and per-agent permissions.
See Also
- chat —
cru chatreference - acp — full
[acp]field reference - llm — LLM provider configuration
- Agent Cards — authoring agent cards
- Agent Client Protocol — ACP architecture