Skip to content

About

Which AI coding agent supports what? Every cell cites the vendor docs; quotes re-checked weekly.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

35 Commits

Folders and files

Repository files navigation

AgentMatrix

Which AI coding agent supports what?
Every cell quotes the vendor's own documentation. Every quote is re-checked against its source weekly, and cells are re-derived with Claude by anyone with an API key when the documentation changes.

Interactive matrix Β· Raw JSON Β· Add an agent Β· How it works Β· Write-up

CI Weekly verification License: MIT

The interactive matrix, 22 agents by 32 capabilities: typing mcp filters it to the MCP rows; clicking the Claude Code / MCP client cell opens the verdict, the vendor's verbatim sentence, the source URL and the date it was last found there; then the same for Cline

22 agents Γ— 32 capabilities Β· 682/704 cells verified against their source Β· last verification 2026-09-23 Β· βœ… 474 Β· 🟑 109 Β· ❌ 99 Β· ❔ 22

"Does Codex CLI have hooks? Can Gemini CLI act as an MCP server? Which of these run natively on Windows?" Answers to questions like these are usually given from memory, and comparison tables are rarely dated or sourced. This repository answers from the documentation, and shows its work:

  • Every value has a receipt. Each cell stores the sentence from the vendor's documentation that justifies it, the URL of that page, and the date the sentence was last found there. On the interactive site click any cell to read it; in the tables below hover a cell for the quote and click to open the source.
  • Quotes are re-checked every week, for free. A GitHub Action re-fetches every source page and searches for every quote. A quote that has disappeared demotes its cell to unknown and opens an issue. That catches rewritten or removed documentation; it cannot catch a feature that was removed while an old changelog entry still describes it, which is what the rubric, human review and the wrong-cell issues are for. Matching tolerates formatting differences (whitespace, capitalisation, punctuation, smart quotes, markdown emphasis, inline HTML tags), not wording differences.
  • Cells are re-derived by Claude, on demand. When documentation changes, a maintainer or contributor runs the pipeline with their own API key: Claude reads the agent's documentation in one request, decides every capability against a written rubric, and returns a quote per cell that is then verified mechanically. Humans review the resulting pull request row by row.

The mechanical check proves that a sentence exists on a page. Whether the sentence supports the value is a judgment made by the rubric, the model, and the reviewers, in that order. Cells are open to challenge: report one with a link to the docs.

One cell, in full, as stored in data/matrix.json:

{
  "agent": "gemini-cli",
  "capability": "sandbox",
  "value": "yes",
  "quote": "Lightweight, built-in sandboxing using `sandbox-exec`.",
  "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/sandbox.md",
  "notes": "Built-in sandbox enabled with -s/--sandbox or GEMINI_SANDBOX: macOS Seatbelt (sandbox-exec profiles), Docker/Podman containers, a Windows Native sandbox (icacls low integrity level), and gVisor/runsc on Linux.",
  "confidence": "high",
  "verified": true,
  "verified_at": "2026-09-10"
}

Why not a hand-maintained table?

Hand-curated comparisons such as coding-agents-matrix and the many blog round-ups are useful, and some cover more products than this repository does. The difference is what backs each cell. Here every value comes with the sentence from the vendor's own documentation that justifies it, that sentence is re-checked against the live page every week, and the values follow a public rubric that anyone can argue with. Fewer agents, but every cell has a receipt.

This project is independent: it is not affiliated with Anthropic or with any of the vendors in the table. Claude, the model used to re-derive cells, is made by the vendor of the first column. Two things limit what that can do to the data: the model only proposes cells whose quotes are then verified mechanically, and every change lands through a pull request that a person reviews against the source. If you still see bias in a cell, the rubric and the quote are right there to be challenged.

The matrix

Legend: βœ… yes Β· 🟑 partial Β· ❌ no Β· ❔ unknown. On desktop, hover a cell for the quote (for ❌ cells, the explanation); click it to open the source. On mobile, use the interactive matrix.

