Package Exports
- @aiderdesk/extensions
Readme
@aiderdesk/extensions
TypeScript type definitions and examples for building AiderDesk extensions.
Installation
npm install @aiderdesk/extensions
# or
yarn add @aiderdesk/extensions
# or
pnpm add @aiderdesk/extensionsUsage
import type { Extension, ExtensionContext, ToolDefinition } from '@aiderdesk/extensions';
import { z } from 'zod';
export default class MyExtension implements Extension {
async onLoad(context: ExtensionContext) {
context.log('Extension loaded!', 'info');
}
}Example Extensions
This directory contains example extensions demonstrating various capabilities of the AiderDesk extension system.
Documentation
For comprehensive documentation on creating and using extensions, see the Extensions documentation:
- Extensions Overview - What extensions can do
- Creating Extensions - How to build extensions
- Installation Guide - Install extensions globally or per-project
- API Reference - Complete API documentation
- Events Reference - All available events
- Examples Gallery - Browse all examples
Example Extensions
| Extension | Description | Extension Functions |
|---|---|---|
| theme.ts | Adds /theme command to switch AiderDesk themes |
onLoad, getCommands |
| sound-notification.ts | Plays a "Jobs Done" sound when a prompt finishes | onLoad, onPromptFinished |
| protected-paths.ts | Blocks file operations on protected paths (.env, .git/, node_modules/) |
onLoad, onToolCalled |
| plan-mode.ts | Adds a Plan mode that enforces planning before coding | onLoad, getModes, onAgentStarted |
| pirate.ts | Adds a Pirate agent that speaks like a swashbuckling sea dog | onLoad, getAgents, onAgentProfileUpdated |
| permission-gate.ts | Prompts for confirmation before running dangerous bash commands (rm -rf, sudo, chmod/chown 777) |
onLoad, onToolCalled |
| generate-tests.ts | Adds /generate-tests command to generate unit tests for files |
onLoad, getCommands |
| sandbox/ | OS-level sandboxing for bash commands using @anthropic-ai/sandbox-runtime |
onLoad, onUnload, onTaskInitialized, onTaskClosed, onToolCalled |
| rtk/ | Transparently rewrites shell commands to RTK equivalents, reducing LLM token consumption by 60-90% | onLoad, getCommands, onToolCalled |
| chunkhound-search/ | Provides chunkhound-search tool using ChunkHound for semantic code search |
onLoad, onUnload, onProjectOpen, onToolFinished, getTools |
| chunkhound-on-semantic-search-tool/ | Overrides power---semantic_search to use ChunkHound for better semantic understanding |
onLoad, onUnload, onProjectOpen, onToolCalled, onToolFinished |
| wakatime.ts | Tracks coding activity by sending heartbeats to WakaTime via wakatime-cli | onLoad, onPromptStarted, onPromptFinished, onToolFinished, onFilesAdded |
| redact-secrets/ | Redacts secret values from .env* files in file read results |
onLoad, onProjectOpen, onToolFinished |
| external-rules.ts | Includes rule files from Cursor, Claude Code, and Roo Code configurations | onLoad, onRuleFilesRetrieved |
| lsp/ | LSP integration for automatic error detection after file edits and code intelligence tools (find references) | onLoad, onUnload, getTools, onProjectStarted, onProjectStopped, onToolFinished |
| ultrathink.ts | Detects prompts like "ultrathink" / "think hard" and increases OpenAI/OpenAI-compatible reasoning effort (xhigh for -max models, otherwise high) |
onLoad, onAgentStarted |
Quick Start
1. Download Type Definitions
For TypeScript support and autocompletion, download the extension type definitions:
# Download to your project
curl -o extension-types.d.ts https://raw.githubusercontent.com/hotovo/aider-desk/main/packages/extensions/extensions.d.ts2. Install an Extension
Copy the extension file(s) to your AiderDesk extensions directory:
# Global extensions (available to all projects)
cp extensions/sound-notification.ts ~/.aider-desk/extensions/
# Project-specific extensions
cp extensions/sound-notification.ts .aider-desk/extensions/3. Hot Reload
Extensions are automatically reloaded when files change. No restart needed!