Skip to content

Supported AI agents

Plugin

The plugin runs on AI coding agents that implement both Agent Skills and MCP as open standards. Every host gets the same skills, built-in agents, and MCP tools. Hooks, plugin manifests, and MCP registration differ per host.

HostStatusInstall from the hostInstall with the Archcore CLIMCP wiringHook events
Claude CodeProductionPlugin marketplaceYes, at user scopeAutomatic, from the plugin’s .claude.mcp.json (runs archcore from PATH)SessionStart, PreToolUse, PostToolUse
CursorImplementedPlugin marketplace or local directoryNo. Cursor manages plugins in its UI, so the CLI prints the instruction and runs no commandUser-registered from the docs/cursor.mcp.example.json template, scoped with --project ${workspaceFolder}sessionStart, preToolUse, afterMCPExecution
Codex CLIImplementedcodex plugin marketplace addYes, machine-level rather than per projectAutomatic, from the plugin’s .codex.mcp.json (runs archcore from PATH)SessionStart, PreToolUse, PostToolUse, behind a feature flag
GitHub Copilot CLIImplementedcopilot plugin install (subdir spec)Yes, machine-level rather than per projectProject-level only. Run archcore init --agent copilot (the plugin ships no MCP server here)sessionStart, preToolUse, postToolUse

Production means the plugin is deployed and used day-to-day; bug fixes and new skills ship through the marketplace.

Implemented means every skill and agent works and all documented hooks fire. Some host-level edge cases still surface, listed below.

archcore plugin install acts on three of the four hosts and reports what it found on each. Cursor is the exception: it has no command-line plugin mechanism, so the CLI prints the UI instruction instead. On Codex CLI and GitHub Copilot the plugin lands in a machine-level store outside the repository, so one install serves every project on that machine. Install the plugin has the commands.

Copilot support is CLI only. VS Code agent mode has no self-serve plugin install, and cloud-agent sandboxes do not load plugin hooks.

Each host reads its own manifest, and the fields differ because each host discovers different parts of the package.

HostManifest fileDeclares
Claude Code.claude-plugin/plugin.jsonmcpServers (convention-based for the rest)
Cursor.cursor-plugin/plugin.jsonskills, agents, hooks, rules
Codex CLI.codex-plugin/plugin.jsonskills, hooks, mcpServers, interface
GitHub Copilot CLI.plugin/plugin.jsonskills, agents, commands, hooks, and an empty mcpServers

Copilot’s empty mcpServers is deliberate. See GitHub Copilot CLI below.

HostWho registers MCPCommand
Claude CodeThe plugin, via .claude.mcp.jsonarchcore mcp
CursorYou, via ~/.cursor/mcp.json or .cursor/mcp.jsonarchcore mcp --project ${workspaceFolder}
Codex CLIThe plugin, via .codex.mcp.jsonarchcore mcp
GitHub Copilot CLIYou, via archcore init --agent copilotarchcore mcp --project <path>

Every host needs the Archcore CLI installed globally. Install it with the script on the CLI install guide.

HostHook fileWrite matcherPath env var
Claude Codehooks/hooks.jsonWrite|Edit${CLAUDE_PLUGIN_ROOT}
Cursorhooks/cursor.hooks.jsonWrite${CURSOR_PLUGIN_ROOT}
Codex CLIhooks/codex.hooks.jsonWrite|Edit|apply_patch${PLUGIN_ROOT}, Codex’s host-neutral name
GitHub Copilot CLIhooks/copilot.hooks.jsoncreate|edit|str_replace_editor|apply_patch$COPILOT_PLUGIN_ROOT, falling back to $PLUGIN_ROOT then $CLAUDE_PLUGIN_ROOT

All four hook files ship in the same plugin package, and the host selects the right one automatically.

Since v0.7.0 the hook scripts in bin/ carry only host glue. Every guard and advisory runs inside the CLI, through archcore hooks <host> <event>. See How the plugin works and the CLI hooks reference.

Cursor exposes afterMCPExecution instead of a post-tool event. It fires after an MCP tool call succeeds, and the plugin runs the whole post-write pass there in one invocation. If the MCP call itself fails, the hook does not fire, and you see the MCP error directly.

