ADHDev Providers

April 13, 2026 · View on GitHub

IDE, CLI, Extension, and ACP provider definitions for ADHDev.

Structure

├── ide/            — IDE providers (Cursor, Antigravity, Windsurf, Kiro, etc.)
├── cli/            — CLI agent providers (Gemini CLI, Claude Code, Codex CLI)
├── extension/      — VS Code extension providers (Cline, Roo Code)
├── acp/            — ACP agent providers (35 agents)
├── registry.json   — Auto-generated provider index (inventory/lifecycle metadata)
├── validate.js     — Provider schema validator
├── CONTRIBUTING.md — How to add a new provider
└── COMPATIBILITY.md — OS/version compatibility matrix

Provider Format

Each provider consists of:

ide/my-ide/
  provider.json              ← Metadata + version compatibility
  scripts/
    1.0/                     ← Scripts for IDE version 1.0.x
      scripts.js             ← Main scripts entry point
      set_model.js           ← Individual script files
      set_mode.js
    0.9/                     ← Scripts for IDE version 0.9.x
      scripts.js

provider.json

{
  "type": "my-ide",
  "name": "My IDE",
  "category": "ide",
  "providerVersion": "1.0.0",
  "contractVersion": 2,
  "versionCommand": "my-ide --version",
  "compatibility": [
    { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" },
    { "ideVersion": ">=0.9.0", "scriptDir": "scripts/0.9" }
  ],
  "defaultScriptDir": "scripts/1.0",
  "cdpPorts": [9357, 9358],
  "processNames": { "darwin": "My IDE" }
}

Version Resolution

When the daemon starts:

  1. Detects installed IDE version (versionCommand)
  2. Matches against compatibility array (first match wins)
  3. Loads scripts from the matched scriptDir
  4. If no match → uses defaultScriptDir + shows warning

Adding a New Provider

  1. Create provider.json in the appropriate category
  2. Set providerVersion and contractVersion in the provider metadata
  3. Create version-specific script directories
  4. Validate: node validate.js ide/my-ide/provider.json
  5. Submit a PR

Important:

  • Adding a provider makes it part of the built-in inventory.
  • It does not automatically make it a supported or verified provider.
  • Support promotion should happen only after explicit testing is recorded in COMPATIBILITY.md and the docs/support catalog are updated.

See CONTRIBUTING.md for the full workflow.

How It Works

This repository is consumed by ADHDev in three ways:

MethodWhenDirectory
Bundlednpm install -g @adhdev/daemon-standalone_builtin/ (offline fallback)
Auto-updatedEvery daemon start~/.adhdev/providers/.upstream/
User customManual~/.adhdev/providers/ (never overwritten)

Loading priority: User custom > Auto-updated > Bundled

registry.json

Auto-generated index of all providers. It is useful for inventory and lifecycle metadata, but it is not the source of truth for public support guarantees.

Updated automatically by GitHub Actions on every push.

🛠️ Debugging & Fixing Providers (DevConsole)

When an IDE updates its UI (like changing a class name for the chat box or DOM structure), the provider scripts may break. You can fix them live using the ADHDev DevConsole:

  1. Start ADHDev with the dev flag locally: adhdev-standalone --dev
  2. Open http://127.0.0.1:19280 in your browser.
  3. DevConsole automatically enumerates active IDE CDP processes. Click any connected IDE to jump into its debugger screen.
  4. Use the script pad tool to modify scripts.js logic (e.g. testing new querySelector values) and execute it inside the IDE environment in real-time.
  5. Once your JS functions successfully interact with the new UI, copy them back into your local clone of this repository.

Supporting a New IDE Version

When an IDE releases a new version with DOM changes:

  1. Create a new script directory:

    mkdir -p ide/my-ide/scripts/1.1
    
  2. Copy from the previous version and modify:

    cp -r ide/my-ide/scripts/1.0/* ide/my-ide/scripts/1.1/
    # Edit scripts to match new DOM structure
    
  3. Update provider.json:

    "compatibility": [
      { "ideVersion": ">=1.1.0", "scriptDir": "scripts/1.1" },
      { "ideVersion": ">=1.0.0", "scriptDir": "scripts/1.0" }
    ],
    "defaultScriptDir": "scripts/1.1"
    
  4. Submit a PR. registry.json is auto-regenerated.

License

MIT