Extensibility

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
MCP client βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… βœ…
Acts as MCP server βœ… ❌ ❌ ❌ ❌ ❌ ❌ 🟑 ❌ ❌ ❔ ❌ ❌ ❔ ❌ βœ… ❌ ❌ ❌ ❌ ❌ ❌
Lifecycle hooks βœ… βœ… βœ… βœ… βœ… βœ… 🟑 βœ… 🟑 🟑 βœ… 🟑 βœ… ❔ βœ… βœ… βœ… ❌ βœ… 🟑 βœ… ❌
Custom slash commands βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… 🟑 🟑 βœ… βœ… 🟑 βœ… βœ… βœ… βœ… 🟑 βœ… βœ… βœ… βœ…
Agent Skills βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… βœ… ❔ ❌ βœ… βœ… ❌ βœ… βœ… βœ… βœ…
Plugin system βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… ❌ βœ… [🟑](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx " --agent Load an agent file by slug ") ❌ βœ… βœ… ❌ βœ…
Subagents βœ… βœ… 🟑 βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… 🟑 ❔ 🟑 βœ… βœ… 🟑 βœ… βœ… βœ… βœ…
Project instruction file βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 βœ… βœ… βœ… βœ… [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx " /init Create an AGENTS.md file for the current project ") βœ… βœ… βœ… ❌ βœ…
AGENTS.md support βœ… βœ… 🟑 βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… βœ… [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx " /init Create an AGENTS.md file for the current project ") ❌ βœ… βœ… ❌ βœ…

Control and safety

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
Permission modes βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 🟑 βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Built-in sandbox βœ… βœ… βœ… βœ… 🟑 ❌ ❌ 🟑 ❌ 🟑 βœ… ❌ 🟑 ❌ ❌ ❌ βœ… ❌ 🟑 ❌ ❌ ❌
Checkpoints and rewind βœ… ❌ βœ… βœ… βœ… βœ… βœ… ❌ 🟑 🟑 βœ… ❔ ❔ ❔ 🟑 ❌ βœ… βœ… 🟑 ❌ ❌ ❌
Plan mode βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 βœ… 🟑 βœ… ❌ ❌ [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx " --readonly Plan mode β€” read-only tools only ") ❌ βœ… βœ… βœ… βœ…
Full-auto mode βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx " --auto Allow all tools without prompting ") βœ… 🟑 βœ… βœ… βœ…

Sessions and automation

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
Resume sessions βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 βœ… βœ… βœ… βœ… [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx " --resume Resume the most recent session ") βœ… βœ… βœ… βœ… βœ…
Headless and CI mode βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 βœ… βœ… βœ… 🟑
Background tasks βœ… 🟑 βœ… βœ… βœ… βœ… 🟑 🟑 ❌ 🟑 βœ… βœ… ❔ [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx " /jobs List background jobs ") 🟑 βœ… βœ… 🟑 🟑
Parallel agents βœ… 🟑 🟑 βœ… βœ… 🟑 🟑 🟑 ❌ βœ… βœ… 🟑 ❔ ❔ 🟑 🟑 βœ… 🟑 βœ… βœ… βœ… βœ…