Cursor also does not auto-register plugin-provided MCP, so you copy the docs/cursor.mcp.example.json template yourself. Keep the --project ${workspaceFolder} argument: without it, one registration reads a single project’s .archcore/ across every Cursor window.

Cursor is the only host that loads the plugin’s rules/ directory (archcore-context.mdc and archcore-files.mdc).

One adapter covers both Codex surfaces, the CLI and the desktop app. They share one binary, one ~/.codex/config.toml, and one plugin install, so the agent id is codex-cli on both and no artifact distinguishes them.

Codex applies project wiring only after two separate consents. It loads a project’s .codex/ layer only for a project marked trust_level = "trusted", and it runs a command hook only after you review and trust it under /hooks. Writing the files grants neither, so wiring stays inert until you give both.

Codex CLI uses the same PostToolUse semantics as Claude Code, and adds Codex’s apply_patch tool to the PreToolUse matcher. Codex’s hooks feature gates Codex hooks. Enable it with codex --enable hooks, or add a [features] table to ~/.codex/config.toml:

[features]
hooks = true

Before Codex 0.129.0 the key is spelled codex_hooks = true. On Codex CLI 0.153.4, codex features list reports hooks as stable and enabled by default; check that feature on your installed version. Without it, hooks are inert, and skills, MCP, and agents still work.

The path env var is ${PLUGIN_ROOT}, Codex’s canonical host-neutral name. There is no ${CODEX_PLUGIN_ROOT} variable.

Copilot needs two steps, and both are required:

Terminal window
copilot plugin install archcore-ai/plugin:plugins/archcore
archcore init --agent copilot --project "$PWD"

Step 2 is not optional. Copilot launches a plugin’s MCP server in the plugin install directory with no project path (github/copilot-cli#4234), so a plugin-provided server would serve the plugin cache instead of your repository. The plugin therefore declares an empty mcpServers, and the project-level entry written by archcore init --agent copilot is the only source of document tools. Archcore CLI v0.6.7 and later refuses to serve from a plugin cache, so the failure mode is loud rather than silent.

A project that skips step 2 loads skills and hooks but has no document tools at all. The session-start hook detects the missing wiring and prints the command to run.

Copilot’s preToolUse event carries only a permission decision, so it cannot receive advisory context. The write guard runs there; the code-alignment injection does not. Copilot also reads .claude/settings.json, so a repository wired for both hosts can run the hooks twice. The verdict stays correct.

Each host surfaces the four skills through its own convention:

  • Claude Code, Cursor, and Codex CLI load skills directly from skills/<name>/SKILL.md.
  • GitHub Copilot CLI additionally declares commands/, which holds one <name>.md wrapper per command.

The skill content is the same on every host. Only the entry point differs.

archcore-assistant and archcore-auditor ship in three formats:

  • .md under agents/ for Claude Code and Cursor.
  • .toml under agents/ for Codex CLI. The auditor uses sandbox_mode = "read-only"; the assistant uses sandbox_mode = "workspace-write".
  • .agent.md under copilot-agents/ for GitHub Copilot CLI.

Tool whitelists are identical across formats. See Built-in agents.

Use Claude Code if:

  • You want the host with the deepest testing coverage.
  • You’re already invested in the Claude Code CLI workflow.

Use Cursor if:

  • You prefer a full editor over a terminal-first agent.
  • You want afterMCPExecution semantics (a single post-MCP hook).

Use Codex CLI if:

  • You want a terminal-first agent that registers MCP for you.
  • You’re comfortable enabling Codex’s hooks feature to get full hook coverage.

Use GitHub Copilot CLI if:

  • You’re already on Copilot and can run the one-time archcore init --agent copilot wiring step.

The plugin does not run on an MCP-aware agent without a plugin runtime. Gemini CLI, OpenCode, Roo Code, and Cline use the CLI path instead, which gives them MCP access and agent integrations without plugin skills or guided flows. archcore plugin --agent <id> rejects those ids with an error naming the four hosts that ship a plugin.

Track planned host support in the plugin repository.