Repository navigation
Expand file tree
/
Copy pathcapabilities.json
More file actions
242 lines (242 loc) · 17.4 KB
/
Copy pathcapabilities.json
File metadata and controls
242 lines (242 loc) · 17.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
{
"values": {
"yes": "The capability is documented as supported and generally available, in the CLI or terminal surface of the product.",
"partial": "Documented, but with a limitation stated in the documentation: experimental, preview or beta (even if enabled by default); deprecated but still working; one platform only; a narrower form of the capability; only reachable through an add-on such as an MCP server or plugin; or only in the vendor's IDE surface rather than the CLI.",
"no": "Documentation explicitly says it is not supported, or the capability is absent from documentation that clearly covers the area (for example a complete command or configuration reference).",
"unknown": "Could not be determined from the documentation, or the evidence quote could not be verified against the source."
},
"groups": [
{ "id": "extend", "name": "Extensibility" },
{ "id": "control", "name": "Control and safety" },
{ "id": "session", "name": "Sessions and automation" },
{ "id": "model", "name": "Models" },
{ "id": "io", "name": "Input and output" },
{ "id": "platform", "name": "Platform" }
],
"capabilities": [
{
"id": "mcp_client",
"group": "extend",
"name": "MCP client",
"question": "Can the agent connect to external MCP servers and use their tools?",
"rubric": "YES if there is a documented way to configure MCP servers (config file, CLI command, or settings) and the agent can call their tools. PARTIAL if MCP support is marked experimental or preview, or limited to one transport. NO if MCP is not mentioned or documented as unsupported."
},
{
"id": "mcp_server",
"group": "extend",
"name": "Acts as MCP server",
"question": "Can the agent itself be exposed as an MCP server to other clients?",
"rubric": "YES if there is a documented command or mode that serves the agent (its tools or a task tool) over MCP, for example a serve subcommand. PARTIAL if the path is deprecated or experimental, or only a bundled extension rather than the agent is exposed. NO otherwise. Exposing the agent over ACP, HTTP or a proprietary protocol does not count as MCP."
},
{
"id": "hooks",
"group": "extend",
"name": "Lifecycle hooks",
"question": "Can users run their own scripts at lifecycle events such as before or after a tool call, or at session start?",
"rubric": "YES if a hook system with multiple documented events is available to end users through configuration; a declarative hooks file (JSON, TOML, YAML) that maps events to commands counts as configuration. PARTIAL if only one or two fixed points are exposed (for example a post-edit test command), or hooks are only reachable through a plugin or extension API written in code. NO otherwise."
},
{
"id": "custom_commands",
"group": "extend",
"name": "Custom slash commands",
"question": "Can users define reusable prompt templates or slash commands in files and invoke them explicitly?",
"rubric": "YES if user-defined commands or prompt templates are documented (markdown files in a commands directory, custom prompts in config) or if user-written SKILL.md skills can be invoked explicitly by name. PARTIAL if the only path is deprecated, replay of a command file, or a plugin or extension API, or if skills exist but can only be invoked by the model. NO otherwise."
},
{
"id": "skills",
"group": "extend",
"name": "Agent Skills",
"question": "Does the agent load Agent Skills (SKILL.md folders per the open Agent Skills format) or an equivalent modular skill package?",
"rubric": "YES if the docs describe loading SKILL.md-based skills or an equivalent named skills format from a directory. PARTIAL if skills are only available through an extension or plugin system with a different format, or are marked experimental. NO otherwise."
},
{
"id": "plugins",
"group": "extend",
"name": "Plugin system",
"question": "Is there a plugin or extension system that bundles commands, agents, hooks, or MCP servers, beyond raw MCP configuration?",
"rubric": "YES if a plugin or extension format and an install mechanism (marketplace, registry, or install command) are documented. PARTIAL if extensions exist but only for a narrow purpose (for example themes or models only), or are marked experimental. NO otherwise."
},
{
"id": "subagents",
"group": "extend",
"name": "Subagents",
"question": "Can the agent delegate work to subagents that run in their own context?",
"rubric": "YES if built-in or user-defined subagents or delegation with separate context are documented as generally available. PARTIAL if the documentation labels subagents experimental or preview (even when enabled by default), or delegation requires an experimental flag or an external orchestrator. NO otherwise."
},
{
"id": "project_instructions",
"group": "extend",
"name": "Project instruction file",
"question": "Does the agent read a project-level instruction file such as AGENTS.md, CLAUDE.md, GEMINI.md, or a rules file?",
"rubric": "YES if a project-level instruction file with a documented name or location is loaded automatically. PARTIAL if a file is loaded every session only after the user configures it (for example listing it in a project config), or must be passed manually. NO otherwise. Name the file or files in the notes."
},
{
"id": "agents_md",
"group": "extend",
"name": "AGENTS.md support",
"question": "Does the agent read AGENTS.md specifically (the cross-tool open convention)?",
"rubric": "YES if AGENTS.md is documented as automatically loaded. PARTIAL if it is loaded only through a configurable file-name setting, or the docs give an import, alias or symlink workaround. NO if the docs do not mention AGENTS.md."
},
{
"id": "permission_modes",
"group": "control",
"name": "Permission modes",
"question": "Can users choose between approval levels for tool and command execution?",
"rubric": "YES if two or more named approval modes are documented (for example ask each time, auto-accept edits, full auto), or a per-action permission configuration with prompt, allow and deny outcomes. PARTIAL if only a single on/off approval toggle exists. NO if actions are always approved or always prompted with no configuration."
},
{
"id": "sandbox",
"group": "control",
"name": "Built-in sandbox",
"question": "Does the agent sandbox shell commands at the OS level (filesystem or network isolation) without the user building their own container?",
"rubric": "YES if a built-in sandbox (seatbelt, bubblewrap, landlock, seccomp, gVisor, or a managed container) is documented as a generally available feature on more than one platform. PARTIAL if the sandbox covers one platform only, is in preview, or if the agent offers containers as an isolation option the user must set up (for example a --container flag). NO otherwise; a Docker image offered purely as an install method does not count."
},
{
"id": "checkpoints",
"group": "control",
"name": "Checkpoints and rewind",
"question": "Can the user rewind file changes made by the agent to an earlier point without relying on their own git commits?",
"rubric": "YES if automatic checkpoints, snapshots, or a rewind or undo command over the agent's edits are documented. PARTIAL if rewind relies on git commits the agent itself makes, or covers only the last edit. NO otherwise, including when the docs only advise the user to commit before a task."
},
{
"id": "plan_mode",
"group": "control",
"name": "Plan mode",
"question": "Is there a read-only planning mode where the agent explores and proposes before making changes?",
"rubric": "YES if a named plan or read-only mode is documented that either blocks edits or produces a plan for approval before any change is made. PARTIAL if planning is only a prompt convention (for example the docs say to ask the model not to edit files), or a plan command whose effect on edits is not documented. NO otherwise."
},
{
"id": "full_auto",
"group": "control",
"name": "Full-auto mode",
"question": "Is there a documented mode that approves every action without prompting (for unattended runs)?",
"rubric": "YES if a flag, mode or default behaviour that skips all approvals is documented. PARTIAL if it exists only in headless mode or is restricted to sandboxed execution. NO otherwise."
},
{
"id": "session_resume",
"group": "session",
"name": "Resume sessions",
"question": "Can the user resume or continue a previous conversation?",
"rubric": "YES if resuming or continuing a chosen previous session is documented (flag, command, or picker), including threads shared with a web or IDE surface. PARTIAL if only the most recent history can be restored and older sessions cannot be selected. NO otherwise."
},
{
"id": "headless",
"group": "session",
"name": "Headless and CI mode",
"question": "Can the agent run non-interactively from scripts or CI, taking a prompt and exiting?",
"rubric": "YES if a non-interactive, print, run or exec mode is documented. PARTIAL if non-interactive use requires an unofficial workaround. NO otherwise."
},
{
"id": "background_tasks",
"group": "session",
"name": "Background tasks",
"question": "Can long-running shell commands or tasks run in the background while the session continues?",
"rubric": "YES if background execution of shell commands is a documented feature (for example a background shells view or a command to send a task to the background). PARTIAL if only subagents, threads or remote machines can run in the background while shell commands cannot, or the feature is behind an experimental flag or off by default on some platforms. NO otherwise."
},
{
"id": "parallel_agents",
"group": "session",
"name": "Parallel agents",
"question": "Is running multiple agent instances in parallel on one repository a documented, supported workflow?",
"rubric": "YES if the docs describe a generally available workflow for separate agent instances working in parallel: git worktree integration, cloud parallel runs, or managing several sessions side by side. PARTIAL if parallelism exists only as subagents inside one session, or the worktree, cloud or multi-session mechanism is experimental or preview. NO otherwise, including when the docs only say you may open several terminals."
},
{
"id": "model_selection",
"group": "model",
"name": "Model selection",
"question": "Can the user choose among two or more models?",
"rubric": "YES if switching between at least two models is documented, even within one vendor's model family. PARTIAL if the user can only choose a mode that routes between models, or one model per plan or tier. NO if the model is fixed."
},
{
"id": "byok_providers",
"group": "model",
"name": "Custom providers and BYOK",
"question": "Can the user bring their own API key for a third-party model provider, or point the agent at a custom or OpenAI-compatible endpoint?",
"rubric": "YES if third-party providers or custom endpoints are documented for the CLI, or an account-level BYOK setting that applies to the CLI. PARTIAL if BYOK is limited to the vendor's own models or clouds (for example Bedrock or Vertex for the vendor's model), is configured only in the IDE surface with a narrower CLI path, or requires routing through the vendor with no custom endpoint. NO if the agent only works with the vendor's hosted service."
},
{
"id": "local_models",
"group": "model",
"name": "Local models",
"question": "Can a locally hosted model (Ollama, LM Studio, llama.cpp, vLLM) generate the agent's responses?",
"rubric": "YES if local model use for the agent's responses is documented. PARTIAL if possible only via a generic OpenAI-compatible endpoint setting with no local-model documentation. NO otherwise; a local model used only for an auxiliary task such as routing, classification or autocomplete does not count."
},
{
"id": "thinking_control",
"group": "model",
"name": "Reasoning control",
"question": "Can the user toggle or adjust the model's reasoning or thinking effort?",
"rubric": "YES if a documented flag, command, setting or environment variable controls thinking or reasoning effort. PARTIAL if reasoning is on or off only via choosing a different model. NO otherwise."
},
{
"id": "cost_display",
"group": "model",
"name": "Token and cost display",
"question": "Does the agent show what a session costs?",
"rubric": "YES if a command, status line or summary shows a cost figure, in currency or in the vendor's billing units such as credits or premium requests. PARTIAL if only token counts or quota are shown, or cost appears only in a cross-session report or log file. NO otherwise."
},
{
"id": "image_input",
"group": "io",
"name": "Image input",
"question": "Can the user give the agent images (paste, drag-and-drop, file path or URL)?",
"rubric": "YES if image input in the CLI is documented by any method: paste, drag-and-drop, file path, URL or a built-in image-reading tool enabled by default. PARTIAL if images work only in the IDE surface, only through an optional extension, or only with an experimental flag. NO otherwise."
},
{
"id": "web_search",
"group": "io",
"name": "Built-in web search",
"question": "Does the agent have a built-in web search tool?",
"rubric": "YES if a native web search tool ships with the agent. PARTIAL if web search is provided through an MCP server (even a bundled one), or an opt-in experimental flag. NO otherwise."
},
{
"id": "web_fetch",
"group": "io",
"name": "Built-in URL fetch",
"question": "Does the agent have a built-in tool to fetch and read a URL?",
"rubric": "YES if a native URL fetch or read tool ships with the agent. PARTIAL if pages are reachable only through an MCP server, an experimental flag, or as a side effect of a live web search tool. NO otherwise; reading a URL with a shell command does not count."
},
{
"id": "ide_integration",
"group": "io",
"name": "Official IDE integration",
"question": "Is there an official IDE extension or integration (VS Code, JetBrains, or similar) for this agent?",
"rubric": "YES if an official extension or integration is documented as generally available. PARTIAL if the official extension is marked experimental or preview, the integration is community-maintained, or it is only a terminal launcher. NO otherwise."
},
{
"id": "git_pr_workflow",
"group": "io",
"name": "Git and PR workflow",
"question": "Are commit creation and pull request creation documented, first-class workflows?",
"rubric": "YES if the docs describe creating commits and pull requests as a supported workflow (a built-in command, or a documented gh or git flow). PARTIAL if only commits are covered, PR creation is documented only through an MCP server or example prompt, or requires tooling the docs do not wire up. NO otherwise."
},
{
"id": "auto_memory",
"group": "io",
"name": "Persistent memory",
"question": "Does the agent itself write and maintain persistent memory across sessions?",
"rubric": "YES if automatic cross-session memory written by the agent is documented as generally available. PARTIAL if it is in preview or experimental, off by default on paid plans only, provided through an MCP extension, or a documented methodology under which the agent writes memory files only after the user installs instructions. NO if memory is only a user-maintained file the agent reads, or absent."
},
{
"id": "windows_native",
"group": "platform",
"name": "Native Windows",
"question": "Does the agent run natively on Windows (PowerShell or cmd) without WSL?",
"rubric": "YES if native Windows support is documented, even when the vendor recommends WSL for the best experience. PARTIAL if Windows is supported only via WSL, or native support is marked experimental. NO if Windows is unsupported. Caveats about individual features on Windows belong in the notes."
},
{
"id": "open_source",
"group": "platform",
"name": "Open source",
"question": "Is the agent's source code available under an OSI-approved license?",
"rubric": "YES if the agent's repository is published under an OSI-approved license (Apache-2.0, MIT, and so on), even if a companion component is closed. PARTIAL if source is available under a non-OSI or restrictive license, or only part of the agent is open. NO if the agent is closed source; quote the license text or the closest official statement."
},
{
"id": "free_tier",
"group": "platform",
"name": "Free tier",
"question": "Can the agent be used without paying (a free plan, free quota, or free with a free provider)?",
"rubric": "YES if a standing free plan or free quota that covers the agent is documented. PARTIAL if only a time-limited trial, promotional or rotating free models, or free use through a third-party free model via BYOK is documented. NO if paid access is required, including when a former free plan is closed to new sign-ups."
}
]
}