Providers
ADHDev uses a provider system to support different IDEs, CLI tools, and AI extensions. Providers are simple JavaScript files that define how to detect, connect to, and interact with each tool.
Provider Categories
| Category | Description | Example |
|---|---|---|
ide | Desktop IDE applications | Cursor, VS Code, Windsurf |
cli | Terminal-based AI agents | Gemini CLI, Claude Code |
extension | IDE extensions/plugins | Cline, Roo Code |
acp | Agent Client Protocol agents | 35 supported agents |
How Providers Work
Each provider defines:
- Detection — how to find the running application (process names, CDP ports)
- Connection — how to connect (CDP, PTY, stdio)
- Chat reading — how to extract messages from the UI
- Message sending — how to input messages
- Model/mode — how to switch AI models or modes
Hot Reload
Providers can be updated without restarting the daemon. Changes to provider.js files are detected and loaded automatically.
Creating Custom Providers
See the Provider Development Guide for details on creating providers for new IDEs or agents.
javascript
// Example: ide/my-ide/provider.js
module.exports = {
type: 'my-ide',
name: 'My IDE',
category: 'ide',
cdpPorts: [9357],
processNames: { darwin: 'My IDE' },
scripts: {
readChat() { return `(() => { /* CDP JS */ })()`; },
sendMessage(params) { return `(() => { /* CDP JS */ })()`; },
},
};