Reference
Platforms#
PlatformId is a closed union with one adapter registry entry per platform — the internal full registry currently has 42 hosts, grouped by hook paradigm (the deepest cross-platform divergence). Public coverage pages intentionally hide open-source hosts below the star threshold.
Prefer a visual, filterable view? See the full interactive coverage matrix on the dedicated coverage page →
Host, client, harness#
Three words circulate for the things this page lists, and they are not synonyms. agent-connector writes configuration into an app that owns a writable config file, so the word that fits is host — or client, which is what the specs themselves say.
| Term | Who uses it | What it names |
|---|---|---|
| host | this reference | the app with a config file we can write — the thing an adapter targets |
| client | the MCP, Agent Plugins 1.0.0 and Agent Skills specs | the same thing. Agent Plugins defines it as “a tool that discovers, installs, loads, and executes plugin components”, and uses the word throughout — “harness” appears nowhere in any of the three specs |
| harness | Anthropic, OpenAI, Google, Microsoft, AWS, Vercel, Cloudflare | a different layer — the engine that runs the session loop behind the front end |
“Agent harness” is now real product vocabulary rather than blog jargon, so it is worth being precise about. VS Code carries both words in the same documentation set: it supports “multiple agent harnesses: Local, GitHub Copilot, Anthropic Claude, OpenAI Codex, and Cloud”, where “an agent harness coordinates an agent session, including tool calls, context, and code changes” — while its separate Agent Host is the local process that owns that session. Kiro says the same structurally: its IDE, CLI, Web and Mobile apps are “different ways to talk to the same unified agent harness”.
Generated capability snapshot#
The support counts below are generated from the adapter registry before the site builds. They describe what agent-connector wires today; the host-native gap/provenance notes stay separate on the coverage matrix.
| Surface | Adapters wired |
|---|---|
| MCP | 41 / 42 |
| Hooks | 32 / 42 |
| Commands | 19 / 42 |
| Skills | 36 / 42 |
| Subagents | 16 / 42 |
| Memory | 41 / 42 |
| Statusline | 4 / 42 |
| Actions | 9 / 42 |
json-stdio 24#
Full hook dispatch. One universal hook entrypoint binary handles all of them.
| Platform | id | MCP native target |
|---|---|---|
| Claude Code | claude-code | ~/.claude.json / .mcp.json → mcpServers (hooks in settings.json) |
| CodeBuddy | codebuddy | ~/.codebuddy.json / .mcp.json → mcpServers (Claude Code fork; hooks in .codebuddy/settings.json) |
| Codex CLI | codex | ~/.codex/config.toml → [mcp_servers.*] (hooks in hooks.json) |
| Cursor | cursor | .cursor/mcp.json → mcpServers (hooks in hooks.json) |
| VS Code Copilot | vscode-copilot | .vscode/mcp.json → servers |
| JetBrains Copilot | jetbrains-copilot | shares the GitHub Copilot .github/ files |
| GitHub Copilot CLI | copilot-cli | mcp.json → mcpServers |
| Gemini CLI | gemini-cli | .gemini/ → mcpServers (opt-in host-native AfterModel usage) |
| Qwen CLI | qwen-code | .qwen/ → mcpServers |
| Kiro | kiro | mcpServers |
| Kimi CLI | kimi | mcpServers |
| Crush | crush | crush.json → mcp (root key, not mcpServers) |
| Goose | goose | host config |
| Hermes | hermes | host config |
| Droid (Factory) | droid | ~/.factory/mcp.json → mcpServers (hooks in ~/.factory/hooks.json) |
| OpenHands | openhands | ~/.openhands/mcp.json → mcpServers (hooks in a separate .openhands/hooks.json) |
| Antigravity (IDE) | antigravity | ~/.gemini/antigravity/mcp_config.json → mcpServers (hooks.json) |
| Antigravity CLI (agy) | antigravity-cli | shares ~/.gemini/antigravity/ |
| Continue | continue | ~/.continue/config.yaml → mcpServers (YAML ARRAY; hooks in separate settings.json, honors CONTINUE_GLOBAL_DIR) |
| Amazon Q Developer CLI | amazon-q | ~/.aws/amazonq/mcp.json (user) / .amazonq/mcp.json (project) → mcpServers (hooks in cli-agents/q_cli_default.json; subagents as cli-agents/<name>.json) |
| Grok Build | grok-build | $GROK_HOME/config.toml (default ~/.grok) → [mcp_servers.<id>] TOML; hooks in $GROK_HOME/hooks/*.json (Claude-compatible JSON) |
| Grok CLI | grok-cli | ~/.grok/user-settings.json → mcp.servers (JSON ARRAY, keyed by id; hooks in the SAME file under top-level hooks, user-scope only) |
| Devin CLI (Cognition) | devin | ~/.config/devin/config.json (user) / .devin/config.json (project) → mcpServers (hooks under the same file's "hooks" key, Claude-compatible) |
| Open Interpreter | open-interpreter | ~/.openinterpreter/config.toml ($INTERPRETER_HOME) → [mcp_servers.<id>] TOML table; hooks in ~/.openinterpreter/hooks.json (a Codex fork) |
mcp-only 10#
MCP registration only, no hook layer. Detection surfaces “hooks unavailable here.”
| Platform | id | MCP native target |
|---|---|---|
| Warp | warp | ~/.warp/.mcp.json → mcpServers (cwd keyed as working_directory) |
| Cline | cline | globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json → mcpServers (the parent kilo forked) |
| Trae | trae | mcp config |
| Zed | zed | host config |
| Codebuff | codebuff | mcp.json → mcpServers |
| Mux | mux | mcp config |
| Pi | pi | telemetry/skills surface; no writable MCP hook config |
| Windsurf | windsurf | ~/.codeium/windsurf/mcp_config.json (user/global ONLY) → mcpServers (object map; remote keyed by serverUrl) |
| Junie | junie | ~/.junie/mcp/mcp.json (user) / .junie/mcp/mcp.json (project) → mcpServers (JetBrains' own agent; object map; remote keyed by url) |
| Mistral Vibe | mistral-vibe | .vibe/config.toml (project) / ~/.vibe/config.toml (user) → [[mcp_servers]] (TOML ARRAY-OF-TABLES, keyed by name) |
ts-plugin 8#
Framework-generated bridge module exporting lifecycle functions that import your handler.
| Platform | id | MCP native target |
|---|---|---|
| OpenCode | opencode | generated exported plugin module importing your handler |
| MiMoCode | mimo-code | OpenCode fork (Xiaomi @mimo-ai/cli); generated plugin module in ~/.config/mimocode/plugin/ (MCP root key mcp) |
| Kilo CLI | kilo-cli | generated @kilocode/plugin module registered in kilo.jsonc's plugin array |
| Kilo Code | kilo | generated plugin module in .kilo/plugin/ (7.x shares the Kilo CLI backend) |
| OMP | omp | generated plugin module |
| NVIDIA NemoClaw | nemoclaw | OpenClaw wrapper/fork; generated plugin module in the wrapped ~/.openclaw/openclaw.json (detected via ~/.nemoclaw/) |
| OpenClaw | openclaw | generated plugin module |
| Amp | amp | generated plugin module in .amp/plugins/<id>.ts (project scope; MCP in settings.json → "amp.mcpServers") |
PlatformId also includes synthetic and unknown sentinels used internally.