Daemon Tools
Tools are the daemon's hands — they let it interact with the world.
Available Tools
| Tool | Description | Status |
|---|---|---|
| computer-use | Control mouse, keyboard, take screenshots | Planned |
| shell | Execute shell commands | Planned |
| browser | Automate web browsers | Planned |
| file | Read/write files | Planned |
| code | Code operations (parse, transform, execute) | Planned |
| memory | Persistent storage and context | Planned |
Tool Interface
All tools implement a common interface:
typescript
interface Tool { name: string; description: string; inputSchema: JSONSchema; execute(input: unknown): Promise<ToolResult>; isAvailable(): Promise<boolean>; } interface ToolResult { status: "success" | "error" | "needs_input"; output: unknown; error?: string; artifacts?: Artifact[]; }
Adding New Tools
Tools are modular and can be added without modifying the core daemon:
- Create tool class implementing
Toolinterface - Register tool in tool registry
- Tool becomes available to agent loop
See individual tool docs for implementation details.