JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 219
  • Score
    100M100P100Q127946F
  • License MIT

Type definitions and examples for AiderDesk extensions

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/extensions

Usage

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:

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
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.ts

2. Install an Extension

Copy the extension file(s) to your AiderDesk extensions directory:

# Global extensions (available to all projects)
cp sound-notification.ts ~/.aider-desk/extensions/

# Project-specific extensions
cp sound-notification.ts .aider-desk/extensions/

3. Hot Reload

Extensions are automatically reloaded when files change. No restart needed!