Tools

aidaemon provides a set of built-in tools the LLM can call autonomously during the agentic loop.

Tool Trait

All tools implement the same interface:

rust
trait Tool {
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn schema(&self) -> Value;       // OpenAI function-calling format
    async fn call(&self, args: &str) -> Result<String>;
}

Built-in Tools

ToolDescriptionConfig
terminalExecute shell commands with approval flow[terminal]
system_infoQuery hostname, OS, uptime, memoryAlways enabled
remember_factStore long-term facts in SQLiteAlways enabled
manage_configRead/update/restore config.tomlAlways enabled
browserHeadless Chrome automation[browser] enabled=true
spawn_agentSpawn recursive sub-agents[subagents]
cli_agentDelegate to external CLI tools[cli_agents]
MCP toolsDynamically discovered via MCP servers[mcp.*]

Tool Registration Order

Tools are registered during initialization in this order:

  1. SystemInfoTool
  2. TerminalTool (with approval channel)
  3. RememberFactTool
  4. ConfigManagerTool
  5. BrowserTool (if enabled)
  6. CliAgentTool (if enabled)
  7. MCP tools (if configured)
  8. SpawnAgentTool (if enabled)