Extensions
Extensions allow you to extend and customize AiderDesk's functionality. They can add new tools, commands, modes, agent profiles, and react to various events in the application lifecycle.
What Extensions Can Do
Register New Capabilities
- Tools - Add custom tools that the AI can use (e.g., run linters, execute scripts, query databases)
- Commands - Create slash commands like
/generate-testsor/deploy - Modes - Define custom chat modes with specific behaviors
- Agent Profiles - Create specialized agents with custom instructions and settings
Hook into Events
Extensions can listen to and modify events throughout AiderDesk:
- Task Events - Task creation, initialization, updates, and closure
- Agent Events - Agent execution start, finish, and step completion
- Tool Events - Tool approval, execution, and completion
- File Events - Files added to or dropped from context
- Prompt Events - Prompt submission and processing
- Response Events - Response chunks and completion
- And more...
Modify Behavior
Many events allow extensions to modify data before it's processed:
- Block dangerous operations (e.g., prevent
rm -rfcommands) - Transform prompts before sending to the AI
- Filter files being added to context
- Auto-answer approval requests
- Modify AI responses
Extension Locations
Extensions can be installed at two levels:
| Level | Path | Scope |
|---|---|---|
| Global | ~/.aider-desk/extensions/ | Available to all projects |
| Project | ./.aider-desk/extensions/ | Only for the current project |
Project-level extensions can override global extensions with the same name.
Hot Reload
Extensions are automatically reloaded when changes are detected. There's no need to restart AiderDesk when developing or modifying extensions. Just save your file and the changes take effect within seconds.
Getting Started
- Create an Extension - Learn how to build your first extension
- Installation Guide - Install extensions globally or per-project
- API Reference - Complete API documentation
- Events Reference - All available events and their properties
- Examples - Browse example extensions for inspiration