Skip to content

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

CategoryDescriptionExample
ideDesktop IDE applicationsCursor, VS Code, Windsurf
cliTerminal-based AI agentsGemini CLI, Claude Code
extensionIDE extensions/pluginsCline, Roo Code
acpAgent Client Protocol agents35 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 */ })()`; },
  },
};

Released under the AGPL-3.0 License (OSS) / Proprietary (Cloud)