Models

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
Model selection [βœ…](https://code.claude.com/docs/en/model-config.md "use /model <alias name> to switch immediately, or run /model with no argument to open the picker.") βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx " /model Switch between configured chat models ") βœ… βœ… βœ… βœ…
Custom providers and BYOK 🟑 βœ… 🟑 🟑 βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ ❌ βœ… βœ… ❌ βœ… βœ… βœ…
Local models ❌ βœ… ❌ ❌ βœ… βœ… βœ… βœ… βœ… ❌ βœ… βœ… βœ… βœ… ❌ ❌ βœ… βœ… ❌ βœ… βœ… ❌
Reasoning control βœ… βœ… βœ… βœ… βœ… [βœ…](https://docs.cline.bot/cli/cli-reference.md "Set reasoning effort level between none low medium high xhigh (default: medium)") βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 ❔ βœ… 🟑
Token and cost display βœ… 🟑 🟑 βœ… βœ… βœ… 🟑 βœ… βœ… βœ… βœ… βœ… ❔ [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx " /info Show session information, including token usage and cost ") 🟑 βœ… βœ… 🟑 βœ…

Input and output

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
Image input βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❔ ❔ βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Built-in web search βœ… βœ… βœ… βœ… 🟑 🟑 🟑 βœ… ❌ βœ… βœ… βœ… βœ… ❔ ❌ βœ… βœ… ❌ βœ… βœ… βœ… 🟑
Built-in URL fetch βœ… 🟑 βœ… βœ… βœ… βœ… βœ… 🟑 βœ… βœ… βœ… βœ… 🟑 βœ… ❌ βœ… βœ… 🟑 βœ… 🟑 βœ… ❔
Official IDE integration βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 🟑 βœ… βœ… ❌ βœ… βœ… ❌ βœ… βœ… ❌ βœ… βœ… βœ… ❌
Git and PR workflow βœ… 🟑 🟑 βœ… βœ… 🟑 🟑 🟑 🟑 βœ… βœ… βœ… ❔ [🟑](https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/headless-mode.mdx "cn -p 'Generate a commit message' git commit -F -") ❌ 🟑 🟑 🟑 🟑 βœ… 🟑
Persistent memory βœ… 🟑 🟑 ❌ 🟑 🟑 ❌ 🟑 ❌ ❌ βœ… 🟑 ❔ ❔ 🟑 ❔ ❌ 🟑 ❌ 🟑 ❌ 🟑

Platform

Capability Claude Code Codex CLI Gemini CLI Cursor CLI GitHub Copilot CLI Cline OpenCode Goose Aider Amp Qwen Code Crush OpenHands CLI Continue CLI Amazon Q Developer CLI Auggie Factory Droid CLI Plandex Kiro CLI Junie Mistral Vibe Warp Agent CLI
Native Windows βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… βœ… 🟑 [βœ…](https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md "irm https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1 iex") βœ… ❌ [βœ…](https://raw.githubusercontent.com/continuedev/continue/main/docs/snippets/cli-install.mdx "irm https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.ps1 iex") 🟑 🟑 βœ… ❌ βœ… βœ…
Open source ❌ βœ… βœ… ❌ ❌ βœ… βœ… βœ… βœ… ❌ βœ… 🟑 βœ… βœ… βœ… ❌ ❌ βœ… ❌ ❌ βœ… 🟑
Free tier ❌ βœ… βœ… βœ… βœ… 🟑 🟑 🟑 🟑 🟑 ❌ βœ… βœ… βœ… βœ… ❌ ❌ βœ… βœ… ❔ βœ… 🟑

Values follow a written rubric per capability (see data/capabilities.json). Partial means documented but limited: experimental or preview, deprecated, one platform only, only inside one session, or only reachable through an add-on such as an MCP server. The rubric and the review process prefer partial or unknown over an optimistic yes. The matrix covers the CLI or terminal surface of each product; IDE-only capabilities are partial with a note.

Recent changes

Last run 2026-09-23:

  • Claude Code Β· AGENTS.md support: partial β†’ yes (source)

How it works

Two loops, one free and one that costs API credits.

Every week, free (npm run check -- --fix --soft, run by GitHub Actions):

   1. fetch every evidence URL in data/matrix.json (raw markdown or page text)
   2. search each page for the cell's quote, tolerating formatting but not wording
   3. quote found      β†’ verified_at = today
      quote missing    β†’ value = "unknown"; the old quote, URL and value are kept in the notes
      page unreachable β†’ cell untouched, reported
   4. no value changed β†’ the refreshed dates are committed
      values changed   β†’ a pull request and an issue list the affected cells for a human

When documentation changes, with an API key (npm run verify, run by whoever has a key):

   1. fetch every source page listed for the agent in data/agents.json
   2. Claude (claude-fable-5-1 by default) reads all of it in one request and returns one JSON
      entry per capability: value, verbatim quote, source URL, notes, constrained by a schema
   3. every returned quote is searched for in the fetched text; a quote that is not found demotes
      the cell to "unknown" (a fabricated or paraphrased quote does not survive this step)
   4. if the new answer is "unknown" but the previous verified quote is still on its page,
      the previous cell is kept, so one bad answer never erases good data
   5. the result is diffed against the previous matrix; in the weekly Action, value changes are
      opened as a pull request for review and unchanged values are committed directly

If the repository has an ANTHROPIC_API_KEY secret, the weekly Action runs the second loop instead of the first. Without one, it runs the free loop only; nothing else changes. Either way the Action needs the repository setting that lets GitHub Actions open pull requests (see CONTRIBUTING.md).

Design choices worth knowing:

  • One request per agent, whole docs in context. No chunking or retrieval, so the model can reconcile statements that live on different pages (a feature announced in the changelog but marked experimental in the reference).
  • The rubric is the contract. Model and humans decide cells by the same written rules, so a disagreement is a rubric bug, not a matter of taste.
  • Mechanical verification is the safety net. npm run check needs no API key and works on hand-written data too, which is how contributions are validated in CI.
  • Humans merge. Automation only opens pull requests. Maintainers review each changed row against its source before it lands.

Run it locally

Requires Node.js 22 or newer (the version CI uses).

git clone https://github.com/barbarkaragul-oss/agentmatrix && cd agentmatrix
npm install
npm test                       # unit tests, no network
npm run check                  # verify every quote against its source (about 400 pages, under a minute, no API key)
npm run build                  # regenerate README tables and docs/ from data/

To re-derive cells with Claude you need your own Anthropic API key. Nobody else pays for it: the repository does not ship a key, and contributors run this step themselves.

export ANTHROPIC_API_KEY=sk-ant-...
npm run verify -- --agent aider   # one agent
npm run verify                    # all agents, then: npm run build

verify accepts --model <id> (default claude-fable-5-1, also read from AGENTMATRIX_MODEL), --effort low|medium|high|xhigh|max (default high), --concurrency N (agents verified in parallel, 1 to 10, default 2), and --dry-run to only fetch the sources and report their size. Each run prints its token usage and an approximate cost at the end.

Contributing

  • Add an agent: append it to data/agents.json with the documentation URLs the pipeline should read (prefer raw markdown on GitHub or static docs pages). Then either run npm run verify -- --agent <id> with your own API key, fill the cells by hand in data/matrix.json, or open the pull request with the entry alone: its cells start as unknown and anyone with a key can fill them in a follow-up. Finish with npm run check and npm run build.
  • Fix a cell: edit its value, quote, evidence_url and notes in data/matrix.json. The quote must appear verbatim on the page. CI runs npm run check on every pull request.
  • Add a capability: append it to data/capabilities.json with a question and an unambiguous rubric, then run npm run verify (or open the PR with the capability alone and let the weekly run fill it).
  • Report a wrong cell: open an issue with a link to the docs.

See CONTRIBUTING.md for the data format.

Wanted

More agents. If a terminal coding agent you use is missing, request it or add it yourself: the entry in data/agents.json with its documentation URLs is a self-contained first pull request, and anyone with an API key can fill the cells afterwards. Capabilities are open for proposals too (the current 32 are not meant to be final); a good proposal comes with a rubric that two people would apply the same way.

FAQ

Why is a cell "unknown" when I know the feature exists? Either the documentation the pipeline reads does not state it, or the quote could not be verified at the URL. Send a PR with the doc link; that is exactly what the check is for.

Does it cover IDE features? The matrix is about the CLI or terminal agent. Where a capability only exists in the vendor's IDE extension, the rubric says partial and the notes say so.

What does it cost to run? The weekly quote check costs nothing: GitHub Actions and Pages are free for public repositories. Re-deriving cells with Claude is paid by whoever runs it, with their own key. At list prices ($10 per million input tokens, $50 per million output tokens), one agent costs roughly $0.50 to $3 with claude-fable-5-1 depending on how much documentation it has (sources are capped at 800k characters per agent), so a full pass over all 22 agents is on the order of $30. Any Claude model can be substituted with --model, and each run prints its actual token usage and cost.

Is the model allowed to disagree with a human edit? Yes, and the diff will show it with the model's quote next to it. The pull request is the place to settle it, and the rubric is the referee.

How do I cite this? Cite the repository and the verification date shown at the top; a CITATION.cff is included, so the "Cite this repository" button on GitHub works. The raw data is in docs/matrix.json.

License

MIT. Documentation quotes belong to their respective vendors and are reproduced as short excerpts for the purpose of citation.

About

Which AI coding agent supports what? Every cell cites the vendor docs; quotes re-checked weekly.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages