{
  "version": 1,
  "generated_at": "2026-09-18T12:00:32.220Z",
  "cells": [
    {
      "agent": "claude-code",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "MCP servers give Claude Code access to your tools, databases, and APIs.",
      "evidence_url": "https://code.claude.com/docs/en/mcp.md",
      "notes": "Configured with `claude mcp add --transport http|sse|stdio` or JSON in .mcp.json / ~/.claude.json; all three transports (HTTP, SSE, stdio) are documented as generally available.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "mcp_server",
      "value": "yes",
      "quote": "You can use Claude Code itself as an MCP server that other applications can connect to:",
      "evidence_url": "https://code.claude.com/docs/en/mcp.md",
      "notes": "`claude mcp serve` starts Claude Code as a stdio MCP server; docs show wiring it into Claude Desktop's claude_desktop_config.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "hooks",
      "value": "yes",
      "quote": "Claude Code runs hooks at specific points during a session. When an event fires and a matcher matches, Claude Code passes JSON context about the event to your hook handler.",
      "evidence_url": "https://code.claude.com/docs/en/hooks.md",
      "notes": "Hooks are defined in JSON settings files with many events including SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PostToolUse, PostToolUseFailure, Stop, SubagentStart/Stop, PreCompact and more; handlers can be shell commands, HTTP endpoints, MCP tools, prompts or agents.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "A file at `.claude/commands/deploy.md` and a skill at `.claude/skills/deploy/SKILL.md` both create `/deploy` and work the same way.",
      "evidence_url": "https://code.claude.com/docs/en/skills.md",
      "notes": "Markdown files in .claude/commands/ (older format, still supported) or ~/.claude/commands/ define user slash commands; custom commands have been merged into skills, which support the same frontmatter plus arguments.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "skills",
      "value": "yes",
      "quote": "Skills extend what Claude can do. Create a `SKILL.md` file with instructions, and Claude adds it to its toolkit.",
      "evidence_url": "https://code.claude.com/docs/en/skills.md",
      "notes": "SKILL.md folders load from ~/.claude/skills/<name>/, .claude/skills/<name>/, enterprise managed dirs, --add-dir directories and plugins; Claude auto-invokes by description or user runs /skill-name.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "plugins",
      "value": "yes",
      "quote": "Plugins extend Claude Code with skills, agents, hooks, and MCP servers. Plugin marketplaces are catalogs that help you discover and install these extensions without building them yourself.",
      "evidence_url": "https://code.claude.com/docs/en/discover-plugins.md",
      "notes": "Plugin format uses a .claude-plugin/plugin.json manifest; install via `/plugin install <name>@<marketplace>` from the official claude-plugins-official marketplace, the claude-community marketplace, or private/team marketplaces; `--plugin-dir` for local development.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "subagents",
      "value": "yes",
      "quote": "Each subagent runs in its own context window with a custom system prompt, specific tool access, and independent permissions.",
      "evidence_url": "https://code.claude.com/docs/en/sub-agents.md",
      "notes": "Built-in subagents (e.g. Plan/Explore) plus user-defined subagents in .claude/agents/; each starts with a fresh isolated context and returns a summary; forks inherit the parent conversation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "CLAUDE.md files are markdown files that give Claude persistent instructions for a project, your personal workflow, or your entire organization. You write these files in plain text; Claude reads them at the start of every session.",
      "evidence_url": "https://code.claude.com/docs/en/memory.md",
      "notes": "Files: ./CLAUDE.md or ./.claude/CLAUDE.md (project), CLAUDE.local.md (private), ~/.claude/CLAUDE.md (user), managed-policy CLAUDE.md, plus .claude/rules/ and @imports; all loaded automatically at launch (subdirectory files load on demand).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "agents_md",
      "value": "partial",
      "quote": "Claude Code reads `CLAUDE.md`, not `AGENTS.md`. If your repository already uses `AGENTS.md` for other coding agents, create a `CLAUDE.md` that imports it so both tools read the same instructions without duplicating them.",
      "evidence_url": "https://code.claude.com/docs/en/memory.md",
      "notes": "AGENTS.md is not loaded automatically; docs give a workaround of `@AGENTS.md` import inside CLAUDE.md or `ln -s AGENTS.md CLAUDE.md`. With CLAUDE_CODE_NEW_INIT=1, /init reads AGENTS.md when generating CLAUDE.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Accepts `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, or `manual` as an alias for `default`.",
      "evidence_url": "https://code.claude.com/docs/en/cli-reference.md",
      "notes": "`--permission-mode` flag or `defaultMode` setting; Shift+Tab cycles modes in-session (default -> acceptEdits -> plan). `auto` mode uses a classifier to review actions instead of prompting.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "sandbox",
      "value": "yes",
      "quote": "The sandbox is built into Claude Code and runs on macOS, Linux, and WSL2. Native Windows is not supported.",
      "evidence_url": "https://code.claude.com/docs/en/sandboxing.md",
      "notes": "Built-in Bash sandbox with filesystem and network isolation: Seatbelt on macOS, bubblewrap + socat (optional seccomp) on Linux/WSL2; configured via /sandbox and sandbox.* settings. Not available on native Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "Claude Code automatically tracks Claude's file edits as you work, allowing you to quickly undo changes and rewind to previous states if anything gets off track.",
      "evidence_url": "https://code.claude.com/docs/en/checkpointing.md",
      "notes": "Every user prompt creates a checkpoint; `/rewind` or double Esc opens a menu to restore code, conversation, or both. Caveat: edits made by bash commands or background subagents are not tracked.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Plan mode tells Claude to research and propose changes without making them. Claude reads files, runs shell commands to explore, and writes a plan, but does not edit your source.",
      "evidence_url": "https://code.claude.com/docs/en/permission-modes.md",
      "notes": "Enter with Shift+Tab, `/plan` prefix, or `--permission-mode plan`; edits stay blocked until the plan is approved.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Skip permission prompts. Equivalent to `--permission-mode bypassPermissions`.",
      "evidence_url": "https://code.claude.com/docs/en/cli-reference.md",
      "notes": "`--dangerously-skip-permissions` / `bypassPermissions` mode works in interactive and headless sessions; docs recommend using it only in isolated containers/VMs. A small set of actions (cross-session messaging safeguards) is never auto-approved. Admins can disable it via permissions.disableBypassPermissionsMode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume a specific session by ID or name, or show an interactive picker to choose a session.",
      "evidence_url": "https://code.claude.com/docs/en/cli-reference.md",
      "notes": "`--resume`/`-r` opens a picker or takes a session ID/name; `--continue`/`-c` loads the most recent conversation in the directory; `/resume` in-session; `--from-pr` filters by linked PR.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "headless",
      "value": "yes",
      "quote": "Add the `-p` (or `--print`) flag to any `claude` command to run it non-interactively.",
      "evidence_url": "https://code.claude.com/docs/en/headless.md",
      "notes": "`claude -p \"prompt\"` runs non-interactively for scripts and CI, supports stdin piping, `--output-format` structured output, `--allowedTools`; Python and TypeScript Agent SDK packages also available.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Claude Code supports running Bash commands in the background, allowing you to continue working while long-running processes execute.",
      "evidence_url": "https://code.claude.com/docs/en/interactive-mode.md",
      "notes": "Prompt Claude to run in background or press Ctrl+B to background a running Bash command or agent; `/tasks` lists running shells and subagents; subagents can also run in background.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Work on a feature in one terminal while Claude fixes a bug in another, without the edits colliding.",
      "evidence_url": "https://code.claude.com/docs/en/common-workflows.md",
      "notes": "claude --worktree <name> starts a session in an isolated git worktree under .claude/worktrees; the docs describe running parallel sessions this way as a supported workflow.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "model_selection",
      "value": "yes",
      "quote": "use `/model <alias|name>` to switch immediately, or run `/model` with no argument to open the picker.",
      "evidence_url": "https://code.claude.com/docs/en/model-config.md",
      "notes": "Aliases sonnet, opus, haiku, fable, best, sonnet[1m], opus[1m], opusplan or full model names; set via `/model`, `--model`, ANTHROPIC_MODEL, or the `model` setting.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "byok_providers",
      "value": "partial",
      "quote": "Anthropic doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway.",
      "evidence_url": "https://code.claude.com/docs/en/llm-gateway.md",
      "notes": "Own API key via ANTHROPIC_API_KEY; alternative clouds Amazon Bedrock, Google Cloud Agent Platform (Vertex), Microsoft Foundry; custom endpoint via ANTHROPIC_BASE_URL but only for gateways exposing Anthropic Messages/Bedrock/Vertex formats serving Claude models. No OpenAI-compatible endpoint or non-Claude model support.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "local_models",
      "value": "no",
      "quote": "Anthropic doesn't endorse, maintain, or audit third-party gateway products, and doesn't support routing Claude Code to non-Claude models through any gateway.",
      "evidence_url": "https://code.claude.com/docs/en/llm-gateway.md",
      "notes": "No mention of Ollama, LM Studio, llama.cpp or vLLM anywhere in the model, provider, gateway or settings docs; gateways must speak an Anthropic/Bedrock/Vertex format and route to Claude models only.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Options: `low`, `medium`, `high`, `xhigh`, `max`, or `ultracode`. Available levels depend on the model.",
      "evidence_url": "https://code.claude.com/docs/en/cli-reference.md",
      "notes": "Effort level (adaptive reasoning) set with `--effort`, `/effort` in-session, CLAUDE_CODE_EFFORT_LEVEL env var, or modelSettings; admins can cap via maxEffortLevel.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Claude Code computes the dollar figure locally from token counts at list price",
      "evidence_url": "https://code.claude.com/docs/en/costs.md",
      "notes": "`/usage` shows per-session tokens and an estimated dollar Total cost (computed locally at list price or contracted modelPricing); the status line has a cost field and `--max-budget-usd` caps spend. Subscribers see plan usage bars instead of billing-relevant cost.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "image_input",
      "value": "yes",
      "quote": "Drag and drop an image into the Claude Code window",
      "evidence_url": "https://code.claude.com/docs/en/common-workflows.md",
      "notes": "Images accepted in the CLI by drag-and-drop, clipboard paste (Ctrl+V, Alt+V on Windows/WSL) inserting an [Image #N] chip, or by giving a file path in the prompt.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "web_search",
      "value": "yes",
      "quote": "WebSearch runs a query against Anthropic's [web search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) backend and returns result titles and URLs.",
      "evidence_url": "https://code.claude.com/docs/en/tools-reference.md",
      "notes": "Built-in WebSearch tool ships with the CLI. Caveat: available on the Claude API and Claude Platform on AWS; on Foundry only with Anthropic-hosted deployments and with restrictions on other cloud providers; 200 calls per session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "WebFetch takes a URL and a prompt describing what to extract. It fetches the page, converts the response to Markdown when the server returns HTML, and runs the prompt against the content using a small, fast model.",
      "evidence_url": "https://code.claude.com/docs/en/tools-reference.md",
      "notes": "Built-in WebFetch tool with domain-scoped permission rules (WebFetch(domain:example.com)); result is an extraction summary rather than the raw page.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "The VS Code extension provides a native graphical interface for Claude Code, integrated directly into your IDE. This is the recommended way to use Claude Code in VS Code.",
      "evidence_url": "https://code.claude.com/docs/en/ide-integrations.md",
      "notes": "Official Anthropic VS Code extension (anthropic.claude-code, also for Cursor and VS Code forks via Open VSX) and an official JetBrains plugin (IntelliJ, PyCharm, WebStorm, GoLand, etc.) documented at /docs/en/jetbrains.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "Claude Code works directly with git. It stages changes, writes commit messages, creates branches, and opens pull requests.",
      "evidence_url": "https://code.claude.com/docs/en/overview.md",
      "notes": "Natural-language commit and PR creation is a documented workflow (\"commit my changes with a descriptive message\", \"create a pr\"); PRs are created via `gh pr create` / `glab mr create` and sessions are linked to PRs (`--from-pr`).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "auto_memory",
      "value": "yes",
      "quote": "Auto memory lets Claude accumulate knowledge across sessions without you writing anything. As it works, Claude saves four kinds of notes for itself.",
      "evidence_url": "https://code.claude.com/docs/en/memory.md",
      "notes": "Auto memory is on by default; Claude writes user/feedback/project/reference notes to a memory directory across sessions, toggled via /memory, autoMemoryEnabled setting, or CLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Subagents can also keep their own memory.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "windows_native",
      "value": "yes",
      "quote": "You can run Claude Code natively on Windows or inside WSL.",
      "evidence_url": "https://code.claude.com/docs/en/setup.md",
      "notes": "Native install via PowerShell (`irm https://claude.ai/install.ps1 | iex`) or CMD on Windows 10 1809+; uses the PowerShell tool, or Git Bash if Git for Windows is installed. Caveat: the built-in sandbox is not supported on native Windows (WSL2 required for that).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "open_source",
      "value": "no",
      "quote": "© Anthropic PBC. All rights reserved. Use is subject to Anthropic's [Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms).",
      "evidence_url": "https://raw.githubusercontent.com/anthropics/claude-code/main/LICENSE.md",
      "notes": "The anthropics/claude-code GitHub repo hosts the changelog, README and issue tracker but not the CLI source; the LICENSE is proprietary (Commercial Terms of Service), not OSI-approved.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "claude-code",
      "capability": "free_tier",
      "value": "no",
      "quote": "Claude Code requires a Pro, Max, Team, Enterprise, or Console account. The free Claude.ai plan does not include Claude Code access.",
      "evidence_url": "https://code.claude.com/docs/en/setup.md",
      "notes": "Requires a paid Claude subscription, a Claude Console account with pre-paid credits, or a third-party cloud provider (Bedrock, Google Cloud Agent Platform, Foundry) billed per token; no free plan or free quota documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Add local or remote MCP servers, authenticate when needed, and inspect the tools available to the current session before Codex uses them.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/cli",
      "notes": "Configured via [mcp_servers.<name>] tables in ~/.codex/config.toml or project .codex/config.toml, or with `codex mcp add`; both STDIO and Streamable HTTP servers are supported, with OAuth via `codex mcp login`. /mcp lists active servers in the TUI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "The codex mcp-server command and standalone codex-mcp-server binary have been removed. Use the Codex app server instead.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "The command reference now says `codex mcp-server` and the standalone binary have been removed; the replacement `codex app-server` (Experimental) speaks its own protocol over stdio, WebSocket or a Unix socket, not MCP. Was partial (deprecated but present) until the page changed after 2026-09-10.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks are an extensibility framework for Codex.",
      "evidence_url": "https://learn.chatgpt.com/docs/hooks",
      "notes": "Hooks run scripts or MCP tools during the agentic loop at documented events: PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, UserPromptSubmit, SubagentStop and Stop.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "In Codex CLI or the IDE extension, run /skills or type $ to mention a skill.",
      "evidence_url": "https://learn.chatgpt.com/docs/build-skills",
      "notes": "User-written SKILL.md templates (.agents/skills, ~/.agents/skills) are invoked explicitly from the CLI with /skills or a $skill-name mention. The older ~/.codex/prompts/*.md custom prompts (/prompts:name with $1..$9 and $ARGUMENTS placeholders) still work but are documented as deprecated in favour of skills.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "Codex reads skills from repository, user, admin, and system locations.",
      "evidence_url": "https://learn.chatgpt.com/docs/build-skills",
      "notes": "Skills are directories containing a SKILL.md (name + description required) loaded from .agents/skills at each level up to the repo root, $HOME/.agents/skills and /etc/codex/skills; browsed with /skills. A 'Skill Installer' pulls curated skills from openai/skills.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "Install, list, and remove plugins from configured marketplace sources.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "`codex plugin` and `codex plugin marketplace` (both Stable) install plugins from Git or local marketplaces; /plugins opens the plugin browser in the CLI. Plugins can bundle skills, MCP servers and hooks (hooks/hooks.json) per the MCP and hooks pages.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "Current Codex releases enable subagent workflows by default.",
      "evidence_url": "https://learn.chatgpt.com/docs/agent-configuration/subagents",
      "notes": "Codex spawns subagents in their own agent threads (inspect/switch with /agent or /subagents); custom agents are defined as TOML files under ~/.codex/agents/ or .codex/agents/ with their own model, reasoning effort and sandbox overrides.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Codex reads AGENTS.md files before doing any work.",
      "evidence_url": "https://learn.chatgpt.com/docs/agent-configuration/agents-md",
      "notes": "Files: AGENTS.md and AGENTS.override.md, read from ~/.codex (global) and from the project root down to the cwd; extra names via project_doc_fallback_filenames, size cap via project_doc_max_bytes (32 KiB default). /init scaffolds one.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Codex reads AGENTS.md files before doing any work.",
      "evidence_url": "https://learn.chatgpt.com/docs/agent-configuration/agents-md",
      "notes": "AGENTS.md is the native instruction file, discovered automatically at global and project scope (with AGENTS.override.md taking precedence per directory).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Relax or tighten approval requirements mid-session, such as switching between Auto and Read Only.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "Named presets Auto (--sandbox workspace-write --ask-for-approval on-request) and Read Only, plus --sandbox read-only|workspace-write|danger-full-access, --ask-for-approval on-request|never, granular approval policies and /permissions in the TUI. The old 'untrusted' approval policy is retired.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "sandbox",
      "value": "yes",
      "quote": "OS-level mechanisms enforce sandbox policies. Defaults include no network access and write permissions limited to the active workspace.",
      "evidence_url": "https://learn.chatgpt.com/docs/agent-approvals-security",
      "notes": "macOS uses Seatbelt (sandbox-exec), Linux uses bwrap plus seccomp, and native Windows uses a Windows sandbox (elevated or unelevated modes); `codex sandbox` runs arbitrary commands inside them.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "checkpoints",
      "value": "no",
      "quote": "Create Git checkpoints before and after a task so you can revert changes.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/cli",
      "notes": "No automatic checkpoint, snapshot, rewind or undo command over agent edits is documented; the docs advise the user to make their own Git checkpoints, and /diff only shows the working-tree diff.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Ask Codex to propose an execution plan before implementation work starts.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "Named plan mode entered with /plan (optionally with an inline prompt) and tunable via plan_mode_reasoning_effort; the docs do not explicitly state that plan mode blocks edits, and separately recommend read-only mode via /permissions for chat/plan without changes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Run every command without approvals or sandboxing. Only use inside an externally hardened environment.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "--dangerously-bypass-approvals-and-sandbox / --yolo skips all approvals and sandboxing; --ask-for-approval never disables prompts while keeping the sandbox. Works in both the TUI and codex exec.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Continue a previous interactive session by ID or resume the most recent chat.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "`codex resume` opens a session picker or takes a SESSION_ID/--last; /resume inside the TUI; `codex fork` branches a saved session; `codex exec resume --last` continues non-interactive runs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Non-interactive mode lets you run Codex from scripts (for example, continuous integration (CI) jobs) without opening the interactive TUI.",
      "evidence_url": "https://learn.chatgpt.com/docs/non-interactive-mode",
      "notes": "`codex exec \"<prompt>\"` streams progress to stderr and prints the final message to stdout, supports --json JSONL output, stdin piping, --ephemeral, and runs read-only by default; an official openai/codex-action exists for GitHub Actions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "Use the unified PTY-backed exec tool (stable; enabled by default except on Windows).",
      "evidence_url": "https://learn.chatgpt.com/docs/config-file/config-reference",
      "notes": "/ps lists background terminals with recent output and /stop cancels them. Background terminals come from the unified_exec tool, which is stable but enabled by default only outside Windows (features.unified_exec), so the rubric counts it as partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Run tasks in isolated cloud environments, work in parallel, and start work from the web, GitHub, GitLab, Linear, or Slack.",
      "evidence_url": "https://learn.chatgpt.com/docs/cloud",
      "notes": "In-session parallel subagents are stable and on by default (features.multi_agent), which the rubric counts as partial. Codex cloud runs tasks in parallel, but the CLI entry point (codex cloud) is marked experimental, and git worktrees / parallel chats are ChatGPT desktop app features.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Choose the active model (and reasoning effort, when available).",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "/model switches between models such as gpt-5.6-luna and gpt-5.6-terra; --model/-m or the `model` config key set it at launch, for both the TUI and codex exec.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "A model provider defines how Codex connects to a model (base URL, wire API, authentication, and optional HTTP headers).",
      "evidence_url": "https://learn.chatgpt.com/docs/config-file/config-advanced",
      "notes": "Custom [model_providers.<id>] tables take base_url and env_key (examples include an LLM proxy, local Ollama and Mistral); API-key sign-in is also supported. Caveat: wire_api only supports the Responses protocol, and there is a built-in amazon-bedrock provider.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "local_models",
      "value": "yes",
      "quote": "Use a local open source model provider. Codex uses --local-provider, your configured oss_provider, or prompts you to choose between LM Studio and Ollama.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "`codex --oss` with --local-provider lmstudio|ollama or oss_provider in config; ollama and lmstudio are reserved built-in provider IDs and a custom [model_providers.local_ollama] example is given.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Tune how much reasoning effort the model applies when supported.",
      "evidence_url": "https://learn.chatgpt.com/docs/config-file/config-basic",
      "notes": "model_reasoning_effort (none|minimal|low|medium|high|xhigh) in config.toml, adjustable in-session via /model; plan_mode_reasoning_effort overrides it for plan mode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "cost_display",
      "value": "partial",
      "quote": "Display session configuration and token usage.",
      "evidence_url": "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
      "notes": "/status shows session token usage and remaining context, /usage shows ChatGPT account token activity and rate limits, and /statusline can add token counters to the footer; no monetary cost figure is documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Pass an error screenshot, architecture diagram, or design reference with the first prompt, or paste an image into the interactive composer.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/cli",
      "notes": "--image/-i attaches one or more image files to the initial prompt (comma-separated or repeated), and images can be pasted into the TUI composer, including with /plan.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "Switch a run to live web search when a task depends on current releases, documentation, or external behavior.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/cli",
      "notes": "Built-in web search tool with web_search = disabled|cached|indexed|live; default is cached (OpenAI-maintained index), --search enables live search, tools.web_search can set allowed domains and location.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "web_fetch",
      "value": "partial",
      "quote": "The cache is an OpenAI-maintained index of web results, so cached mode returns pre-indexed results instead of fetching live pages.",
      "evidence_url": "https://learn.chatgpt.com/docs/agent-approvals-security",
      "notes": "No dedicated URL-fetch or page-read tool is documented for the CLI. Page content is retrieved only as part of the web_search tool in live mode (--search; web_search = disabled|cached|indexed|live), which the rubric counts as partial.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Choose your IDE. VS Code and compatible editors use the Codex extension; Xcode and JetBrains IDEs provide their own integrations.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/ide",
      "notes": "Official Codex extension for VS Code, Cursor and Windsurf, plus JetBrains and Xcode integrations; the CLI's /ide command pulls editor context into prompts.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "Run a dedicated review against uncommitted changes, a commit, or a base branch. Codex reports prioritized findings without modifying your working tree, so you can address risks before you commit or open a pull request.",
      "evidence_url": "https://learn.chatgpt.com/docs/codex/cli",
      "notes": "Built-in /review, codex review and /diff cover reviewing changes; committing and PR creation are not built-in CLI commands and are documented only as prompts, a deprecated custom-prompt example, a GitHub Actions job that opens the PR, or Codex cloud.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "After you enable memories, Codex can turn useful context from eligible prior chats into local memory files.",
      "evidence_url": "https://learn.chatgpt.com/docs/customization/memories?surface=cli",
      "notes": "With [features] memories = true Codex extracts memories from prior chats into ~/.codex/memories/ and injects them into future sessions (/memories controls it in the CLI). The flag is off by default and labelled Experimental in the config reference, so partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "When you run Codex natively on Windows, agent mode uses a Windows sandbox to block filesystem writes outside the working folder and prevent network access without your explicit approval.",
      "evidence_url": "https://learn.chatgpt.com/docs/windows/windows-sandbox",
      "notes": "Native PowerShell install (install.ps1) and a native Windows sandbox with elevated/unelevated modes are documented; WSL2 is an alternative. Caveat: unified_exec background terminals are off by default on Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "open_source",
      "value": "yes",
      "quote": "This repository is licensed under the [Apache-2.0 License](LICENSE).",
      "evidence_url": "https://raw.githubusercontent.com/openai/codex/main/README.md",
      "notes": "github.com/openai/codex is published under Apache-2.0 (confirmed by the LICENSE file and the GitHub API spdx_id).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "codex-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "ChatGPT Work and Codex are included in your ChatGPT Free, Go, Plus, Pro, Business, Edu, or Enterprise plan",
      "evidence_url": "https://learn.chatgpt.com/docs/pricing",
      "notes": "The pricing page lists a Free plan at $0/month for quick coding tasks; usage limits scale with plan, and API-key usage is billed separately.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Gemini CLI supports three MCP transport types:",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/tools/mcp-server.md",
      "notes": "MCP servers are configured in settings.json under mcpServers or via `gemini mcp add <name> <commandOrUrl>`; Stdio, SSE and Streamable HTTP transports are supported, plus OAuth for remote servers and MCP prompts as slash commands.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "ACP mode establishes a client-server relationship between your tool (the client)",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/acp-mode.md",
      "notes": "The only documented server-style mode is `gemini --acp` (Agent Client Protocol over stdio JSON-RPC for IDEs), not MCP. The CLI subcommand reference (gemini mcp/extensions/gemma/skills) documents no command that exposes Gemini CLI itself as an MCP server.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks are defined in `settings.json` within the `hooks` object.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/hooks/reference.md",
      "notes": "User-configurable hook system with 11 events (SessionStart, SessionEnd, BeforeAgent, AfterAgent, BeforeModel, AfterModel, BeforeToolSelection, BeforeTool, AfterTool, PreCompress, Notification); hooks are shell commands communicating via JSON on stdin/stdout, also bundleable in extensions via hooks/hooks.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "- A file at `~/.gemini/commands/test.toml` becomes the command `/test`.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/custom-commands.md",
      "notes": "TOML prompt files in ~/.gemini/commands/ (global) or <project>/.gemini/commands/ (project) become slash commands; subdirectories give namespaced commands like /git:commit; supports {{args}} and shell injection; `/commands reload` picks up changes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "The `SKILL.md` body and folder structure is added to the conversation history.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/skills.md",
      "notes": "Agent Skills based on the agentskills.io open standard; discovered from built-in, extension, user (~/.gemini/skills/ or ~/.agents/skills/) and workspace (.gemini/skills/ or .agents/skills/) tiers and activated with the activate_skill tool after user consent.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "gemini extensions install <source> [--ref <ref>] [--auto-update] [--pre-release] [--consent] [--skip-settings]",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/extensions/reference.md",
      "notes": "Extensions (gemini-extension.json manifest) bundle prompts, MCP servers, custom commands, themes, hooks, sub-agents and skills; installed from GitHub URLs or local paths with `gemini extensions install`, and there is an official extension gallery at geminicli.com/extensions/browse/.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "subagents",
      "value": "partial",
      "quote": "Sub-agents are a preview feature currently under active development.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/extensions/reference.md",
      "notes": "Built-in subagents plus user-defined agents in .gemini/agents/ or ~/.gemini/agents/, each with its own context window and invocable with @agent_name. Enabled by default, but the switch is experimental.enableAgents and the extensions reference calls sub-agents a preview feature, so partial.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Context files, which use the default name `GEMINI.md`, are a powerful feature for providing instructional context to the Gemini model.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/gemini-md.md",
      "notes": "GEMINI.md is loaded hierarchically and automatically: ~/.gemini/GEMINI.md (global), workspace and parent directories, and just-in-time from directories touched by tools; the filename is configurable via context.fileName.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "agents_md",
      "value": "partial",
      "quote": "While `GEMINI.md` is the default filename, you can configure this in your `settings.json` file. To specify a different name or a list of names, use the `context.fileName` property.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/gemini-md.md",
      "notes": "AGENTS.md is not loaded by default; the docs show it only as a configurable alias by setting context.fileName in settings.json to include AGENTS.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Approval mode for tool execution. Choices: `default`, `auto_edit`, `yolo`, `plan`",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/cli-reference.md",
      "notes": "Four named modes via --approval-mode (default prompts each call, auto_edit auto-approves edit tools, yolo approves everything, plan is read-only); general.defaultApprovalMode in settings and Shift+Tab cycles modes in-session; a TOML policy engine adds finer-grained rules.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "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-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "The `/rewind` command lets you go back to a previous state in your conversation and, optionally, revert any file changes made by the AI during those interactions.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/rewind.md",
      "notes": "/rewind (or Esc twice) reverts conversation and/or AI-made file changes to an earlier interaction; a separate Checkpointing feature (settings general.checkpointing.enabled, /restore) snapshots the project into a shadow git repo in ~/.gemini/history before each file-modifying tool call. Rewind does not undo manual edits or shell-tool changes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Plan Mode is a read-only environment for architecting robust solutions before implementation.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/plan-mode.md",
      "notes": "Plan Mode is enabled by default; enter via --approval-mode=plan, Shift+Tab, /plan [goal] or the enter_plan_mode tool; produces a Markdown plan file and enforces read-only tool policy. Note: an older passage in reference/configuration.md still calls it experimental/not fully functional, contradicting the dedicated page.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "- `yolo`: Automatically approve all tool calls (equivalent to `--yolo`)",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/configuration.md",
      "notes": "--approval-mode=yolo (legacy --yolo/-y, now deprecated) auto-approves every tool call; it works in interactive and headless mode, can only be set from the command line (not settings.json), and the docs state sandboxing is enabled by default when using yolo.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "When starting Gemini CLI, use the `--resume` (or `-r`) flag to load existing sessions.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/session-management.md",
      "notes": "Sessions are saved automatically per project; resume latest with `gemini --resume`, by index or UUID, or pick from the interactive Session Browser via /resume; --list-sessions and --delete-session also exist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Headless mode is triggered when the CLI is run in a non-TTY environment or when providing a query with the `-p` (or `--prompt`) flag.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/headless.md",
      "notes": "`gemini -p \"prompt\"` (or piped stdin) runs once and exits with documented exit codes; --output-format json or stream-json gives structured output for CI, and an official GitHub Action exists.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Toggle the background shells view.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/commands.md",
      "notes": "run_shell_command has an is_background argument; /shells (alias /bashes) lists and manages long-running background processes, and tools.shell.backgroundCompletionBehavior controls what happens when a background command finishes (silent/inject/notify).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Git worktrees are an experimental feature. You must enable them in your settings using the `/settings` command or by manually editing your `settings.json` file.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/git-worktrees.md",
      "notes": "`gemini --worktree [name]` creates an isolated git worktree under .gemini/worktrees/ so each session has its own copy of the codebase; requires experimental.worktrees=true in settings and is marked experimental.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "The `--model` (or `-m`) flag lets you specify which Gemini model to use. You can use either model aliases (user-friendly names) or concrete model names.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/cli-reference.md",
      "notes": "Choose among Gemini models via --model/-m, GEMINI_MODEL env var, model.name setting, or the /model dialog (Auto Gemini 3, Auto Gemini 2.5, or Manual); aliases auto, pro, flash, flash-lite. Only Google Gemini models are selectable.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "byok_providers",
      "value": "partial",
      "quote": "Overrides the default base URL for Gemini API requests (when using `gemini-api-key` authentication).",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/configuration.md",
      "notes": "BYOK is limited to Google: GEMINI_API_KEY (AI Studio) or Vertex AI (ADC, service account, API key). GOOGLE_GEMINI_BASE_URL / GOOGLE_VERTEX_BASE_URL can redirect requests to a proxy, but no third-party or OpenAI-compatible provider is documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "local_models",
      "value": "no",
      "quote": "It routes simple requests (like file reads) to Gemini Flash and complex requests (like architecture discussions) to Gemini Pro.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/core/gemma-setup.md",
      "notes": "The only local model in the docs is an experimental Gemma 3 1B classifier (gemini gemma setup) that decides whether a request goes to hosted Flash or hosted Pro; every response is still generated by hosted Gemini. No Ollama, LM Studio, llama.cpp, vLLM or OpenAI-compatible endpoint is documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Configuration for models with reasoning capabilities (for example, `thinkingBudget`, `includeThoughts`).",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/generation-settings.md",
      "notes": "Reasoning effort is set in settings.json under modelConfigs (customAliases/overrides) via generateContentConfig.thinkingConfig (thinkingBudget, thinkingLevel e.g. HIGH, includeThoughts); this is a documented power-user configuration rather than a slash command, and ui.inlineThinkingMode controls thought display.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "cost_display",
      "value": "partial",
      "quote": "Show model-specific usage statistics, including token counts and quota information.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/commands.md",
      "notes": "/stats (session/model/tools) shows token counts, quota and performance metrics and the footer shows context usage percentage; no monetary cost figure is documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Windows users can now paste images directly from their clipboard into the CLI using `Alt`+`V`.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/changelogs/index.md",
      "notes": "Images can be pasted from the clipboard (changelog: Windows via Alt+V, Linux Wayland/X11), dragged and dropped (paths are prefixed with @), or read from a path since read_file supports text, images, audio and PDF per docs/tools/file-system.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "The `google_web_search` tool allows the Gemini agent to retrieve up-to-date information, news, and facts from the internet via Google Search.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/tools/web-search.md",
      "notes": "Built-in google_web_search tool using Google Search grounding through the Gemini API, returning a synthesized summary with citations.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "The `web_fetch` tool allows the Gemini agent to retrieve and process content from specific URLs provided in your prompt.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/tools/web-fetch.md",
      "notes": "Built-in web_fetch tool accepts up to 20 URLs in a prompt, uses the Gemini API urlContext with a local direct-fetch fallback, blocks private/internal networks and asks for confirmation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "The **Gemini CLI Companion extension** grants Gemini CLI direct access to your VS Code compatible IDEs and improves your experience by providing real-time context such as open files, cursor positions, and text selection.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/ide-integration/index.md",
      "notes": "Official 'Gemini CLI Companion' VS Code extension (VS Code Marketplace and Open VSX; also Antigravity) providing workspace context and native diffing, plus ACP mode for JetBrains and Zed via the ACP Agent Registry.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "You can add a function to your shell configuration to create a `git commit`",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/tutorials/automation.md",
      "notes": "Docs cover commit-message generation (headless 'Smart Commit' alias and a /git:commit custom-command example) and /setup-github configures GitHub Actions for PR review; PR creation by the agent is only reachable through a GitHub MCP server/extension with no documented first-class flow.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "Auto Memory is an experimental feature that mines your past Gemini CLI sessions in the background and proposes durable memory updates and reusable [Agent Skills](./skills.md).",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/auto-memory.md",
      "notes": "Auto Memory (experimental.autoMemory flag, off by default) mines past sessions in the background and proposes memory patches and SKILL.md drafts that the user must approve; separately the agent can persist explicit facts by editing GEMINI.md memory files on request (docs/tools/memory.md).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "On Windows, commands execute with `powershell.exe -NoProfile -Command`. On other platforms, they execute with `bash -c`.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/tools/shell.md",
      "notes": "Native Windows support: installation lists Windows 11 24H2+ and PowerShell as a supported shell, the shell tool runs commands through powershell.exe, and there is a Windows Native sandbox mode; no WSL requirement.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "open_source",
      "value": "yes",
      "quote": "- **🛡️ Open source**: Apache 2.0 licensed.",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/README.md",
      "notes": "Source is public at github.com/google-gemini/gemini-cli under the Apache License 2.0 (LICENSE file in repo root).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "gemini-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "Gemini CLI offers a generous free tier that covers many individual developers'",
      "evidence_url": "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/resources/quota-and-pricing.md",
      "notes": "Free with a personal Google account (Gemini Code Assist for individuals: 1,000 requests/day, 60/min per README) and a free unpaid Gemini API key tier (250 requests/day); paid Google AI Pro/Ultra and pay-as-you-go tiers raise limits.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "The Cursor CLI supports Model Context Protocol (MCP) servers, allowing you to connect external tools and data sources to agent.",
      "evidence_url": "https://cursor.com/docs/cli/mcp",
      "notes": "Configured via .cursor/mcp.json or ~/.cursor/mcp.json (same config as the editor); managed with `agent mcp list|list-tools|login|enable|disable`, `/mcp` slash command and `--approve-mcps`. The list shows transport method (stdio, HTTP, SSE), so multiple transports are supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Use MCP when you want Cursor to call external tools and services. Use ACP when you want to build a custom client that talks to Cursor CLI itself over protocol messages.",
      "evidence_url": "https://cursor.com/docs/cli/mcp",
      "notes": "No documented way to expose the CLI as an MCP server. The CLI can be driven by other clients only via `agent acp` (Agent Client Protocol over stdio/JSON-RPC), which is a different protocol from MCP.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks let you observe, control, and extend the agent loop using custom scripts. Define hooks in hooks.json files at the project or user level, or install them through plugins from Customize.",
      "evidence_url": "https://cursor.com/docs/hooks",
      "notes": "hooks.json at <project>/.cursor/hooks.json or ~/.cursor/hooks.json with many events (sessionStart/sessionEnd, preToolUse/postToolUse, beforeShellExecution/afterShellExecution, beforeMCPExecution/afterMCPExecution, beforeReadFile/afterFileEdit, beforeSubmitPrompt, preCompact, subagentStart/subagentStop, stop, afterAgentResponse/afterAgentThought). The CLI changelog confirms hook events fire in the CLI and that Claude Code-format hook responses are accepted.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Set disable-model-invocation: true to make a skill behave like a traditional slash command, where it is only included in context when you explicitly type /skill-name in chat.",
      "evidence_url": "https://cursor.com/docs/skills",
      "notes": "User-defined slash commands are file-based: SKILL.md skills in .cursor/skills or .agents/skills (optionally with disable-model-invocation: true), and markdown command files in a plugin's commands/ directory (docs/reference/plugins). The CLI changelog lists interactive /commands browsers and 'file-backed custom-command files'; older .cursor/commands are migrated to skills via /migrate-to-skills.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "When Cursor starts, it automatically discovers skills from skill directories and makes them available to Agent.",
      "evidence_url": "https://cursor.com/docs/skills",
      "notes": "Implements the open Agent Skills standard: SKILL.md folders loaded from .agents/skills/, .cursor/skills/, ~/.agents/skills/, ~/.cursor/skills/ (plus .claude/skills and .codex/skills for compatibility). The CLI changelog states skills load in interactive, headless and editor-integration modes, with /skill-name invocation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "Plugins package rules, skills, agents, commands, MCP servers, and hooks into distributable bundles.",
      "evidence_url": "https://cursor.com/docs/plugins",
      "notes": "Supports the Agent Plugins open standard and Cursor Plugins (.cursor-plugin/plugin.json); installable from the Cursor Marketplace, team marketplaces, or a git URL. In the CLI: `/plugin [subcommand]` manages plugins and marketplaces, `--plugin-dir <path>` loads local plugin directories, and `agent plugin marketplace add <git-url>` works non-interactively.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "Each subagent operates in its own context window, handles specific types of work, and returns its result to the parent agent.",
      "evidence_url": "https://cursor.com/docs/subagents",
      "notes": "Built-in Explore/Bash/Browser subagents plus custom subagents as markdown files in .cursor/agents/ or ~/.cursor/agents/ (also .claude/agents, .codex/agents). Docs state subagents work in the editor, CLI, and Cloud Agents; foreground and background modes are supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "The CLI agent supports the same rules system as the editor. You can create rules in the .cursor/rules directory to provide context and guidance to the agent.",
      "evidence_url": "https://cursor.com/docs/cli/using",
      "notes": "Automatically loads .cursor/rules/*.mdc project rules, and also reads AGENTS.md and CLAUDE.md at the project root (applied as rules alongside .cursor/rules). Nested AGENTS.md files in subdirectories are also supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "The CLI also reads AGENTS.md and CLAUDE.md at the project root",
      "evidence_url": "https://cursor.com/docs/cli/using",
      "notes": "AGENTS.md at the project root is loaded automatically by the CLI; the Rules doc adds that Cursor supports AGENTS.md in the project root and subdirectories (nested files combined with parent instructions).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Approval mode: allowlist, auto-review, or unrestricted",
      "evidence_url": "https://cursor.com/docs/cli/reference/configuration",
      "notes": "Three named run modes: Allowlist (only allowlisted Shell/Read/Write/WebFetch/Mcp permissions run without prompting), Auto-review (classifier reviews non-allowlisted calls; `--auto-review` / `/auto-review`) and Run Everything / unrestricted (`/run-everything`, `--force`). Set via approvalMode in cli-config.json or /config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "sandbox",
      "value": "yes",
      "quote": "Cursor uses Seatbelt through sandbox-exec. A generated sandbox profile limits file access, network access, and other process behavior for the full subprocess tree.",
      "evidence_url": "https://cursor.com/docs/agent/security/run-modes",
      "notes": "OS-level sandbox for shell commands: Seatbelt on macOS, Landlock with Bubblewrap fallback on Linux, with network blocked by default and configurable via sandbox.json. In the CLI it is controlled with `--sandbox enabled|disabled`, `/sandbox`, and `agent sandbox enable|disable|run`. Windows sandboxing is not described on the platform page.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "An interactive timeline restores files and conversation state to any earlier turn, with per-turn file diffs, conversation-only restore, and /undo//restore aliases (enable in /config).",
      "evidence_url": "https://cursor.com/docs/cli/changelog",
      "notes": "`/rewind` (aliases /undo, /restore) rewinds both files and conversation to an earlier turn without relying on git commits; a later changelog entry states /rewind is on by default and the configuration reference exposes a `rewind` boolean.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Use Plan mode to design your approach before coding. The agent asks clarifying questions to refine your plan.",
      "evidence_url": "https://cursor.com/docs/cli/using",
      "notes": "Named Plan mode via Shift+Tab, `/plan`, `--plan` or `--mode=plan` (the ACP reference describes it as 'planning, read-only behavior'); there is also a separate read-only Ask mode (`/ask`, `--mode=ask`) for exploration without changes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Force allow commands unless explicitly denied",
      "evidence_url": "https://cursor.com/docs/cli/reference/parameters",
      "notes": "`-f, --force` (alias `--yolo`) auto-approves commands unless denied by permissions; interactively `/run-everything` toggles the Run Everything mode where every tool call runs automatically, and `--approve-mcps` / `--trust` remove the remaining prompts.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Continue from an existing thread with --resume [thread id] to load prior context.",
      "evidence_url": "https://cursor.com/docs/cli/using",
      "notes": "`--resume <chatId>` resumes a specific chat, `--continue` / `agent resume` / `/resume` resume the most recent one, and `agent ls` opens a picker of previous chats.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Use print mode (-p, --print) for non-interactive scripting and automation.",
      "evidence_url": "https://cursor.com/docs/cli/headless",
      "notes": "`agent -p \"prompt\"` runs non-interactively with `--output-format text|json|stream-json`, API-key auth via CURSOR_API_KEY, and a documented GitHub Actions setup; combine with `--force` to apply file changes in scripts.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Background tasks. Double Ctrl+B sends a running shell to the background, headless runs wait for background work to finish (emitting events for stream-json consumers), and completion notifications render cleanly.",
      "evidence_url": "https://cursor.com/docs/cli/changelog",
      "notes": "Running shell commands can be backgrounded (double Ctrl+B) and viewed in a jobs list with kill controls; subagents can also run in background mode and notify on completion.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Pass -w or --worktree [name] to run the agent in a new Git worktree instead of editing your current checkout directly.",
      "evidence_url": "https://cursor.com/docs/cli/using",
      "notes": "Built-in git worktree integration (`--worktree`, `--worktree-base`, setup via .cursor/worktrees.json) lets several agents work on the same repo without conflicts; the CLI also runs parallel subagents locally and can hand tasks off to Cloud Agents with `&`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can select a model for the CLI using the /model slash command.",
      "evidence_url": "https://cursor.com/docs/cli/reference/configuration",
      "notes": "Choose among many models (OpenAI, Anthropic, Google, xAI, Cursor Composer, Auto) via `/model`, `--model <model>`, `--list-models` / `agent models`, and model-family shortcuts such as /opus.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "byok_providers",
      "value": "partial",
      "quote": "You can add your own API keys so Cursor uses your preferred AI models. Your provider (OpenAI, Anthropic, Google, and others) bills you directly for the model cost of those requests.",
      "evidence_url": "https://cursor.com/help/models-and-usage/api-keys",
      "notes": "Own keys for OpenAI, Anthropic, Google, Azure OpenAI and AWS Bedrock are configured in the editor settings and apply to the account; the only CLI-specific path is agent bedrock. Requests are still routed through Cursor servers and no custom or OpenAI-compatible endpoint is documented, so partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "local_models",
      "value": "no",
      "quote": "Find the provider you want (OpenAI, Anthropic, Google, Azure, or AWS Bedrock)",
      "evidence_url": "https://cursor.com/help/models-and-usage/api-keys",
      "notes": "The BYOK documentation lists only hosted providers and states requests are routed through Cursor's servers; no Ollama, LM Studio, llama.cpp, vLLM or custom base-URL option is documented for the CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Changing Fast, reasoning effort, or context in /model preserves your other compatible choices and keeps Max Mode in sync.",
      "evidence_url": "https://cursor.com/docs/cli/changelog",
      "notes": "Reasoning effort (and Fast/context options) are adjustable per model in the `/model` picker; effort variants can also be passed as model slugs to `--model` in headless mode, and subagents accept `model: name[effort=high]`. `/show-thinking` toggles display of thinking blocks. Effort levels are fixed on the Start plan.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "/usage now shows your account's included-usage meters with Auto and API breakdowns, on-demand spend against your limit, plan name, and billing-cycle reset date.",
      "evidence_url": "https://cursor.com/docs/cli/changelog",
      "notes": "`/usage` shows plan usage and spend; the working status area shows live token counts, `/context` visualizes context consumption, a custom statusLine can render token usage, and stream-json output includes per-turn token totals.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "To send images, media files, or other binary data to the agent, include file paths in your prompts. The agent can read any files through tool calling, including images, videos, and other formats.",
      "evidence_url": "https://cursor.com/docs/cli/headless",
      "notes": "Images by file path in prompts (headless doc), plus `--image` in any session, Ctrl+V clipboard image paste and drag-and-drop paths per the CLI changelog; attached images render inline in capable terminals.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "A new Auto-Accept Web Search permission lets the agent run web searches without pausing for approval each time.",
      "evidence_url": "https://cursor.com/docs/cli/changelog",
      "notes": "Built-in Web tool ('Generate search queries and perform web searches' in the Agent tools overview); in the CLI web searches prompt for approval unless autoAcceptWebSearch is set in cli-config.json or /config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Controls which domains the agent can fetch when using the web fetch tool (e.g., to retrieve documentation or web pages). Without an allowlist entry, each fetch prompts for approval.",
      "evidence_url": "https://cursor.com/docs/cli/reference/permissions",
      "notes": "Built-in web fetch tool governed by WebFetch(domain) permission tokens in cli-config.json / .cursor/cli.json; fetches prompt for approval unless the domain is allowlisted.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Use Cursor's AI agent in IntelliJ IDEA, PyCharm, WebStorm, and other JetBrains IDEs through the Agent Client Protocol (ACP).",
      "evidence_url": "https://cursor.com/docs/integrations/jetbrains",
      "notes": "The CLI is the agent behind the Cursor editor itself (`/open` opens the repo in Cursor) and is officially integrated into JetBrains IDEs and ACP editors such as Zed via `agent acp`; the JetBrains integration requires a paid Cursor plan.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "Add \"Made with Cursor\" footer to Agent PRs (default: true)",
      "evidence_url": "https://cursor.com/docs/cli/reference/configuration",
      "notes": "Agent-created commits and PRs are first-class (attribution.attributeCommitsToAgent / attributePRsToAgent settings, worktree example 'open a PR', built-in /split-to-prs and /autopilot skills); the GitHub Actions doc shows the agent creating branches, committing, pushing and commenting on PRs via git/gh, though no dedicated /commit or /pr command exists.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "auto_memory",
      "value": "no",
      "quote": "Large language models don't retain memory between completions. Rules provide persistent, reusable context at the prompt level.",
      "evidence_url": "https://cursor.com/docs/rules",
      "notes": "No agent-written cross-session memory is documented for the CLI; persistence comes from user-maintained rules, AGENTS.md, skills and resumable chat transcripts.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "Install Cursor CLI on Windows using PowerShell:",
      "evidence_url": "https://cursor.com/docs/cli/installation",
      "notes": "Native Windows install via `irm 'https://cursor.com/install?win32=true' | iex`, a Windows config path ($env:USERPROFILE\\.cursor\\cli-config.json), and changelog entries for PowerShell execution policies and native Windows updates; WSL is also supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "open_source",
      "value": "no",
      "quote": "Cursor CLI lets you interact with AI agents directly from your terminal to write, review, and modify code.",
      "evidence_url": "https://cursor.com/docs/cli/overview",
      "notes": "Distributed only as a binary installer from cursor.com/install; no source repository or open-source license is published in the docs.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cursor-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "The Hobby plan gives you access to Cursor's core features with limited usage. You can use Agent, Chat, and Tab completions with the Auto model.",
      "evidence_url": "https://cursor.com/help/account-and-billing/pricing",
      "notes": "The free Hobby plan includes Agent with limited usage, restricted to the Auto model; some surfaces such as the JetBrains ACP integration require a paid plan.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "You can connect MCP servers to GitHub Copilot CLI to give Copilot access to external tools, data sources, and services.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers",
      "notes": "Configured via /mcp add, `copilot mcp add`, ~/.copilot/mcp-config.json, or per-repo .mcp.json / .github/mcp.json; supports stdio, Streamable HTTP and legacy SSE transports. GitHub MCP server is built in.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Use the --acp option of the copilot command to start the CLI's ACP server.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/acp-server",
      "notes": "No MCP serve mode is documented anywhere in the command reference; the CLI can be exposed to other clients only via the Agent Client Protocol (`copilot --acp`, public preview), which is a different protocol from MCP.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks allow you to extend and customize the behavior of GitHub Copilot agents by executing custom shell commands at key points during agent execution.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-hooks",
      "notes": "JSON hook files in .github/hooks/*.json (repo) or ~/.copilot/hooks/*.json (user); events include sessionStart, sessionEnd, userPromptSubmitted, preToolUse, postToolUse, agentStop, errorOccurred and more per the hooks reference.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "custom_commands",
      "value": "no",
      "quote": "GitHub Copilot CLI lacks support for user-defined slash commands.",
      "evidence_url": "https://github.com/github/copilot-cli/issues/1113",
      "notes": "The official CLI reference lists only built-in slash commands; user-defined markdown commands are an open feature request (issue #1113), not a shipped feature.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "To create an agent skill, you write a SKILL.md file and, optionally, other resources, such as supplementary Markdown files, or scripts, which you reference in the SKILL.md instructions.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills",
      "notes": "SKILL.md folders loaded from .github/skills, .claude/skills, .agents/skills (project) and ~/.copilot/skills, ~/.agents/skills (personal); managed with /skills and `copilot plugins install --skill`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "Plugins are packages that extend the functionality of Copilot CLI. You can install a plugin from a marketplace that you have registered with the CLI.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing",
      "notes": "`copilot plugin install PLUGIN@MARKETPLACE` / /plugin; two default marketplaces (copilot-plugins, awesome-copilot); plugins bundle agents, skills, hooks, MCP servers and extensions (plugin.json, marketplace.json per the plugin reference).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "One of the benefits of using custom agents you have defined yourself—or the built-in agents—is that the main Copilot agent can run them as subagents with a separate context window.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-custom-agents",
      "notes": "Built-in subagents (explore, task, general-purpose, code-review, research, rubber-duck, security-review) plus user-defined custom agents in .github/agents/NAME.md; dispatched via the `task` tool, can run in parallel.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Instead of repeatedly adding this contextual detail to your prompts, you can create custom instructions that automatically add this information for you.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions",
      "notes": "Automatically loads .github/copilot-instructions.md, .github/instructions/**/*.instructions.md, AGENTS.md, CLAUDE.md (and .claude/CLAUDE.md), GEMINI.md, plus user-level ~/.copilot/copilot-instructions.md; /init generates copilot-instructions.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Agent instructions, discovered in the standard locations. For more information, see the agentsmd/agents.md repository.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions",
      "notes": "AGENTS.md is listed as a supported instruction location, discovered in repo root, cwd and intermediate directories; supports @path file imports.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Switch between permission modes (default, assisted, allow-all), or show the current mode (show). This is the canonical command for permission mode changes; /allow-all and /yolo remain supported as aliases.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "/permissions [default|assisted|allow-all]; assisted mode attaches an LLM safety recommendation. Additional granular control via --allow-tool / --deny-tool / --allow-all-tools and per-location tool_approvals in settings.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "sandbox",
      "value": "partial",
      "quote": "When you enable local sandboxing, Copilot CLI runs the commands it invokes on your behalf inside an operating-system sandbox.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing",
      "notes": "First-party OS-level local sandbox (/sandbox enable) with filesystem and network policy, plus cloud sandboxes (copilot --cloud); marked public preview, and local sandboxing on Windows requires a Windows Insiders build.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "As Copilot works, Copilot CLI tracks the file changes it makes as it responds to each prompt.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/cancel-and-roll-back",
      "notes": "Automatic per-turn file-change tracking with a rewind picker (press Esc twice when idle, or /undo, alias /rewind); choose conversation only or conversation plus files. Works in any directory without Git; not available for remote-backed sessions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "/plan starts a planning session where Copilot CLI can explore and analyze your codebase but is blocked from editing your project files.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "Named plan mode via /plan, --plan / --mode plan, or Shift+Tab cycling (standard, plan, autopilot); docs note the edit block is a safety net, not an absolute guarantee.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "The --allow-all and --yolo options allow the CLI agent to use all tools, paths, and URLs. You can also set these permissions during an interactive session, by using the /allow-all or /yolo slash commands.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/autopilot",
      "notes": "--allow-all / --yolo / --allow-all-tools skip all approvals in interactive or programmatic mode; autopilot mode (--autopilot) adds autonomous continuation; can be disabled by enterprise policy permissions.disableBypassPermissionsMode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume a previous interactive session by choosing from a list. Optionally specify a session ID, ID prefix, or session name.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "`copilot --resume[=ID|name]` opens a picker or resumes a specific session; `--continue` resumes the most recent; /resume and /continue slash commands and a Sessions tab/sidebar in-session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "You can also pass the CLI a single prompt directly on the command line. The CLI completes the task and then exits.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli",
      "notes": "`copilot -p \"...\"` (--prompt) programmatic mode, combinable with --allow-all-tools and --autopilot; also a documented GitHub Actions integration.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Promote the running task or shell command to the background.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "Ctrl+X then b backgrounds the running task or shell command; background agents are tracked via read_agent (\"Check background agent status\") and -p waits for pending background agents/commands before exiting.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "You're not limited to one session at a time. You can keep several running side by side and switch between them.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/work-with-multiple-sessions",
      "notes": "Copilot CLI runs several live sessions side by side in one process (sessions sidebar, /restart restores all live sessions), documented as a workflow for parallel work; /fleet additionally runs parallel subagents. --worktree and /worktree are experimental.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can change the model used by GitHub Copilot CLI by using the /model slash command or the --model command-line option.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli",
      "notes": "/model picker or --model; models from Anthropic, OpenAI, Google, xAI depending on plan; Copilot Free/Student users get models only through auto model selection.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "This lets you connect to OpenAI-compatible endpoints, Azure OpenAI, or Anthropic, including locally running models such as Ollama.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models",
      "notes": "COPILOT_PROVIDER_BASE_URL / COPILOT_PROVIDER_TYPE (openai, azure, anthropic) / COPILOT_PROVIDER_API_KEY / COPILOT_MODEL env vars; COPILOT_OFFLINE=true offline mode; BYOK sessions can run without GitHub login.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "local_models",
      "value": "yes",
      "quote": "You have an API key from a supported LLM provider, or you have a local model running (such as Ollama).",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models",
      "notes": "Ollama, vLLM and Foundry Local explicitly documented via the openai provider type; example given for a local Ollama instance at http://localhost:11434 with no API key.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Set the reasoning effort level (low, medium, high, xhigh, max). max is the highest-depth tier for Anthropic models.",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "--effort / --reasoning-effort flag, also adjustable in the /model picker per session; custom agents can set reasoningEffort in frontmatter.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "The amount of GitHub AI Credits used in the current session",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview",
      "notes": "/usage shows session statistics: GitHub AI Credits used (the billing unit, not currency), session duration, lines edited and a per-model token breakdown; the same stats print at session end. /context shows context-window usage.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Image and PDF attachments are available on all Copilot plans and are enabled by default, with no policy required to turn the feature on or off.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/overview",
      "notes": "Attach via @path reference, drag-and-drop, Alt+V paste from clipboard, or --attachment PATH; sending images requires the selected model and org policy to allow vision input.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "web_search",
      "value": "partial",
      "quote": "GitHub MCP web search tool is available immediately without requiring tool search",
      "evidence_url": "https://raw.githubusercontent.com/github/copilot-cli/main/changelog.md",
      "notes": "A web_search tool is enabled by default (removable with --excluded-tools), but it is provided by the bundled GitHub MCP server rather than being a native CLI tool, so the rubric counts it as partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "The web_fetch tool enforces server-side request forgery (SSRF) protections before making any HTTP request:",
      "evidence_url": "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
      "notes": "Built-in web_fetch tool (\"Fetch and parse web content\") with SSRF protections and URL permission prompts; localhost access via COPILOT_WEB_FETCH_ALLOW_LOCALHOST=1.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Copilot CLI can automatically connect to VS Code when you start a CLI session.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/connecting-vs-code",
      "notes": "Official VS Code connection (/ide): editor selection as context, diffs shown in VS Code, diagnostics, session transcripts and 'Resume in Terminal'; ACP server also enables other editors.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "The /pr slash command lets you manage the full pull request lifecycle without leaving your terminal. You can check pull request status, create new pull requests, and fix common issues such as review feedback, merge conflicts, and CI failures.",
      "evidence_url": "https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/manage-pull-requests",
      "notes": "/pr create, /pr fix, /pr auto, /pr automerge; commits and pushes via git/gh with permission prompts; natural-language commit and PR creation also documented on the About page.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "This feature is currently in public preview and is subject to change.",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-memory",
      "notes": "Copilot Memory is agent-written cross-session memory (repository facts and user preferences Copilot deduces as it works), but it is in public preview, available on paid Copilot plans only, and disabled by default in prompt mode (--enable-memory).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "Windows from within Powershell and Windows Subsystem for Linux (WSL)",
      "evidence_url": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli",
      "notes": "Native Windows via PowerShell v6+ (winget install GitHub.Copilot or npm); WSL also supported. Local sandboxing on Windows requires a Windows Insiders build.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "open_source",
      "value": "no",
      "quote": "Modify, adapt, translate, or create derivative works of the Software;",
      "evidence_url": "https://raw.githubusercontent.com/github/copilot-cli/main/LICENSE.md",
      "notes": "Proprietary 'GitHub Copilot CLI License' that forbids modification/derivative works; the public repo contains only README, LICENSE.md, changelog.md and install.sh, no source code.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "copilot-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "The table below provides an overview of differences between plans. All plans include Copilot CLI and Copilot app.",
      "evidence_url": "https://docs.github.com/en/copilot/get-started/plans",
      "notes": "Copilot Free plan (at no cost, individual developers only) includes Copilot CLI with an AI-credit allowance and auto model selection only; CLI docs also state it is available with all Copilot plans.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "MCP (Model Context Protocol) lets Cline use external tools and data sources through MCP servers.",
      "evidence_url": "https://docs.cline.bot/mcp/mcp-overview.md",
      "notes": "CLI configures servers in ~/.cline/mcp.json or via the `cline mcp` wizard (`cline mcp install`); IDE via the MCP Servers panel. Supports STDIO, Streamable HTTP and legacy SSE transports.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Use either local servers or remote hosted servers",
      "evidence_url": "https://docs.cline.bot/mcp/mcp-overview.md",
      "notes": "The MCP docs, CLI reference and READMEs only describe Cline as an MCP client; no serve/expose mode is documented. Cline can be driven by editors via `--acp` (Agent Client Protocol), which is a different protocol from MCP.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "hooks",
      "value": "yes",
      "quote": "Cline hooks allow you to execute custom scripts at specific points in the agentic workflow.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/.clinerules/hooks/README.md",
      "notes": "File hooks named TaskStart, TaskResume, TaskCancel, UserPromptSubmit, PreToolUse, PostToolUse (plus TaskComplete/SessionShutdown in the SDK examples) live in .clinerules/hooks/ (extension, needs 'Enable Hooks') or .cline/hooks/ and `--hooks-dir` (CLI); they get JSON on stdin and can cancel or inject context. Plugins additionally get runtime hooks (beforeRun, beforeTool, afterTool, ...). The extension hooks README states Windows is not currently supported for file hooks.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Any enabled skill can be triggered this way, which gives you a fast path to skill-specific guidance without rewriting the same instructions each time.",
      "evidence_url": "https://docs.cline.bot/core-workflows/using-commands.md",
      "notes": "User-defined prompt templates are skills: a .cline/skills/<name>/SKILL.md (or ~/.cline/skills/) becomes the slash command /<name>. Plugins can also register slash commands. The older Workflows feature (.clinerules/workflows/*.md as slash commands) still appears in the changelog but is no longer documented on the docs site.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "skills",
      "value": "yes",
      "quote": "Every skill is a directory containing a `SKILL.md` file with YAML frontmatter.",
      "evidence_url": "https://docs.cline.bot/customization/skills.md",
      "notes": "Skills load from .cline/skills/, .clinerules/skills/, .claude/skills/ (project) or ~/.cline/skills/ (global); activated on demand via the `use_skill` tool or /<skill-name>. Works in IDE and CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "plugins",
      "value": "yes",
      "quote": "Plugins extend Cline with custom tools, lifecycle hooks, slash commands, and more. They can be installed globally (available in all sessions) or per-project.",
      "evidence_url": "https://docs.cline.bot/customization/plugins.md",
      "notes": "`cline plugin install <source>` accepts file URLs, git repos, npm packages or local paths; manifest is a `cline.plugins` field in package.json. Docs state plugins currently apply only to the SDK, CLI and Kanban, not the VS Code/JetBrains extensions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "subagents",
      "value": "yes",
      "quote": "A coordinator agent breaks the work into subtasks and delegates to specialist agents, each with their own tools and context.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/README.md",
      "notes": "CLI agent teams (cline --team-name, /team; enabled by default, disable with --no-teams) delegate subtasks to specialist agents with their own tools and context. The separate use_subagents research tool is documented as experimental.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "**Workspace rules** go in `.clinerules/` at your project root.",
      "evidence_url": "https://docs.cline.bot/customization/cline-rules.md",
      "notes": "Automatically loads .clinerules/ (all .md/.txt files, optional `paths:` frontmatter for conditional rules), .cline/rules/, plus .cursorrules, .windsurfrules and AGENTS.md; global rules in ~/Documents/Cline/Rules or ~/.cline/rules.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Cline also reads cross-tool global AGENTS instructions from `~/.agents/AGENTS.md`.",
      "evidence_url": "https://docs.cline.bot/customization/cline-rules.md",
      "notes": "The Supported Rule Types table lists AGENTS.md (project root) and ~/.agents/AGENTS.md as an automatically detected rule source, toggleable in the Rules panel.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Auto Approve lets you decide which actions Cline can take without prompting you each time.",
      "evidence_url": "https://docs.cline.bot/features/auto-approve.md",
      "notes": "Granular Auto Approve categories (read/edit project or all files, safe vs all commands, browser, MCP), YOLO mode, and Plan vs Act; CLI exposes `--auto-approve true|false`, `--yolo`, `-p/--plan`, plus CLINE_COMMAND_PERMISSIONS allow/deny lists.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "sandbox",
      "value": "no",
      "quote": "Use isolated local state at `<path>` instead of `~/.cline/data` (enables sandbox mode automatically)",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/apps/cli/README.md",
      "notes": "The documented 'sandbox mode' (CLINE_SANDBOX, --data-dir) only isolates Cline's own session/state directory; no OS-level filesystem or network isolation for shell commands is documented. Command restriction is via the CLINE_COMMAND_PERMISSIONS policy, not a sandbox.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "Cline maintains a shadow Git repository separate from your project's actual Git history.",
      "evidence_url": "https://docs.cline.bot/core-workflows/checkpoints.md",
      "notes": "Automatic snapshot after every tool use with Restore Files / Restore Task Only / Restore Files & Task in the IDE; the CLI README lists checkpoints with `/undo` to rewind workspace state.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "In this mode, Cline can read your codebase, run searches, and discuss strategy, but cannot modify any files or execute commands.",
      "evidence_url": "https://docs.cline.bot/core-workflows/plan-and-act.md",
      "notes": "Named Plan mode; CLI `-p/--plan`, Tab toggles Plan/Act in the TUI. CLI changelog notes plan mode now hard-blocks file-editing shell commands.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "full_auto",
      "value": "yes",
      "quote": "YOLO mode is Auto Approve on steroids. Check the box and Cline auto-approves everything: file changes, terminal commands, browser actions, MCP tools, and mode transitions.",
      "evidence_url": "https://docs.cline.bot/features/auto-approve.md",
      "notes": "IDE YOLO Mode checkbox; CLI `--auto-approve true` (the default for prompt runs), `--yolo`, and `--zen` background runs all skip approvals.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume an existing session by ID",
      "evidence_url": "https://docs.cline.bot/cli/cli-reference.md",
      "notes": "CLI `--id <session-id>` resumes any saved session; `cline history` / `/history` list sessions; IDE task History view resumes tasks with full context. Team state also persists via `--team-name`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "headless",
      "value": "yes",
      "quote": "Headless is triggered when using flags like `--json`, when stdin is piped, or when output is redirected.",
      "evidence_url": "https://docs.cline.bot/usage/cli-overview.md",
      "notes": "`cline --json \"task\"` streams NDJSON; `cline auth --provider ... --apikey ...` configures CI non-interactively; documented GitHub Actions samples.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "For long-running processes like dev servers, Cline continues working in the background and reacts to new output as it appears, catching compile errors, test failures, and server crashes as they happen.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/README.md",
      "notes": "Long-running commands keep running while the agent proceeds; CLI `-z/--zen` dispatches a whole task to the background hub daemon, and a background-terminal plugin example adds detached shell jobs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Sub-agent spawning and agent teams for parallel work",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/apps/cli/README.md",
      "notes": "Agent teams (--team-name) and sub-agent spawning run inside one CLI session (disabled by default in --yolo and --zen). The only isolated-worktree multi-agent runner, Kanban (npx kanban), is a research preview; no generally available worktree or cloud parallel workflow is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Model to use for the session with the selected provider",
      "evidence_url": "https://docs.cline.bot/cli/cli-reference.md",
      "notes": "CLI `-m/--model` and `-P/--provider`, TUI `/model`; IDE model selector, with an option to use different models for Plan and Act modes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "Cline supports a wide range of AI model providers that offer APIs compatible with the OpenAI API standard.",
      "evidence_url": "https://docs.cline.bot/provider-config/openai-compatible.md",
      "notes": "OpenAI Compatible provider with custom Base URL, API key and model ID; plus dedicated Anthropic, OpenAI, Gemini, OpenRouter, Bedrock, Vertex, Cerebras, Groq and 30+ others. CLI `--baseurl`, `-k/--key`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "local_models",
      "value": "yes",
      "quote": "Run Cline with local models using Ollama, LM Studio or Atomic Chat.",
      "evidence_url": "https://docs.cline.bot/running-models-locally/overview.md",
      "notes": "Dedicated Ollama (localhost:11434), LM Studio (localhost:1234) and Atomic Chat providers with a 'Use Compact Prompt' setting for small models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Set reasoning effort level between none|low|medium|high|xhigh (default: medium)",
      "evidence_url": "https://docs.cline.bot/cli/cli-reference.md",
      "notes": "CLI `--thinking <level>` flag; CLI README describes configurable thinking budgets per run.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "cost_display",
      "value": "yes",
      "quote": "The status area shows the active model, context usage, cost, workspace/branch, git diff stats, Plan/Act state, and whether auto-approve all is enabled.",
      "evidence_url": "https://docs.cline.bot/usage/tui.md",
      "notes": "TUI status bar shows cost and context usage; IDE task header shows estimated cost and tokens after each request; `cline -v` prints tokens and estimated cost.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "image_input",
      "value": "yes",
      "quote": "cline -i \"fix the layout issue shown in @./screenshot.png\"",
      "evidence_url": "https://docs.cline.bot/usage/cli-overview.md",
      "notes": "CLI accepts images via @path mentions; IDE supports drag-and-drop and the + button for images/PDFs. Requires a multimodal model.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "web_search",
      "value": "partial",
      "quote": "Let models that support it search the web during a task, with a toggle in Feature Settings to turn it on. Search calls and their results appear in the conversation and persist across reloads.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/CHANGELOG.md",
      "notes": "Web search is an opt-in Feature Settings toggle that relies on models with native search (v4.1.10); the CLI renders such native search results. Otherwise search is available via the installable `web-search.ts` plugin (Exa API key) or the browser tool.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "HTTP requests with HTML-to-markdown conversion",
      "evidence_url": "https://docs.cline.bot/tools-reference/all-cline-tools.md",
      "notes": "Built-in `fetch_web` tool in ClineCore (called `fetch_web_content` in the SDK); the Adding Context page says Cline will fetch a URL when asked. IDE also has a browser tool.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "[IDE Extension](#ide-extension) — VS Code, Cursor, JetBrains, Windsurf, VSCodium, Antigravity",
      "evidence_url": "https://docs.cline.bot/getting-started/installing-cline.md",
      "notes": "Official VS Code Marketplace extension and JetBrains Marketplace plugin (JetBrains plugin source is not open); Zed, Neovim, Emacs and other editors via `cline --acp`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "**Open PR** — creates a new branch and opens a pull request",
      "evidence_url": "https://docs.cline.bot/kanban/core-workflow.md",
      "notes": "Commit and Open PR buttons are a documented workflow only in Kanban, which is a research preview; the IDE offers 'Generate Commit Message' in Source Control, and the CLI docs show gh-based PR review in GitHub Actions rather than a built-in PR command.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "Memory Bank is a documentation methodology that transforms Cline from a stateless assistant into a persistent development partner.",
      "evidence_url": "https://docs.cline.bot/best-practices/memory-bank.md",
      "notes": "Memory Bank requires the user to add custom instructions to a .clinerules file; the agent then reads/updates memory-bank/*.md on request ('update memory bank'). No automatic, built-in cross-session memory is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "windows_native",
      "value": "yes",
      "quote": "Platform binaries are published for macOS, Linux, and Windows on `arm64` and `x64`.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/apps/cli/README.md",
      "notes": "Native Windows CLI binaries (Authenticode-signed) with PowerShell command handling; VS Code/JetBrains extensions and a Windows desktop app also run natively. File-based hooks in the extension are documented as not supported on Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "open_source",
      "value": "yes",
      "quote": "Apache 2.0 © 2026 Cline Bot Inc.",
      "evidence_url": "https://raw.githubusercontent.com/cline/cline/main/README.md",
      "notes": "Repository cline/cline (CLI, SDK, VS Code extension, desktop app) is Apache-2.0; the README notes the JetBrains plugin is not open-sourced.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "cline",
      "capability": "free_tier",
      "value": "partial",
      "quote": "Cline periodically offers **free model promotions** that let you try select models at no cost, up to a limited usage quota.",
      "evidence_url": "https://docs.cline.bot/getting-started/free-models.md",
      "notes": "Free models are rotating, limited-time promotions with a usage quota for Cline account holders; otherwise paid via ClinePass/credits or BYOK. The software itself is free and works with free local models.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "You can add external tools to OpenCode using the _Model Context Protocol_, or MCP. OpenCode supports both local and remote servers.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/mcp-servers.mdx",
      "notes": "Configured under the `mcp` key in opencode.json with `type: local` (command) or `type: remote` (url, headers, OAuth); `opencode mcp add/list/auth` CLI commands also exist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "mcp_server",
      "value": "no",
      "quote": "This starts an HTTP server that provides API access to opencode functionality without the TUI interface.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/cli.mdx",
      "notes": "OpenCode exposes itself via an HTTP/OpenAPI server (`opencode serve`) and an ACP server (`opencode acp`), but no documented mode serves its tools over MCP.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "hooks",
      "value": "partial",
      "quote": "Plugins allow you to extend OpenCode by hooking into various events and customizing behavior.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/plugins.mdx",
      "notes": "Many lifecycle events (tool.execute.before/after, session.created, session.idle, permission.asked, etc.) are available, but only by writing a JS/TS plugin module in .opencode/plugins/ rather than through a shell-script hook config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Create markdown files in the `commands/` directory to define custom commands.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/commands.mdx",
      "notes": "Markdown files in .opencode/commands/ or ~/.config/opencode/commands/ (or the `command` key in opencode.json) become /slash commands with $ARGUMENTS, $1..$n, !`shell` and @file placeholders.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "skills",
      "value": "yes",
      "quote": "Create one folder per skill name and put a `SKILL.md` inside it.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/skills.mdx",
      "notes": "SKILL.md skills loaded on demand via the native `skill` tool from .opencode/skills/, ~/.config/opencode/skills/, and Claude-/agent-compatible .claude/skills and .agents/skills paths.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "plugins",
      "value": "yes",
      "quote": "**npm plugins** are installed automatically using Bun at startup. Packages and their dependencies are cached in `~/.cache/opencode/node_modules/`.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/plugins.mdx",
      "notes": "Plugins (JS/TS modules) add hooks and custom tools; installed from local .opencode/plugins/ or npm via the `plugin` config array or `opencode plugin <module>`; an ecosystem page lists community plugins.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "subagents",
      "value": "yes",
      "quote": "Subagents are specialized assistants that primary agents can invoke for specific tasks. You can also manually invoke them by **@ mentioning** them in your messages.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/agents.mdx",
      "notes": "Built-in subagents General, Explore, Scout plus user-defined `mode: subagent` agents in markdown/JSON; they run in child sessions invoked via the Task tool, with `subagent_depth` config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "You can provide custom instructions to opencode by creating an `AGENTS.md` file. This is similar to Cursor's rules.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/rules.mdx",
      "notes": "Reads AGENTS.md (project, traversing up, and global ~/.config/opencode/AGENTS.md), falls back to CLAUDE.md / ~/.claude/CLAUDE.md, and supports an `instructions` array of extra files/globs/URLs in opencode.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Place an `AGENTS.md` in your project root for project-specific rules. These only apply when you are working in this directory or its sub-directories.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/rules.mdx",
      "notes": "AGENTS.md is the primary, automatically loaded rules file; `/init` creates or updates it.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "OpenCode uses the `permission` config to decide whether a given action should run automatically, prompt you, or be blocked.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/permissions.mdx",
      "notes": "Per-tool and per-pattern `allow` / `ask` / `deny` rules, per-agent overrides (Build vs Plan agents), plus an `--auto` mode toggle.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "sandbox",
      "value": "no",
      "quote": "docker run -it --rm ghcr.io/anomalyco/opencode",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/index.mdx",
      "notes": "No sandbox feature is documented. The Docker image is an install method, not an isolation mechanism; the permission system controls which actions prompt, not OS-level isolation.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "OpenCode uses snapshots to track file changes during agent operations, enabling you to undo and revert changes within a session. Snapshots are enabled by default.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/config.mdx",
      "notes": "`/undo` and `/redo` revert or restore agent file changes using an internal git snapshot repository (project must be a Git repo); can be disabled with `snapshot: false`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "This agent is useful when you want the LLM to analyze code, suggest changes, or create plans without making any actual modifications to your codebase.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/agents.mdx",
      "notes": "Built-in Plan primary agent (switch with Tab) sets file edits and bash to `ask`; an additional OPENCODE_EXPERIMENTAL_PLAN_MODE flag exists.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Start OpenCode with `--auto` to automatically approve permission requests that are not explicitly denied.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/permissions.mdx",
      "notes": "`--auto` works for both the TUI and `opencode run`; explicit `deny` rules are still enforced, and `\"permission\": \"allow\"` sets everything to allow.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "session_resume",
      "value": "yes",
      "quote": "List and switch between sessions. _Aliases_: `/resume`, `/continue`",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/tui.mdx",
      "notes": "`/sessions` picker in the TUI plus `--continue`/`-c` (last session), `--session <id>` and `--fork` flags on `opencode`, `opencode run` and `opencode attach`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "headless",
      "value": "yes",
      "quote": "Run opencode in non-interactive mode by passing a prompt directly.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/cli.mdx",
      "notes": "`opencode run \"<prompt>\"` with `--format json`, `--auto`, `--model`, `--agent`; also a GitHub Actions integration and `opencode serve` HTTP server.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "Enable background subagent tasks",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/cli.mdx",
      "notes": "Background subagent tasks exist only behind the experimental `OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS` env var; no documented background shell command feature (community plugins like opencode-pty fill the gap).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Has full tool access (except todo), so it can make file changes when needed. Use this to run multiple units of work in parallel.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/agents.mdx",
      "notes": "Parallelism is documented only as running multiple General subagents inside one session; git-worktree integration exists only as a community plugin (opencode-worktree) and workspaces are an experimental flag.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Once you've configured your provider you can select the model you want by typing in:",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/models.mdx",
      "notes": "`/models` picker in the TUI, `--model provider/model` flag, `model` and `small_model` config keys, per-agent and per-command model overrides.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "You can customize the base URL for any provider by setting the `baseURL` option. This is useful when using proxy services or custom endpoints.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/providers.mdx",
      "notes": "75+ providers via Models.dev with API keys from `/connect` or `opencode auth login`; custom providers use `npm: @ai-sdk/openai-compatible` with any baseURL; Bedrock, Vertex, Azure, OpenRouter etc. documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "local_models",
      "value": "yes",
      "quote": "You can configure opencode to use local models through Ollama.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/providers.mdx",
      "notes": "Dedicated sections for Ollama (localhost:11434), LM Studio, llama.cpp llama-server, NVIDIA NIM and Atomic Chat as OpenAI-compatible local providers.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Many models support multiple variants with different configurations. OpenCode ships with built-in default variants for popular providers.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/models.mdx",
      "notes": "Model variants (for example high or max reasoning effort) are configured per model and cycled with the variant_cycle keybind.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "cost_display",
      "value": "partial",
      "quote": "Show token usage and cost statistics for your OpenCode sessions.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/cli.mdx",
      "notes": "opencode stats is a separate CLI report aggregated across sessions (filters --days, --models, --project, --tools) with token and cost figures; no in-session cost or token line is documented in the TUI, so partial under the rubric.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "image_input",
      "value": "yes",
      "quote": "Drag and drop images into the terminal to add them to the prompt.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/index.mdx",
      "notes": "Drag-and-drop in the TUI, `--file` attachment flag on `opencode run`, and an `attachment.image` config for auto-resize limits.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "web_search",
      "value": "partial",
      "quote": "This tool is only available when using the OpenCode or OpenCode Go provider, or when either the `OPENCODE_ENABLE_EXA` or `OPENCODE_ENABLE_PARALLEL` environment variable is set to any truthy value (e.g., `true` or `1`).",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/tools.mdx",
      "notes": "Built-in `websearch` tool (Exa or Parallel backends, no API key) but only enabled by default for the OpenCode Zen/Go provider or via an opt-in env var.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Allows the LLM to fetch and read web pages. Useful for looking up documentation or researching online resources.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/tools.mdx",
      "notes": "Built-in `webfetch` tool, gated by the `webfetch` permission key (URL pattern matching).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Search for **OpenCode** in the Extension Marketplace and click **Install**.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/ide.mdx",
      "notes": "Official VS Code/Cursor/Windsurf/VSCodium extension (auto-installs when running `opencode` in the integrated terminal) plus ACP support for Zed, JetBrains and Neovim.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "And OpenCode will create a new branch, implement the changes, and open a PR with the changes.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/github.mdx",
      "notes": "Branch, commit and PR creation are documented for the GitHub Actions integration (`opencode github install`, `/opencode` mentions); the local CLI has `opencode pr <number>` to check out a PR but no built-in commit/PR command.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "auto_memory",
      "value": "no",
      "quote": "If you already have an `AGENTS.md`, `/init` will improve it in place instead of blindly replacing it.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/rules.mdx",
      "notes": "No automatic cross-session memory is documented. Persistent context is the user-maintained AGENTS.md, which /init can improve in place on request; the same situation is scored no for Cursor CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "windows_native",
      "value": "yes",
      "quote": "While OpenCode can run directly on Windows, we recommend using [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) for the best experience.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/windows-wsl.mdx",
      "notes": "Native Windows installs via Chocolatey, Scoop, npm; shell defaults to pwsh/cmd.exe on Windows and OPENCODE_GIT_BASH_PATH is supported, but WSL is officially recommended for best experience.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "open_source",
      "value": "yes",
      "quote": "MIT License Copyright (c) 2025 opencode",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/LICENSE",
      "notes": "Source at github.com/anomalyco/opencode (sst/opencode redirects) under the MIT license; docs call it an open source AI coding agent.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "opencode",
      "capability": "free_tier",
      "value": "partial",
      "quote": "Big Pickle is a stealth model that's free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.",
      "evidence_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/zen.mdx",
      "notes": "OpenCode Zen offers several models priced Free (Big Pickle, MiMo-V2.5 Free, Nemotron Free, etc.) but explicitly for a limited time; otherwise usage is pay-as-you-go or BYOK, including free local models.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "You can install any MCP server as a goose extension.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/using-extensions.md",
      "notes": "Extensions are MCP servers; configured via `goose configure` (Add Extension), config.yaml, or `--with-extension` (stdio) and `--with-streamable-http-extension` (Streamable HTTP) flags on `goose session`/`goose run`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "mcp_server",
      "value": "partial",
      "quote": "goose's built-in extensions are MCP servers in their own right.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/using-extensions.md",
      "notes": "`goose mcp <name>` runs a built-in extension (developer, memory, etc.) as a standalone MCP server usable by other agents, but the goose agent itself is exposed to clients via ACP (`goose acp`, `goose serve`), not MCP.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks let you run your own scripts when key events happen during a goose session.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/hooks.md",
      "notes": "Open Plugins hooks spec: user creates `~/.agents/plugins/<name>/hooks/hooks.json` (or project `.agents/plugins/`) mapping events (SessionStart, SessionEnd, Stop, UserPromptSubmit, PreToolUse, PostToolUse, PostToolUseFailure, BeforeReadFile, AfterFileEdit, BeforeShellExecution, AfterShellExecution) to shell commands; PreToolUse and Stop can block.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Configure slash commands in your [configuration file](/docs/guides/config-files). List the command (without the leading `/`) along with the path to the recipe file on your computer:",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/slash-commands.md",
      "notes": "Custom slash commands are defined under `slash_commands:` in `~/.config/goose/config.yaml` (CLI) or via the Recipes UI (Desktop) and map to recipe YAML files; only one parameter can be passed after the command.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "skills",
      "value": "yes",
      "quote": "A `SKILL.md` file requires YAML frontmatter with `name` and `description`, followed by the skill content:",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-skills.md",
      "notes": "Skills are loaded from `~/.agents/skills/<name>/SKILL.md`, project `.agents/skills/`, and plugins (also `.claude/skills/` for compatibility); listed via `goose skills list` or `/skills`, and a built-in `web-search` skill ships with goose.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "plugins",
      "value": "yes",
      "quote": "The install command clones the repository, detects the plugin format, copies it into the plugins directory, and reports the imported components.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/plugins.md",
      "notes": "`goose plugin install <git-url>` (with `--auto-update`) and `goose plugin update <name>` install Open Plugins or Gemini-extension format plugins bundling skills and hooks into `~/.agents/plugins/`; no MCP-server bundling documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "subagents",
      "value": "yes",
      "quote": "Subagents are independent instances that execute tasks while keeping your main conversation clean and focused.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/subagents.mdx",
      "notes": "Built-in `summon` platform extension provides `delegate`/`load` tools; subagents can be direct-prompt or recipe-defined, run sequentially or in parallel, and are auto-spawned only in autonomous (auto) mode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "By default, goose looks for both `AGENTS.md` and `.goosehints` at each level.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-goosehints.md",
      "notes": "Files: `.goosehints` (project root and nested directories, plus global `~/.config/goose/.goosehints`) and `AGENTS.md`; other names such as CLAUDE.md or .cursorrules can be added via `CONTEXT_FILE_NAMES`. Requires the Developer extension.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "agents_md",
      "value": "yes",
      "quote": "goose looks for `AGENTS.md` then `.goosehints` files by default, but you can configure a different filename or multiple context files using the `CONTEXT_FILE_NAMES` environment variable.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-goosehints.md",
      "notes": "AGENTS.md is in the default `CONTEXT_FILE_NAMES` list and is loaded automatically from the working directory hierarchy, including nested directories.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Set the goose mode to use ('auto', 'approve', 'chat', 'smart_approve')",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/goose-cli-commands.md",
      "notes": "Four named modes (Completely Autonomous, Manual Approval, Smart Approval, Chat Only) set via `/mode`, `goose configure`, or `GOOSE_MODE`; per-tool Always Allow / Ask Before / Never Allow overrides are also available.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "sandbox",
      "value": "partial",
      "quote": "The `--container` flag allows you to run goose extensions inside your Docker containers.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/tutorials/goose-in-docker.md",
      "notes": "No built-in OS-level sandbox; isolation is optional via Docker: `goose session --container <id>` runs extensions in a user-provided container, a provided Dockerfile/docker-compose runs goose itself in Docker, and the Container Use MCP extension offers isolated environments.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "checkpoints",
      "value": "no",
      "quote": "Always use a version control system like Git to track changes to your codebase. This prevents accidental overwriting and allows you to revert back to previous states easily.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/file-management.md",
      "notes": "No automatic file checkpoints or rewind command; docs tell users to rely on their own Git commits. Message editing/forking rewinds conversation history only, not file changes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "plan_mode",
      "value": "partial",
      "quote": "In goose, we use a structured RPI workflow using recipes to systematically tackle complex codebase changes.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/tutorials/rpi.md",
      "notes": "The CLI plan mode (`/plan`, `/endplan`) was removed on 2026-09-14 (aaif-goose/goose#12061). Planning is now a prompt workflow: the Research, Plan, Implement tutorial installs recipes as custom slash commands such as `/create_plan`, and it does not document that edits are blocked while planning. Chat Only mode (`/mode chat`) blocks file changes but also all extension use, so the agent cannot explore the code; it is not counted as a plan mode.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "full_auto",
      "value": "yes",
      "quote": "By default, goose can run system commands with your user privileges and edit any accessible file **without your approval**.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/developer-mcp.md",
      "notes": "Autonomous mode (`/mode auto`, `GOOSE_MODE=auto`) is the default and approves every tool call without prompting, in both interactive and headless (`goose run`) use.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Sessions created in goose Desktop can be resumed in the CLI and vice versa. All sessions are stored in the [same database](/docs/guides/logs#session-records).",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/sessions/session-management.md",
      "notes": "`goose session -r` resumes the latest session; `--resume --name <name>` or `--session-id <id>` selects older ones; `goose session list` enumerates them; `--fork` and `--edit` also supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "headless",
      "value": "yes",
      "quote": "The `goose run` command starts a new session, begins executing using any arguments provided and exits the session automatically once the task is complete.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/running-tasks.md",
      "notes": "`goose run -t \"...\"`, `-i file` or `-i -` (stdin), `--recipe`, `--no-session`, `--quiet`, and `--output-format json|stream-json` for CI/CD; a dedicated headless-mode and CI/CD tutorial exist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "For background tasks, `delegate(..., async: true)` returns a task id, and `load(source: \"<task_id>\")` waits for the result.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/summon-mcp.md",
      "notes": "Background execution is documented only for subagent delegation via the summon extension (async delegate, `GOOSE_MAX_BACKGROUND_TASKS`); no documented way to background a shell command in the developer shell tool.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "You can run multiple subagents sequentially or in parallel.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/subagents.mdx",
      "notes": "Parallelism is documented only as parallel subagents inside one session (summon delegate); parallel subrecipes are experimental and no git-worktree, cloud-run or multi-session mechanism is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can change your LLM provider and/or model or update your API key at any time.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/installation.md",
      "notes": "Model chosen via `goose configure`, `GOOSE_MODEL`, Desktop model switcher, or per-run `--provider`/`--model` flags; a separate planner model can also be set.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "The built-in OpenAI provider can connect to OpenAI's official API (`api.openai.com`) or any OpenAI-compatible endpoint, such as:",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
      "notes": "15+ providers with user-supplied API keys; `OPENAI_HOST`/`OPENAI_BASE_PATH` for OpenAI-compatible endpoints (vLLM, KServe, LiteLLM), plus Custom Providers (OpenAI/Anthropic/Ollama-compatible JSON configs in `custom_providers/`).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "local_models",
      "value": "yes",
      "quote": "goose is a local AI agent, and by using a local LLM, you keep your data private, maintain full control over your environment, and can work entirely offline without relying on cloud access.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
      "notes": "Documented local providers include Ollama (`OLLAMA_HOST`), LM Studio, Docker Model Runner, Ramalama, Atomic Chat; `goose local-models` can download GGUF/MLX models in builds with local inference support.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "These variables control Claude's reasoning behavior. Supported on Anthropic and Databricks providers.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/environment-variables.md",
      "notes": "CLAUDE_THINKING_TYPE (adaptive, enabled, disabled) and GOOSE_THINKING_EFFORT environment variables control reasoning; documented in the environment variables guide.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "cost_display",
      "value": "yes",
      "quote": "The session cost is shown at the bottom of the goose window and updates dynamically as tokens are consumed. Hover over the cost to see a detailed breakdown of token usage.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/sessions/smart-context-management.md",
      "notes": "Desktop Cost Tracking toggle and CLI `GOOSE_CLI_SHOW_COST=true` show estimated cost (OpenRouter pricing data); the CLI also shows a token-usage context label (percentage, count, limit) above each prompt.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "image_input",
      "value": "yes",
      "quote": "Read a local or remote image for model inspection",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/developer-mcp.md",
      "notes": "The built-in Developer extension, enabled by default, provides read_image for local paths and remote URLs, so images can be given to the CLI out of the box. No clipboard paste is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "web_search",
      "value": "yes",
      "quote": "Search the web using DuckDuckGo (no API key), Tavily, or SearXNG, and extract page content.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-skills.md",
      "notes": "goose ships a built-in `web-search` skill that is always available without installation (DuckDuckGo needs no API key); optional Tavily/Brave/Exa MCP extensions also exist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "web_fetch",
      "value": "partial",
      "quote": "This tutorial covers how to add the [Fetch MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) as a goose extension to retrieve and process content from the web.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/fetch-mcp.md",
      "notes": "No dedicated built-in URL fetch tool; fetching is documented via the Fetch MCP extension (`uvx mcp-server-fetch`), though the built-in web-search skill can also extract page content and `read_image` accepts remote image URLs.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "ide_integration",
      "value": "partial",
      "quote": "goose for VS Code is in active development. Behavior and configuration may change in future releases.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/experimental/vs-code-extension.md",
      "notes": "The first-party goose VS Code extension is published but documented under Experimental; JetBrains is reachable only through a generic MCP extension and Zed through the ACP registry.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "Update the README.md file to say \"this was written by goose\" and commit it. Open a pull request with your changes.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/github-mcp.md",
      "notes": "Commits and PRs are done through the shell tool or the GitHub MCP extension (documented branch/commit/PR example) and `goose review` reviews diffs; there is no built-in commit or PR command.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "goose loads all saved memories at the start of a session and includes them in every prompt sent to the LLM.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/mcp/memory-mcp.md",
      "notes": "Built-in Memory extension stores memories in `.goose/memory/` or `~/.config/goose/memory/` via `remember_memory`, but writes happen when the user instructs goose (trigger words) rather than automatically; docs say goose may suggest saving.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "windows_native",
      "value": "yes",
      "quote": "We recommend running the goose CLI natively on Windows, but you can use WSL if you prefer a Linux-like environment.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/installation.md",
      "notes": "Native Windows install via Git Bash/MSYS2 script or PowerShell `download_cli.ps1`; Desktop app also ships for Windows; keyring caveat (use env vars for API keys).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "open_source",
      "value": "yes",
      "quote": "Apache License Version 2.0, January 2004",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/LICENSE",
      "notes": "Repository licensed under Apache-2.0 (LICENSE file at the repository root; README carries the Apache 2.0 badge).",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "goose",
      "capability": "free_tier",
      "value": "partial",
      "quote": "goose is a free and open source AI agent that you can start using right away, but not all supported [LLM Providers][providers] provide a free tier.",
      "evidence_url": "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
      "notes": "goose itself is free; free model access requires a third-party free tier (Groq, Google Gemini, local Ollama, etc.) or the one-time $10 Tetrate credit offer.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "mcp_client",
      "value": "no",
      "quote": "Aider works best with Claude 3.7 Sonnet, DeepSeek R1 & Chat V3, OpenAI o1, o3-mini & GPT-4o, but can connect to almost any LLM, including local models.",
      "evidence_url": "https://raw.githubusercontent.com/Aider-AI/aider/main/README.md",
      "notes": "No MCP (Model Context Protocol) support appears anywhere in the docs site pages fetched, the README, or HISTORY.md through the current main branch; aider's only external tool surface is /web scraping and /run shell commands.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "mcp_server",
      "value": "no",
      "quote": "You can script aider via the command line or python.",
      "evidence_url": "https://aider.chat/docs/scripting.html",
      "notes": "No serve/MCP-server mode is documented; the only programmatic surfaces are the --message CLI mode and an unofficial Python API.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "hooks",
      "value": "partial",
      "quote": "You can configure aider to run your test suite after each time the AI edits your code using the --test-cmd <test-command> and --auto-test switch.",
      "evidence_url": "https://aider.chat/docs/usage/lint-test.html",
      "notes": "No general hook system or named lifecycle events. User commands run only at fixed points: --lint-cmd/--auto-lint and --test-cmd/--auto-test after each edit, and --notifications-command when a response completes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "custom_commands",
      "value": "partial",
      "quote": "Load and execute /commands from a file on launch",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "No user-defined slash commands or prompt-template directory. /load and --load replay a file of slash commands (which may carry prompt text), and /save writes such a file: a command-replay macro rather than a defined command, counted as partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "skills",
      "value": "no",
      "quote": "Sometimes you want GPT to be aware of certain coding guidelines, like whether to provide type hints, which libraries or packages to prefer, etc.",
      "evidence_url": "https://aider.chat/docs/usage/conventions.html",
      "notes": "No SKILL.md or equivalent skills format; guidance is provided only via plain conventions/markdown files added to the chat with /read.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "plugins",
      "value": "no",
      "quote": "There are a number of 3rd party aider plugins for various IDE/editors.",
      "evidence_url": "https://aider.chat/docs/install/optional.html",
      "notes": "Aider has no plugin/extension format or install mechanism of its own; the docs only point to third-party editor plugins that wrap aider.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "subagents",
      "value": "no",
      "quote": "When you are in architect mode, aider sends your requests to two models:",
      "evidence_url": "https://aider.chat/docs/usage/modes.html",
      "notes": "Architect mode uses a second 'editor' model for a single request, but there is no delegation to subagents with their own context.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "project_instructions",
      "value": "partial",
      "quote": "You can also configure aider to always load your conventions file in the .aider.conf.yml config file",
      "evidence_url": "https://aider.chat/docs/usage/conventions.html",
      "notes": "No fixed-name instruction file is auto-discovered. A conventions file of any name is added with /read or --read, or loaded every session by listing it under read: in the project .aider.conf.yml, so it needs per-project configuration rather than automatic discovery.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "agents_md",
      "value": "no",
      "quote": "Specifying coding conventions",
      "evidence_url": "https://aider.chat/docs/usage/conventions.html",
      "notes": "AGENTS.md is not mentioned in any fetched doc page, README, or HISTORY.md; only user-chosen conventions files via --read/config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "permission_modes",
      "value": "partial",
      "quote": "Always say yes to every confirmation",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "Only a single on/off toggle (--yes-always / AIDER_YES_ALWAYS) plus narrow toggles like --auto-accept-architect and --suggest-shell-commands; no named approval modes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "sandbox",
      "value": "no",
      "quote": "Aider is available as 2 docker images:",
      "evidence_url": "https://aider.chat/docs/install/docker.html",
      "notes": "No sandbox feature is documented. The Docker images are an install method, not an isolation mechanism; commands run with the user privileges of the shell.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "checkpoints",
      "value": "partial",
      "quote": "Undo the last git commit if it was done by aider",
      "evidence_url": "https://aider.chat/docs/usage/commands.html",
      "notes": "Rewind relies on git commits aider makes automatically after each edit; /undo reverts the last aider commit (and /diff shows changes), no separate snapshot system.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Aider will discuss your code and answer questions about it, but never make changes.",
      "evidence_url": "https://aider.chat/docs/usage/modes.html",
      "notes": "Named 'ask' chat mode (/ask, /chat-mode ask, --chat-mode ask) never edits files; docs recommend an ask/code workflow to agree a plan first, then switch to code mode.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Always say yes to every confirmation",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "--yes-always (AIDER_YES_ALWAYS) skips all confirmations; the scripting page lists it as useful for unattended runs with --message.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "session_resume",
      "value": "partial",
      "quote": "Restore the previous chat history messages (default: False)",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "--restore-chat-history reloads the previous chat messages from .aider.chat.history.md; no session picker for selecting older sessions (though /save + /load can reconstruct a session's file set).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "headless",
      "value": "yes",
      "quote": "Specify a single message to send the LLM, process reply then exit (disables chat mode)",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "--message/-m and --message-file/-f run one instruction and exit; combine with --yes-always for scripts/CI (see scripting page).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "background_tasks",
      "value": "no",
      "quote": "Run a shell command and optionally add the output to the chat (alias: !)",
      "evidence_url": "https://aider.chat/docs/usage/commands.html",
      "notes": "/run and /test execute shell commands synchronously; no documented background execution of commands or tasks.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "parallel_agents",
      "value": "no",
      "quote": "Currently aider can only work with one repo at a time.",
      "evidence_url": "https://aider.chat/docs/faq.html",
      "notes": "No worktree integration, multi-agent runner, or documented parallel-instance workflow appears in the docs.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Switch the Main Model to a new LLM",
      "evidence_url": "https://aider.chat/docs/usage/commands.html",
      "notes": "--model on launch and /model in chat switch the main model; /weak-model and /editor-model switch the auxiliary models; /models searches available models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "Aider can connect to any LLM which is accessible via an OpenAI compatible API endpoint.",
      "evidence_url": "https://aider.chat/docs/llms/openai-compat.html",
      "notes": "Bring-your-own keys for OpenAI, Anthropic, DeepSeek, Gemini, OpenRouter, Azure, Bedrock, Vertex, etc. via --api-key/env vars; custom endpoints via OPENAI_API_BASE / --openai-api-base with openai/<model>.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "local_models",
      "value": "yes",
      "quote": "Aider can connect to local Ollama models.",
      "evidence_url": "https://aider.chat/docs/llms/ollama.html",
      "notes": "Dedicated docs for Ollama (ollama_chat/<model>, OLLAMA_API_BASE) and LM Studio (lm_studio/<model>), plus generic OpenAI-compatible local servers.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Set the reasoning_effort API parameter (default: not set)",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "--reasoning-effort and --thinking-tokens flags, plus in-chat /reasoning-effort and /think-tokens commands (0 disables thinking); see config/reasoning page.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Enhanced token usage and cost reporting. Now works when streaming too.",
      "evidence_url": "https://raw.githubusercontent.com/Aider-AI/aider/main/HISTORY.md",
      "notes": "Aider reports token usage and dollar cost per message and session (HISTORY also notes 'session cost' fixes); the /tokens command reports token usage of the current chat context.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "image_input",
      "value": "yes",
      "quote": "You can add images and URLs to the aider chat.",
      "evidence_url": "https://aider.chat/docs/usage/images-urls.html",
      "notes": "Images added via /add <image-filename>, /paste from clipboard, or image filenames on the command line, for vision-capable models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "web_search",
      "value": "no",
      "quote": "Aider can scrape the text from URLs and add it to the chat.",
      "evidence_url": "https://aider.chat/docs/usage/images-urls.html",
      "notes": "Only URL scraping (/web) is built in; no web search tool is documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Scrape a webpage, convert to markdown and send in a message",
      "evidence_url": "https://aider.chat/docs/usage/commands.html",
      "notes": "/web <url> (or pasting a URL) fetches and scrapes a page into the chat; uses httpx by default, Playwright optionally for JS-heavy sites.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "ide_integration",
      "value": "partial",
      "quote": "There are a number of 3rd party aider plugins for various IDE/editors.",
      "evidence_url": "https://aider.chat/docs/install/optional.html",
      "notes": "Official integration is the editor-agnostic --watch-files mode (AI! / AI? comments in any IDE); VS Code and NeoVim extensions are third-party.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "Whenever aider edits a file, it commits those changes with a descriptive commit message. This makes it easy to undo or review aider’s changes.",
      "evidence_url": "https://aider.chat/docs/git.html",
      "notes": "Commits are first-class (auto-commits, /commit, --commit, Conventional Commits messages, attribution); pull request creation is not documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "auto_memory",
      "value": "no",
      "quote": "Restore the previous chat history messages (default: False)",
      "evidence_url": "https://aider.chat/docs/config/options.html",
      "notes": "No agent-written persistent memory; only chat-history logs (.aider.chat.history.md, optionally restored) and user-maintained conventions files.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "windows_native",
      "value": "yes",
      "quote": "On Windows, `/run` correctly uses PowerShell or cmd.exe.",
      "evidence_url": "https://raw.githubusercontent.com/Aider-AI/aider/main/HISTORY.md",
      "notes": "Native Windows support: install page provides a PowerShell one-liner (irm https://aider.chat/install.ps1 | iex), docs use setx for env vars, and notifications use PowerShell on Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "open_source",
      "value": "yes",
      "quote": "Licensed under the Apache License, Version 2.0 (the \"License\");",
      "evidence_url": "https://raw.githubusercontent.com/Aider-AI/aider/main/LICENSE.txt",
      "notes": "Source at github.com/Aider-AI/aider under Apache-2.0 (FAQ also states 'Apache 2.0 license').",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "aider",
      "capability": "free_tier",
      "value": "partial",
      "quote": "OpenRouter offers free access to many models, with limitations on daily usage.",
      "evidence_url": "https://aider.chat/docs/llms.html",
      "notes": "Aider itself is free/open source but has no hosted service; free use depends on third-party free models via BYOK (OpenRouter free tier, Gemini free quota) or local models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Model Context Protocol servers that expose tools. See the MCP documentation.",
      "evidence_url": "https://ampcode.com/docs/cli/settings",
      "notes": "Configured via amp.mcpServers in settings.json (local command/args or remote url/headers), `amp mcp add <name> ...`, `--mcp-config` flag, remote MCP definitions stored on ampcode.com (`amp mcp remote`), and MCP servers bundled in skills via mcp.json. Both stdio and remote HTTP/SSE servers are documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "mcp_server",
      "value": "no",
      "quote": "You can add additional tools using MCP (Model Context Protocol) servers, which can be either local or remote.",
      "evidence_url": "https://ampcode.com/docs/customize/mcp",
      "notes": "The MCP docs, CLI docs, SDK page, and news only describe Amp as an MCP client; no serve/MCP-server mode for exposing Amp's tools to other clients is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "hooks",
      "value": "partial",
      "quote": "session.start fires when Amp starts a thread session, such as when the user sends the first message in a new thread or opens/switches to an existing thread.",
      "evidence_url": "https://ampcode.com/docs/customize/plugins",
      "notes": "Lifecycle events session.start, agent.start, tool.call (allow/reject/modify/synthesize), tool.result, and agent.end are available, but only by writing a TypeScript/JavaScript plugin (amp.on(...)) placed in .amp/plugins/ or ~/.config/amp/plugins/, not via plain user configuration or shell-script hooks.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "custom_commands",
      "value": "partial",
      "quote": "Project skills are saved under .agents/skills/ and can be committed with the project.",
      "evidence_url": "https://ampcode.com/docs/customize/skills",
      "notes": "Dedicated file-based custom commands were removed in January 2026 in favour of skills. Reusable prompt templates in files exist only as SKILL.md skills, which are primarily model-invoked; explicit command-palette commands require plugin code (amp.registerCommand).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "skills",
      "value": "yes",
      "quote": "Project skills are saved under .agents/skills/ and can be committed with the project.",
      "evidence_url": "https://ampcode.com/docs/customize/skills",
      "notes": "SKILL.md directories with YAML frontmatter are loaded from .agents/skills/, ~/.config/agents/skills/, ~/.agents/skills/, ~/.config/amp/skills/, Claude-compatible .claude/skills/ locations, amp.skills.path, plus hosted personal/workspace skill repositories; install with `amp skill add <source>`.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "plugins",
      "value": "yes",
      "quote": "To install a single-file plugin from a URL for all projects on your machine, run:",
      "evidence_url": "https://ampcode.com/docs/customize/plugins",
      "notes": "TypeScript/JavaScript plugins add tools, commands, event hooks, bundled skills, custom agent modes and subagents; installed with `amp plugins add <url>`, via .amp/plugins/ (project), ~/.config/amp/plugins/ (machine), or hosted personal/workspace plugin repositories with share URLs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "subagents",
      "value": "yes",
      "quote": "Amp can delegate focused work to specialist subagents. Each subagent has its own context window and access to tools like file editing and terminal commands.",
      "evidence_url": "https://ampcode.com/docs/models-and-subagents",
      "notes": "Built-in subagents (Search, Oracle, Librarian, Read Thread) run with their own context window and tools; the main agent chooses them automatically or on request, and plugins can define custom subagents exposed as tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Amp looks in AGENTS.md files for guidance on codebase structure, build/test commands, and conventions.",
      "evidence_url": "https://ampcode.com/docs/customize/agents-md",
      "notes": "AGENTS.md in cwd, parent directories and subtrees is loaded automatically; falls back to AGENT.md or CLAUDE.md if no AGENTS.md exists; also $HOME/.config/amp/AGENTS.md, $HOME/.config/AGENTS.md and system-wide /etc/ampcode/AGENTS.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "agents_md",
      "value": "yes",
      "quote": "AGENTS.md files in the current working directory (or editor workspace roots) and parent directories (up to $HOME) are always included.",
      "evidence_url": "https://ampcode.com/docs/customize/agents-md",
      "notes": "AGENTS.md is the primary, automatically loaded instruction file; subtree AGENTS.md files load when the agent reads files in that subtree.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "permission_modes",
      "value": "partial",
      "quote": "Amp does not ask for approval before running tools. Use a custom plugin to control tool use.",
      "evidence_url": "https://ampcode.com/docs/tools",
      "notes": "No built-in named approval modes; tool use is unrestricted by default and gating is only available by writing a custom policy plugin, which the rubric counts as partial (only through an add-on).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "sandbox",
      "value": "partial",
      "quote": "Orbs are remote machines where Amp agents work without using your computer.",
      "evidence_url": "https://ampcode.com/docs/orbs",
      "notes": "Isolation is provided by running the agent in a remote, metered orb (fresh isolated cloud environment), not by an OS-level sandbox for local shell commands; the Tools page instead recommends a policy plugin or an isolated development environment for untrusted sources.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "checkpoints",
      "value": "partial",
      "quote": "Edit files through your IDE, with full undo support",
      "evidence_url": "https://ampcode.com/docs/cli",
      "notes": "An undo_edit tool is listed among the built-in session tools and IDE-connected sessions have full undo support; no session-wide checkpoint or rewind command is documented, so partial.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "plan_mode",
      "value": "partial",
      "quote": "If you want the model to not write any code, but only to research and plan, say so: “Do not edit any files.”",
      "evidence_url": "https://ampcode.com/docs/prompting",
      "notes": "No named read-only/plan mode; planning is a prompt convention (tell the agent not to edit files). The Dial modes (low/medium/high/ultra) control effort, not edit permissions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "full_auto",
      "value": "yes",
      "quote": "By default, Amp does not ask for approval before running tools.",
      "evidence_url": "https://ampcode.com/docs/tools",
      "notes": "Unattended operation is the default: no approval prompts for tools or shell commands in interactive or execute (-x) mode unless a custom plugin adds them.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Run amp threads continue T-… to attach the CLI to a thread, or pick Copy → Sync CLI Command from the More Actions menu to copy the command with the thread ID filled in.",
      "evidence_url": "https://ampcode.com/docs/threads",
      "notes": "Any previous thread can be resumed by ID with amp threads continue T-… (also with -x/--stream-json); amp threads list and amp threads search find older threads, and threads open across web, CLI and mobile apps.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "headless",
      "value": "yes",
      "quote": "For non-interactive environments, such as scripts and CI/CD pipelines, set your access token in an environment variable:",
      "evidence_url": "https://ampcode.com/docs/cli/execute-mode",
      "notes": "Execute mode `amp -x \"prompt\"` (or piped stdin) runs one prompt and exits; `--stream-json` gives machine-readable output; AMP_API_KEY authenticates in CI; `-ox` runs the prompt in a remote orb.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "An agent in an orb keeps working while your laptop is closed.",
      "evidence_url": "https://ampcode.com/docs/orbs",
      "notes": "Background execution is achieved by spawning work into remote orb threads (`amp -ox`, plugin createThread) or subagents rather than backgrounding a shell command inside the current local session; the orb terminal runs in a shared tmux session for long-running commands.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Multiple threads can be started and continue to run at the same time in the same Amp CLI.",
      "evidence_url": "https://ampcode.com/docs/customize/plugins",
      "notes": "Parallel work is a supported workflow: several orb threads can run at once on the same project, subagents can split independent work in parallel, and Agent to Agent lets one thread start and await others.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "model_selection",
      "value": "yes",
      "quote": "The Dial gives you four built-in modes: low, medium, high, and ultra.",
      "evidence_url": "https://ampcode.com/docs/models-and-subagents",
      "notes": "Modes route to different models (e.g. GPT-6 Astra, Claude Fable 5.1, GPT-5.6 Sol), switched with Ctrl+S or `--mode`; the dial editor lets you pin a specific model per mode for main agent/oracle/subagents, and plugins add custom modes with their own model.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "Bring your own keys (BYOK)",
      "evidence_url": "https://ampcode.com/docs/pricing",
      "notes": "Listed as a feature on every plan on the pricing page (wording changed from \"Bring your own model provider keys\" after 2026-09-10); own provider keys are configured under Model Routing. No generic OpenAI-compatible custom endpoint setting is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "local_models",
      "value": "no",
      "quote": "Amp uses different models for different kinds of work.",
      "evidence_url": "https://ampcode.com/docs/models-and-subagents",
      "notes": "Model routing is hosted (Anthropic/OpenAI/xAI models); Ollama, LM Studio, llama.cpp, vLLM or any local endpoint are not mentioned anywhere in the docs or news.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Alt+D toggles reasoning effort for the active model where supported.",
      "evidence_url": "https://ampcode.com/docs/cli/keybindings",
      "notes": "Alt+D toggles reasoning effort in the CLI; each Dial mode also fixes a reasoning-effort level and custom modes/plugins can set their own.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Show cost information for threads in the CLI while working.",
      "evidence_url": "https://ampcode.com/docs/cli/settings",
      "notes": "amp.showCosts (default true) shows thread cost in the CLI; `amp usage` and the thread sidebar show credit balance and per-thread cost; streaming JSON includes token usage.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "image_input",
      "value": "yes",
      "quote": "In the CLI, press Ctrl+V to paste an image from the clipboard.",
      "evidence_url": "https://ampcode.com/docs/prompting",
      "notes": "Images can be pasted from the clipboard (Ctrl+V), @-mentioned by file path, or sent as base64 image blocks via --stream-json-input.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "web_search",
      "value": "yes",
      "quote": "Non-model tools such as web search also consume paid credits.",
      "evidence_url": "https://ampcode.com/docs/pricing",
      "notes": "A built-in web_search tool is listed among the session tools in the streaming JSON reference and web search is billed as a non-model tool.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "\"read_web_page\",\"Task\",\"todo_read\",\"todo_write\",\"undo_edit\",\"web_search\"",
      "evidence_url": "https://ampcode.com/docs/cli/streaming-json",
      "notes": "The streaming JSON reference lists read_web_page among the built-in session tools; no separate prose page documents it, so the tool list itself is the evidence.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Amp can connect to VS Code, Cursor, Windsurf, Zed, and Neovim.",
      "evidence_url": "https://ampcode.com/docs/cli",
      "notes": "The CLI connects to editors via the `ide connect` palette command (sees open file/selection, edits with IDE undo); Neovim needs the official Amp Neovim plugin. The former standalone VS Code/Cursor extensions were discontinued in March 2026.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "The gh CLI is preinstalled and gets its token the same way, so gh pr create and gh run view work without gh auth login.",
      "evidence_url": "https://ampcode.com/docs/github",
      "notes": "Commits carry Amp-Thread-ID and Co-authored-by trailers, projects have Ship/Push to Branch behaviors, and gh is preinstalled and authenticated in orbs for PR creation; local CLI threads use the machine's own git credentials.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "auto_memory",
      "value": "no",
      "quote": "You can create or update any AGENTS.md files manually or by asking Amp (“Update AGENTS.md based on what I told you in this thread”).",
      "evidence_url": "https://ampcode.com/docs/customize/agents-md",
      "notes": "No automatic cross-session memory is documented. Persistent context is the user-maintained AGENTS.md, which Amp updates only when asked; the same situation is scored no for Cursor CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "windows_native",
      "value": "partial",
      "quote": "The CLI supports macOS, Linux, and Windows through WSL.",
      "evidence_url": "https://ampcode.com/docs/cli",
      "notes": "Official support statement is Windows via WSL, although the settings docs list native %USERPROFILE% and %ProgramData% paths and the install widget has a Windows tab (JS-rendered, not verifiable).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "open_source",
      "value": "no",
      "quote": "\"license\":\"SEE LICENSE IN LICENSE.md\"",
      "evidence_url": "https://registry.npmjs.org/@sourcegraph/amp/latest",
      "notes": "Amp is closed source: no public source repository exists (only sourcegraph/amp-examples-and-guides for docs), and the vendor's npm package declares a custom LICENSE.md rather than an OSI license.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amp",
      "capability": "free_tier",
      "value": "partial",
      "quote": "Amp is now free to use when you bring your own compute and model subscriptions/keys.",
      "evidence_url": "https://ampcode.com/news/free-agent",
      "notes": "As of 2026-09-13 Amp is free when you bring your own compute and model keys (free Hobby tier); Amp-hosted usage is still paid (Megawatt/Gigawatt) and hosted free credits remain limited.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Qwen Code can connect to external tools and data sources through the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction).",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/mcp.md",
      "notes": "Qwen Code connects to external MCP servers configured via mcpServers / qwen mcp add and managed with /mcp.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "mcp_server",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "",
      "confidence": "low",
      "verified": false,
      "verified_at": ""
    },
    {
      "agent": "qwen-code",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks allow users to execute custom scripts or programs at specific points in the application lifecycle, such as before tool execution, after tool execution, at session start/end, and during other key events.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/hooks.md",
      "notes": "Qwen Code has a full lifecycle hooks system (PreToolUse, PostToolUse, session start/end) enabled by default.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Custom commands now use Markdown format with optional YAML frontmatter. TOML format is deprecated but still supported for backwards compatibility.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The commands doc has a dedicated Custom Commands section documenting user-defined commands in Markdown (with legacy TOML).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "skills",
      "value": "yes",
      "quote": "This guide shows you how to create, use, and manage Agent Skills in **Qwen Code**.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/skills.md",
      "notes": "Qwen Code has an Agent Skills system (SKILL.md folders, model-invoked, /skills panel, /learn).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "plugins",
      "value": "yes",
      "quote": "Qwen Code extensions package prompts, MCP servers, subagents, skills and custom commands into a familiar and user-friendly format.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/extension/introduction.md",
      "notes": "Qwen Code has an extension/plugin system with /extensions install, a marketplace, and native support for portable Agent Plugins v1 and Claude Code / Gemini CLI plugins.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "subagents",
      "value": "yes",
      "quote": "Subagents are specialized AI assistants that handle specific types of tasks within Qwen Code.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/sub-agents.md",
      "notes": "Subagents are a documented feature: specialized AI assistants with separate context and controlled tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "**QWEN.md** — instructions _you_ write once and Qwen reads every session",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/memory.md",
      "notes": "QWEN.md is a project instruction file (project root, committed to source control) loaded every session, plus global and local variants.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "agents_md",
      "value": "yes",
      "quote": "If your repository already has an `AGENTS.md` file for other AI tools, Qwen reads that too. No need to duplicate instructions.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/memory.md",
      "notes": "The live memory docs state Qwen Code reads an existing AGENTS.md file, so the value is not unknown.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Qwen Code offers five distinct permission modes that allow you to flexibly control how AI interacts with your code and system based on task complexity and risk level.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/approval-mode.md",
      "notes": "Qwen Code offers five distinct permission/approval modes (Plan, Ask Permissions/default, Auto-Edit, Auto, YOLO) cyclable with Shift+Tab.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "sandbox",
      "value": "yes",
      "quote": "This document explains how to run Qwen Code inside a sandbox to reduce risk when tools execute shell commands or modify files.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/sandbox.md",
      "notes": "Built-in sandboxing via macOS Seatbelt and Docker/Podman containers, configured with tools.sandbox.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "Revert project files to the checkpoint before a tool call ran",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The CLI ships /restore (revert files to a pre-tool-call checkpoint) and /rewind (rewind conversation to a previous turn).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Plan Mode instructs Qwen Code to create a plan by analyzing the codebase with **read-only** operations",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/approval-mode.md",
      "notes": "Plan Mode is a documented read-only analysis mode (also an exit-plan-mode tool exists).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Use YOLO sparingly**: Only for trusted automation in controlled environments",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/approval-mode.md",
      "notes": "YOLO approval mode auto-approves both file editing and shell commands for unattended/CI automation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume a previous conversation session",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "/resume (and headless --resume / --continue) restore previous conversation sessions scoped to the project.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "headless",
      "value": "yes",
      "quote": "Headless mode allows you to run Qwen Code programmatically from command line\nscripts and automation tools without any interactive UI.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/headless.md",
      "notes": "A dedicated headless mode runs qwen -p in scripts and CI/CD with structured output and exit codes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Scheduled tasks let Qwen Code re-run a prompt automatically on an interval.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/scheduled-tasks.md",
      "notes": "Scheduled tasks and /loop run prompts on a cron interval in the background; subagents also support run_in_background completion notifications.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Qwen Code can coordinate several teammates with the experimental Agent Team runtime.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/multi-agent-coordination.md",
      "notes": "Background subagents run concurrently and Arena runs several models on the same task in isolated worktrees; a /coordinate Agent Team runtime (experimental) coordinates multiple teammates.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Switch model used in current session",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The /model command switches the model in the current session, with variants for fast/vision/compaction/image models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "**Custom Provider**: manually connect a local server, proxy, or unsupported provider — supports OpenAI, Anthropic, Gemini, and other compatible endpoints.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/configuration/auth.md",
      "notes": "The auth docs expose a Custom Provider option plus many third-party providers, each connected with your own API key.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "local_models",
      "value": "yes",
      "quote": "Any third-party provider or local model (Ollama / vLLM). Switch at runtime.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md",
      "notes": "README and auth docs support local models via a custom/local server endpoint (Ollama / vLLM).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Set reasoning effort for thinking-capable models",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The /effort command sets reasoning effort (low/medium/high/xhigh/max) for thinking-capable models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Show per-model token breakdown and estimated cost",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The /stats dashboard and /stats model show token usage and estimated cost.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "image_input",
      "value": "yes",
      "quote": "Set the vision-bridge model used to transcribe images for a text-only main model",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/commands.md",
      "notes": "The CLI accepts image inputs; a vision-bridge model transcribes images for text-only main models, and terminal-images renders image parts. Multimodal Qwen models take images directly.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "web_search",
      "value": "yes",
      "quote": "Token Plan and Standard API Key also enable the built-in [`web_search` tool](../../developers/tools/web-search.md) with no extra setup.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/configuration/auth.md",
      "notes": "A built-in web_search tool is available (enabled with no extra setup on Token Plan / Standard API Key), with a dedicated tool doc.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Use `web_fetch` to fetch content from a specified URL and process it using an AI model.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/developers/tools/web-fetch.md",
      "notes": "A built-in web_fetch tool fetches URL content and processes it with a model.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "IDE Plugins (VS Code / JetBrains / Zed)",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md",
      "notes": "Official IDE plugins for VS Code, Zed, and JetBrains, each with dedicated integration docs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "Review code changes for correctness, security, performance, and code quality using `/review`.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/code-review.md",
      "notes": "The /review command reviews a pull request by number or URL and can post inline PR comments; Qwen Code can also create commits and use git worktrees.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "auto_memory",
      "value": "yes",
      "quote": "**Auto-memory** — notes Qwen writes itself based on what it learns from you",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/features/memory.md",
      "notes": "Docs document an Auto-memory mechanism that carries knowledge across sessions, controlled by memory.enableManagedAutoMemory (default true).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "windows_native",
      "value": "yes",
      "quote": "irm https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1 | iex",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md",
      "notes": "README provides a native Windows PowerShell install one-liner and a Windows desktop app; approval-mode docs even note a Windows-specific Tab keybinding.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "open_source",
      "value": "yes",
      "quote": "**Open-source, inside and out** — The framework and the Qwen models are open-source. They evolve together. No vendor lock-in.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md",
      "notes": "The repository is licensed Apache 2.0 and the README states the framework is open-source.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "qwen-code",
      "capability": "free_tier",
      "value": "no",
      "quote": "The Qwen OAuth free tier was discontinued on 2026-04-15.",
      "evidence_url": "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/users/configuration/auth.md",
      "notes": "The former Qwen OAuth free tier was explicitly discontinued on 2026-04-15 and is no longer a selectable auth option; remaining options are paid subscription or BYO API key.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "add capabilities via MCPs (`http`, `stdio`, and `sse`)",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Connects to external MCP servers over stdio, http, and sse transports, with OAuth support.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Crush also supports Model Context Protocol (MCP) servers through three transport",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Crush is an MCP client that connects to servers; no documented mode exposes Crush itself as an MCP server (crush serve uses Crush's own HTTP/SSE protocol for its TUI clients).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "hooks",
      "value": "partial",
      "quote": "Crush has preliminary support for hooks.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Lifecycle hooks exist but are explicitly described as preliminary/experimental.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Skills can be made invocable as commands from the commands palette",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "User-invocable skills act as reusable prompt commands (user:/project: prefix) invoked from the ctrl+p palette.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "skills",
      "value": "yes",
      "quote": "Crush supports the [Agent Skills](https://agentskills.io) open standard for",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Loads SKILL.md folders per the open Agent Skills standard from global and project paths.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "plugins",
      "value": "no",
      "quote": "add capabilities via MCPs (`http`, `stdio`, and `sse`)",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Extensibility is via MCP servers, Agent Skills, and (preliminary) hooks; no unified plugin package that bundles these together is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "subagents",
      "value": "yes",
      "quote": "Launch a new agent that has access to the following tools: glob, grep, ls, view.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/templates/agent_tool.md",
      "notes": "Built-in 'agent' tool (agent_tool.go, NewParallelAgentTool -> runSubAgent) delegates to a subagent that runs in its own session/context.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "When you initialize a project, Crush analyzes your codebase and creates",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Init writes a project context file (default AGENTS.md); also reads global CRUSH.md/AGENTS.md and .crushignore.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "agents_md",
      "value": "yes",
      "quote": "this file is named `AGENTS.md`",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "AGENTS.md is the default context file, and ~/.config/AGENTS.md is described as generic cross-tool instructions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "By default, Crush will ask you for permission before running tool calls.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Approval levels: default prompt, 'permissions allow' to auto-approve, 'permissions deny' to hide tools, and --yolo to skip all prompts.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "sandbox",
      "value": "no",
      "quote": "Both `crushrc` and `crush.json` are trusted code; `crushrc` runs in a full",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "No built-in OS-level filesystem/network sandbox; config runs as trusted code in a full shell and safety relies on permission prompts.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "checkpoints",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No built-in checkpoint/rewind of agent file changes is documented; not found in the README or source (checkpoint/snapshot/rewind).",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "crush",
      "capability": "plan_mode",
      "value": "no",
      "quote": "permissions deny bash sourcegraph",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "No dedicated read-only plan mode; a read-only setup can only be approximated by denying edit/write tools via permissions.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "full_auto",
      "value": "yes",
      "quote": "You can also skip all permission prompts completely by running Crush with the",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "The --yolo flag approves every action without prompting (documented for unattended use, with a caution).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Continue a previous session by ID",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/run.go",
      "notes": "crush run --session <id> resumes a specific session; --continue resumes the most recent one; the TUI also has a session picker.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "headless",
      "value": "yes",
      "quote": "Run a single prompt in non-interactive mode and exit.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/run.go",
      "notes": "crush run takes a prompt (args or stdin) non-interactively, with --quiet for scripting/CI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Execute shell commands; long-running commands automatically move to background and return a shell ID.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/bash.md.tpl",
      "notes": "Bash tool supports run_in_background and auto-backgrounding; job_output/job_kill tools manage running background shells.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "When Crush is run against a shared backend (for example two TUIs talking to",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Multiple clients can share one workspace/repo via crush serve (own sessions); the 'agent' subagent tool is a parallel-agent tool. Not a single-flag parallel workflow.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "model_selection",
      "value": "yes",
      "quote": "switch LLMs mid-session while preserving context",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Wide range of models via ctrl+l model picker and crush run --model / --small-model; switchable mid-session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "choose from a wide range of LLMs or add your own via OpenAI- or Anthropic-compatible APIs",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Paste your own API key in the picker or set env vars; custom OpenAI-compatible/Anthropic-compatible providers with custom base_url are supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "local_models",
      "value": "yes",
      "quote": "Crush can auto-discovers models from local providers.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Supports ollama, llamacpp, lmstudio, litellm, omlx local provider types with auto-discovery.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Reasoning effort for the model (e.g. low, medium, high).",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/run.go",
      "notes": "crush run --reasoning-effort sets the model's reasoning effort (levels model-dependent); models flagged --can-reason true.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Generate and display usage statistics including token usage, costs, and activity patterns",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/stats.go",
      "notes": "crush stats reports token usage and cost; per-model prices configurable and cost tracked per session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "image_input",
      "value": "yes",
      "quote": "previewingImage bool // indicates if an image is being previewed",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/ui/dialog/filepicker.go",
      "notes": "File picker registers PNG/JPEG and previews images to attach; image attachments are a first-class MimeType (attachment.go IsImage) and models can be set --supports-images true.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "web_search",
      "value": "yes",
      "quote": "Search the web via DuckDuckGo; returns titles, URLs, and snippets.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/web_search.md.tpl",
      "notes": "Built-in web_search tool backed by DuckDuckGo.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Fetch a web URL and return content as markdown; for use inside sub-agents.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/web_fetch.md.tpl",
      "notes": "Built-in web_fetch tool returns page content as markdown (large pages saved to temp for grep/view).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "ide_integration",
      "value": "no",
      "quote": "first-class support in every terminal on macOS, Linux, Windows (PowerShell and WSL), Android, FreeBSD, OpenBSD, and NetBSD",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Crush is positioned as a terminal application; no official VS Code/JetBrains/Zed extension is documented in the repo or README.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "By default, Crush adds attribution information to Git commits and pull requests",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Crush creates git commits and pull requests, with configurable attribution trailers and 'Generated with Crush' lines.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "a context file that helps it work more effectively in future sessions.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Init writes a persistent AGENTS.md context file for future sessions, but there is no continuously self-updating memory tool.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "windows_native",
      "value": "yes",
      "quote": "first-class support in every terminal on macOS, Linux, Windows (PowerShell and WSL), Android, FreeBSD, OpenBSD, and NetBSD",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Runs natively on Windows (PowerShell), also WSL; has a built-in Bash interpreter so config works cross-platform. Installs via winget/scoop.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "open_source",
      "value": "partial",
      "quote": "[FSL-1.1-MIT](https://github.com/charmbracelet/crush/raw/main/LICENSE.md)",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Source is public under FSL-1.1-MIT (Functional Source License), which converts to MIT two years after each release; FSL is not an OSI-approved license, so it is source-available rather than OSI open source today.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "crush",
      "capability": "free_tier",
      "value": "yes",
      "quote": "with a free tier, and optimized for Crush.",
      "evidence_url": "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
      "notes": "Charm's official Hyper provider has a free tier; Crush can also be used free with local models or a BYOK free provider.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "The agent will automatically have access to tools provided by enabled MCP servers.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/mcp-servers.md",
      "notes": "CLI adds HTTP/SSE/stdio MCP servers via `openhands mcp add` or ~/.openhands/mcp.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "The `openhands acp` command starts OpenHands as an ACP server",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/ide/overview.md",
      "notes": "The CLI can expose itself as an Agent Client Protocol (ACP) server for IDEs, but not as an MCP server.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Use the `/skills` command in the CLI to see loaded skills, hooks, and MCPs for the current session.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/customization/hooks.md",
      "notes": "`.openhands/hooks.json` runs scripts at PreToolUse, PostToolUse, UserPromptSubmit, Stop, SessionStart, SessionEnd; works in the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "custom_commands",
      "value": "partial",
      "quote": "Custom slash commands for plugin functionality",
      "evidence_url": "https://docs.openhands.dev/overview/plugins.md",
      "notes": "Custom slash commands are defined as files in a plugin's commands/ folder; plugins load in the CLI via --plugin.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "OpenHands supports the [Agent Skills specification](https://agentskills.io/specification) and adds optional features such as keyword triggers and path-triggered rules.",
      "evidence_url": "https://docs.openhands.dev/overview/skills.md",
      "notes": "Loads SKILL.md folders under .agents/skills/; CLI `/skills` shows loaded skills.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "openhands --plugin /path/to/plugin",
      "evidence_url": "https://docs.openhands.dev/overview/plugins.md",
      "notes": "Plugins bundle skills, hooks, MCP servers, agents, and commands; loadable in the CLI from a path or GitHub.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "subagents",
      "value": "partial",
      "quote": "Specialized agent definitions for specific tasks",
      "evidence_url": "https://docs.openhands.dev/overview/plugins.md",
      "notes": "Agents can be defined as a plugin component (agents/*.md); CLI-runtime subagent delegation is not separately documented.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "You can customize how OpenHands interacts with your repository by creating a `.openhands` directory at the root level.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/customization/repository.md",
      "notes": "Reads repository AGENTS.md plus .openhands/ config; also recognizes CLAUDE.md and GEMINI.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Use `AGENTS.md` for short, repository-wide conventions.",
      "evidence_url": "https://docs.openhands.dev/overview/skills.md",
      "notes": "AGENTS.md at repo root is included in the initial system prompt.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Use LLM-based security analyzer for action approval",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
      "notes": "Three modes: default always-ask, --always-approve, and --llm-approve; switchable in-session via /confirm.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "sandbox",
      "value": "partial",
      "quote": "Good isolation from your host machine.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/sandboxes/overview.md",
      "notes": "A built-in Docker sandbox (prebuilt agent-server image) is available; the default local/process mode runs on the host with no isolation.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "checkpoints",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No rewind/checkpoint feature for file changes is documented; the CLI offers conversation resume and trajectory save/replay only.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "plan_mode",
      "value": "no",
      "quote": "View agent plan",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
      "notes": "The command palette can view the agent's plan, but no read-only plan-first mode is documented.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Auto-approve all actions without confirmation",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
      "notes": "--always-approve (alias --yolo) approves everything; headless mode always runs in always-approve.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume a conversation. If no ID provided, lists recent conversations",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
      "notes": "--resume [ID] and --resume --last resume prior conversations.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Headless mode runs OpenHands without the interactive terminal UI, making it ideal for",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/headless.md",
      "notes": "openhands --headless -t/-f runs non-interactively; --json streams JSONL events for CI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "background_tasks",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No documented feature for running long shell commands in the background while the CLI session continues.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "parallel_agents",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "Running multiple CLI agent instances in parallel on one repo is not documented as a supported workflow.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "OpenHands can connect to any LLM supported by LiteLLM.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/llms/llms.md",
      "notes": "Model chosen via Settings (no restart), agent_settings.json, or LLM_MODEL env.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "Custom LLM base URL (requires `--override-with-envs`)",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
      "notes": "Users set their own LLM_API_KEY and LLM_BASE_URL, including OpenAI-compatible/custom endpoints.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "local_models",
      "value": "yes",
      "quote": "Connect OpenHands to local LLM servers such as LM Studio, Ollama, vLLM, and SGLang.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/llms/local-llms.md",
      "notes": "Point the CLI at a local OpenAI-compatible server via base URL; LLM_OLLAMA_BASE_URL is also supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "Reasoning effort for o-series models (`low`, `medium`, `high`)",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/environment-variables.md",
      "notes": "LLM_REASONING_EFFORT adjusts reasoning effort (model-specific, e.g. o-series).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "cost_display",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "MAX_BUDGET_PER_TASK caps spend, but no CLI display of session token cost is documented.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "image_input",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "Vision is supported at model level (LLM_DISABLE_VISION defaults false), but no CLI method to supply images is documented.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "If you're running OpenHands in headless mode or via CLI, you can configure the search API key in your configuration file",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/advanced/search-engine-setup.md",
      "notes": "Built-in web search via Tavily; requires a Tavily API key (search_api_key).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "web_fetch",
      "value": "partial",
      "quote": "Enable browsing delegate",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/environment-variables.md",
      "notes": "A browsing delegate (AGENT_ENABLE_BROWSING, off by default) can visit URLs; Tavily also offers extract/crawl.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Use OpenHands directly in your favorite code editor through the Agent Client Protocol",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/ide/overview.md",
      "notes": "Official ACP integration (openhands acp): Zed and JetBrains native, VS Code via community extension; marked experimental.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "git_pr_workflow",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "GITHUB_TOKEN enables git provider access, but no first-class CLI commit/PR-creation workflow is documented.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "auto_memory",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "Persistent cross-session memory is an SDK feature; it is not documented as a CLI capability.",
      "confidence": "medium",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "openhands-cli",
      "capability": "windows_native",
      "value": "no",
      "quote": "Native Windows is not officially supported.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/cli/quick-start.md",
      "notes": "The CLI requires WSL on Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "open_source",
      "value": "yes",
      "quote": "MIT License - see [LICENSE](LICENSE) for details.",
      "evidence_url": "https://raw.githubusercontent.com/OpenHands/OpenHands-CLI/main/README.md",
      "notes": "OpenHands CLI is released under the MIT License.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "openhands-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "Connect OpenHands to local LLM servers such as LM Studio, Ollama, vLLM, and SGLang.",
      "evidence_url": "https://docs.openhands.dev/openhands/usage/llms/local-llms.md",
      "notes": "The CLI is free/open-source (MIT) and can run against a free local model or your own API key.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "`cn` supports MCP tools, which can be configured in the [same way](/customize/deep-dives/mcp) as with the Continue IDE extensions.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/guides/cli.mdx",
      "notes": "Adds/uses external MCP servers via config or the --mcp flag and the /mcp command.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "mcp_server",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "Docs do not describe exposing cn itself as an MCP server to other clients.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "hooks",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No documented lifecycle-hook system for running user scripts around tool calls or session events.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Explain that when `invokable` is set to `true`, a slash command becomes available in the IDE extensions and CLI",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/deep-dives/prompts.mdx",
      "notes": "Markdown prompt files with invokable:true become slash commands usable in the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "skills",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No mention of SKILL.md / Agent Skills format; Continue uses rules and prompts instead.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "plugins",
      "value": "partial",
      "quote": "| `--agent <slug>` | Load an agent file by slug |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx",
      "notes": "Continue Hub agents/assistants (loaded by slug) bundle models, rules, prompts and MCP servers, but there is no Claude-Code-style plugin system.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "subagents",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "--agent loads one assistant config; no documented delegation to subagents running in their own context.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "| `/init` | Create an `AGENTS.md` file for the current project |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "Reads project-level AGENTS.md; also supports .continue/rules files.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "| `/init` | Create an `AGENTS.md` file for the current project |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "/init specifically creates an AGENTS.md file for the project.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Modes are a shorthand for common permission sets. Switch modes with `Shift+Tab` during a TUI session, or set them at launch:",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tool-permissions.mdx",
      "notes": "normal/plan/auto modes plus per-tool allow/ask/exclude levels.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "sandbox",
      "value": "no",
      "quote": "Tools that can modify your system (file writes, terminal commands) prompt for approval before executing. You get three options:",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "Safety is approval-based; no OS-level filesystem or network sandbox is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "checkpoints",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "/resume and /fork restore chat history; no documented rewind of file changes to an earlier point.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "| `--readonly` | Plan mode — read-only tools only |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx",
      "notes": "--readonly enables a read-only plan mode that excludes write tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "| `--auto` | Allow all tools without prompting |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx",
      "notes": "--auto approves every tool call without prompting for unattended runs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "| `--resume` | Resume the most recent session |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx",
      "notes": "--resume (or /resume) restores the full previous conversation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Run `cn -p \"your prompt\"` to execute a single task without an interactive session. The agent runs to completion and prints its response to stdout.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/headless-mode.mdx",
      "notes": "-p headless mode for scripts, CI/CD and git hooks; supports --format json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "| `/jobs` | List background jobs |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "Background jobs exist (also a CheckBackgroundJob read-only tool) and can be listed via /jobs.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "parallel_agents",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No documented workflow for running multiple cn instances in parallel on one repo.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "| `/model` | Switch between configured chat models |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "/model switches among configured models; --model adds models by slug.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "If you are using an OpenAI API compatible providers, you can change the `apiBase` like this:",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/model-providers/top-level/openai.mdx",
      "notes": "CLI uses the same config.yaml; supports own API keys and OpenAI-compatible/custom apiBase endpoints.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "local_models",
      "value": "yes",
      "quote": "Ollama models usually have their capabilities auto-detected correctly.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/model-providers/top-level/ollama.mdx",
      "notes": "Ollama, LM Studio, llama.cpp and vLLM providers configurable in the shared config.yaml used by cn.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "`reasoning`: Boolean to enable thinking/reasoning for Anthropic Claude 3.7+ and some Ollama models.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/reference.mdx",
      "notes": "Config-level reasoning toggle plus reasoningBudgetTokens in config.yaml (shared with the CLI); not a runtime CLI flag.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "| `/info` | Show session information, including token usage and cost |",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
      "notes": "/info shows session token usage and cost.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "image_input",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "image_input is a model/IDE upload capability; no CLI-specific image input (paste/drag/path) is documented.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "web_search",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No dedicated built-in web-search tool documented (the Search tool is codebase search).",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Read-only tools (`Read`, `List`, `Search`, `Fetch`, `Diff`, `AskQuestion`, `Checklist`, `Status`, `CheckBackgroundJob`, `ReportFailure`, `UploadArtifact`) default to `allow`.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tool-permissions.mdx",
      "notes": "Built-in Fetch tool retrieves URL content; allowed by default.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Continue is a coding agent available as a [CLI](#cli), [VS Code extension](#vs-code), and [JetBrains plugin](#jetbrains).",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/README.md",
      "notes": "Official VS Code extension and JetBrains plugin accompany the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "cn -p \"Generate a commit message\" | git commit -F -",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/headless-mode.mdx",
      "notes": "Commit-message generation is documented and there is a GitHub Actions PR-review guide, but no built-in first-class PR-creation command.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "auto_memory",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "No documented agent-maintained persistent memory across sessions (AGENTS.md/rules are user-authored).",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "continue-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "irm https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.ps1 | iex",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/snippets/cli-install.mdx",
      "notes": "Native Windows PowerShell installer plus cross-platform npm install; Windows config path documented.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "open_source",
      "value": "yes",
      "quote": "Apache 2.0 © 2023-2026 Continue Dev, Inc.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/README.md",
      "notes": "Source is available under the OSI-approved Apache 2.0 license.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "continue-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "`cn` is an open-source, modular coding agent for the command line.",
      "evidence_url": "https://raw.githubusercontent.com/continuedev/continue/main/docs/guides/cli.mdx",
      "notes": "Open-source (Apache 2.0) CLI that can run on a free local model (e.g. Ollama), so usable without paying.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Amazon Q Developer CLI supports both local MCP servers (that run as processes) and remote MCP servers (that communicate over HTTP).",
      "evidence_url": "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/qdev-mcp.md",
      "notes": "Servers are declared in the agent JSON mcpServers field or managed with q mcp add/remove/list/import/status; remote HTTP servers support OAuth.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Amazon Q Developer CLI now supports MCP, allowing you to extend Q's capabilities by connecting it to custom tools and services.",
      "evidence_url": "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/qdev-mcp.md",
      "notes": "MCP is documented only in the client direction; the q mcp subcommands are add, remove, list, import and status, with no serve mode exposing the CLI to other clients.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks allow you to execute custom commands at specific points during agent lifecycle and tool execution.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/hooks.md",
      "notes": "Triggers are agentSpawn, userPromptSubmit, preToolUse (can block a tool), postToolUse and stop, configured in the agent JSON hooks field.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Prompts are reusable templates that help you quickly access common workflows and tasks.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/cli/prompts.rs",
      "notes": "Prompts live as files in a workspace or global prompts directory, are created and edited with /prompts create and /prompts edit, and are invoked with @name or /prompts get; MCP servers can also supply prompts.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "skills",
      "value": "no",
      "quote": "The `resources` field gives an agent access to local resources.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "No SKILL.md or Agent Skills loader is documented; the nearest equivalent is agent JSON files plus file resources and .amazonq/rules markdown.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "plugins",
      "value": "no",
      "quote": "The agent configuration file for each agent is a JSON file.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "An agent file can bundle MCP servers, hooks, tools and a prompt, but there is no installable plugin or extension system or marketplace for the CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "subagents",
      "value": "partial",
      "quote": "Enables running Q chat sessions with specific agents in parallel to your main conversation.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "Delegation to background agents exists only as the experimental delegate tool, enabled with chat.enableDelegate and subject to change or removal.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "- `.amazonq/rules/**/*.md` - Any markdown files in the `.amazonq/rules/` directory and subdirectories",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/default-agent-behavior.md",
      "notes": "The built-in default agent auto-loads AmazonQ.md, README.md and .amazonq/rules markdown from the project; the resources field can add more files.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "agents_md",
      "value": "no",
      "quote": "- `AmazonQ.md` - Amazon Q documentation or notes",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/default-agent-behavior.md",
      "notes": "The default context files are AmazonQ.md, README.md and .amazonq/rules markdown; AGENTS.md is not read unless a user adds it manually to an agent resources list.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "If a tool is not in the `allowedTools` list, the user will be prompted for permission when the tool is used unless an allowed `toolSettings` configuration is set.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
      "notes": "Levels range from prompt-per-use to per-tool allow lists, allowed and denied command or path lists, autoAllowReadonly, denyByDefault, and --trust-all-tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "sandbox",
      "value": "no",
      "quote": "`execute_bash`, `fs_write`, and `use_aws` prompt for permission by default, but can be configured to allow specific commands/paths/services",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
      "notes": "Safety comes from approval prompts and allow or deny lists; no OS-level filesystem or network isolation of shell commands is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "checkpoints",
      "value": "partial",
      "quote": "Enables session-scoped checkpoints for tracking file changes using Git CLI commands",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "Checkpointing is an experimental feature toggled with /experiment; it snapshots into a shadow bare git repo so the user's own commits are not required, and /checkpoint restore rewinds files and conversation.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "plan_mode",
      "value": "no",
      "quote": "- Q will automatically make TODO lists when appropriate or when asked",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "No read-only planning mode is documented; the closest features are the experimental todo_list tool and restricting the agent to read-only tools via permissions.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Allows the model to use any tool to run commands without asking for confirmation.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/mod.rs",
      "notes": "This is the -a / --trust-all-tools flag on q chat, which can be combined with --no-interactive for unattended runs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resumes the previous conversation from this directory.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/mod.rs",
      "notes": "q chat --resume continues the last conversation in the current directory; /save and /load also persist conversations to a file.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Whether the command should run without expecting user input",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/mod.rs",
      "notes": "This is the --no-interactive flag (alias --non-interactive); the prompt is taken as an argument or from stdin and the process exits when done.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "- Run tasks in the background while continuing your main conversation",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "Only via the experimental delegate tool, which backgrounds whole agent tasks; no documented way to background an individual long-running shell command.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "- Only one task can run per agent at a time",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "Parallel agent runs are documented only for the experimental delegate feature and are capped at one task per agent; no worktree or multi-instance workflow is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can see available models by using the `/model` command in an active chat session.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "A model can also be pinned per agent via the model field or per session with q chat --model.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "byok_providers",
      "value": "no",
      "quote": "The model ID must match one of the available models returned by the Q CLI's model service.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "Models are served by the Amazon Q service after signing in with a Builder ID or IAM Identity Center; no third-party API key or custom OpenAI-compatible endpoint is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "local_models",
      "value": "no",
      "quote": "The model ID must match one of the available models returned by the Q CLI's model service.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "Responses always come from the Amazon Q service; no Ollama, LM Studio, llama.cpp or vLLM backend is documented. Local models are used only for knowledge-base embeddings.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "thinking_control",
      "value": "partial",
      "quote": "Enables complex reasoning with step-by-step thought processes",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
      "notes": "Thinking is an experimental on/off toggle for an internal reasoning tool via /experiment; there are no graded reasoning-effort levels.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "cost_display",
      "value": "partial",
      "quote": "Show current session's context window usage",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/cli/mod.rs",
      "notes": "/usage breaks down token consumption of the context window, and an experiment shows context percentage in the prompt, but no monetary cost is displayed; billing is by Free or Pro tier request limits.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Tool for reading files, directories, and images.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
      "notes": "The fs_read tool reads images from a path, and the /paste slash command pastes an image from the clipboard into the conversation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "web_search",
      "value": "no",
      "quote": "Amazon Q CLI includes several built-in tools that agents can use.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
      "notes": "The complete built-in tool list is execute_bash, fs_read, fs_write, introspect, report_issue, knowledge, thinking, todo_list and use_aws; none performs web search, so it would require an MCP server.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "web_fetch",
      "value": "no",
      "quote": "The `mcpServers` field specifies which Model Context Protocol (MCP) servers the agent has access to.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
      "notes": "There is no built-in URL fetch tool; the docs show URL fetching as an external MCP server named fetch that the user configures.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "ide_integration",
      "value": "no",
      "quote": "On April 30, 2027, AWS will discontinue support for Amazon Q Developer IDE plugins.",
      "evidence_url": "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-developer-ide-end-of-support.md",
      "notes": "The Amazon Q Developer IDE plugins are a separate interface from the command line, not an extension that runs this CLI, and they are slated for end of support.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "git_pr_workflow",
      "value": "no",
      "quote": "\"allowedCommands\": [\"git status\", \"git fetch\"],",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
      "notes": "Git is reached only through the generic execute_bash tool; no built-in commit or pull-request workflow is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "The /knowledge command provides persistent knowledge base functionality for Amazon Q CLI, allowing you to store, search, and manage contextual information that persists across chat sessions.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/knowledge-management.md",
      "notes": "The knowledge base is a beta feature disabled by default; the agent has a knowledge tool that can write to it, but there is no memory file the agent maintains automatically.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "windows_native",
      "value": "partial",
      "quote": "Run a command on Windows using cmd.exe.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/tools/execute/windows.rs",
      "notes": "Windows code paths exist for shell execution, but the README offers installers only for macOS and Linux and the Windows CI jobs are commented out, so Windows use means building from source.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "open_source",
      "value": "yes",
      "quote": "This repo is dual licensed under MIT and Apache 2.0 licenses.",
      "evidence_url": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/README.md",
      "notes": "Both licenses are OSI-approved, but the README states the project is no longer actively maintained and receives only critical security fixes, with users pointed to the closed-source Kiro CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "amazon-q-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "Amazon Q Developer offers a perpetual Free tier with monthly limits.",
      "evidence_url": "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-tiers.md",
      "notes": "The tiers table lists the command line as available at the Free tier when signing in with a personal account (Builder ID); monthly request limits apply.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "MCP servers enable Auggie to interact with external tools and services through a standardized protocol, such as accessing databases, running browser automation, sending messages to Slack, or integrating with APIs.",
      "evidence_url": "https://docs.augmentcode.com/cli/integrations.md",
      "notes": "Servers are configured in settings.json or via auggie mcp add, with stdio, SSE and HTTP transports.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "mcp_server",
      "value": "yes",
      "quote": "Run Auggie as an MCP server to expose the codebase-retrieval tool to external AI tools like Claude Code, Cursor, and others.",
      "evidence_url": "https://docs.augmentcode.com/cli/reference.md",
      "notes": "The --mcp flag exposes the codebase-retrieval tool; --mcp-auto-workspace allows multiple workspaces.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks allow you to intercept tool execution at specific lifecycle events and run custom scripts.",
      "evidence_url": "https://docs.augmentcode.com/cli/hooks.md",
      "notes": "Documented events include PreToolUse, PostToolUse, SessionStart, SessionEnd and Stop, configured in settings.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Custom slash commands let you create reusable prompts stored as Markdown files that Auggie can run.",
      "evidence_url": "https://docs.augmentcode.com/cli/custom-commands.md",
      "notes": "Read from .augment/commands/, .claude/commands/ and .agents/commands/; also runnable as auggie command <name>.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "skills",
      "value": "yes",
      "quote": "Skills provide a standardized way to give Auggie specialized domain knowledge and capabilities.",
      "evidence_url": "https://docs.augmentcode.com/cli/skills.md",
      "notes": "SKILL.md folders per the agentskills.io spec, loaded from .augment/skills/, .claude/skills/ and .agents/skills/.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "plugins",
      "value": "yes",
      "quote": "Auggie supports a plugin system that allows you to extend its functionality with custom commands, subagents, rules, hooks, skills, and MCP server integrations.",
      "evidence_url": "https://docs.augmentcode.com/cli/plugins.md",
      "notes": "Plugins are distributed through GitHub-hosted marketplaces; docs note plugin commands require the feature enabled for your account.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "subagents",
      "value": "yes",
      "quote": "Subagents have their own context window independent from the main agent",
      "evidence_url": "https://docs.augmentcode.com/cli/subagents.md",
      "notes": "Configured as markdown files in ~/.augment/agents/ or ./.augment/agents/ with per-agent model and tool allow/deny lists.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Auggie automatically loads custom rules and guidelines from several file locations to provide context-aware assistance.",
      "evidence_url": "https://docs.augmentcode.com/cli/rules.md",
      "notes": "Supports CLAUDE.md, AGENTS.md, .augment-guidelines and .augment/rules/ folders, plus a --rules flag.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "agents_md",
      "value": "yes",
      "quote": "When you work on a file, Augment looks for `AGENTS.md` and `CLAUDE.md` in the file's directory",
      "evidence_url": "https://docs.augmentcode.com/cli/rules.md",
      "notes": "AGENTS.md is listed in the rules precedence order and is also discovered hierarchically in subdirectories.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Auggie CLIs tool permission system provides fine-grained control over what actions the agent can perform in your environment.",
      "evidence_url": "https://docs.augmentcode.com/cli/permissions.md",
      "notes": "Per-tool rules of type allow, deny, webhook-policy or script-policy; the reference also cites an ask-user behavior, plus an --ask read-only mode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "sandbox",
      "value": "no",
      "quote": "This security layer ensures that Auggie only executes approved operations, protecting your codebase and system from unintended changes.",
      "evidence_url": "https://docs.augmentcode.com/cli/permissions.md",
      "notes": "Protection is rule-based permissions, not OS-level filesystem or network isolation; the vendor's separate Cosmos cloud product runs sessions in a remote sandbox.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "checkpoints",
      "value": "no",
      "quote": "View file changes made in the current session",
      "evidence_url": "https://docs.augmentcode.com/cli/interactive.md",
      "notes": "The /diffs command views session changes; no rewind, restore or checkpoint feature appears anywhere in the CLI docs or changelog.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Toggle Plan Mode or open the latest plan file",
      "evidence_url": "https://docs.augmentcode.com/cli/interactive.md",
      "notes": "The /plan command toggles Plan Mode; a separate --ask mode limits the agent to retrieval and non-editing tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "full_auto",
      "value": "partial",
      "quote": "This mode exits immediately without prompting for additional input.",
      "evidence_url": "https://docs.augmentcode.com/cli/overview.md",
      "notes": "Print mode is the documented unattended path; there is no documented blanket approve-everything flag for interactive mode, so permission rules must be set instead.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume the most recent conversation",
      "evidence_url": "https://docs.augmentcode.com/cli/reference.md",
      "notes": "--continue resumes the latest session, --resume picks one by ID, and auggie session list/delete/share manage saved sessions.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "headless",
      "value": "yes",
      "quote": "Auggie runs as a subprocess, so it can be used in any shell script.",
      "evidence_url": "https://docs.augmentcode.com/cli/automation/overview.md",
      "notes": "--print runs one instruction and exits, with --quiet, --compact, --output-format json and --max-turns; docs note non-interactive mode may be disabled under some enterprise agreements.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Background processes launched via shell tools and launch-process are now tracked in /bash viewer and automatically cleaned up on exit",
      "evidence_url": "https://raw.githubusercontent.com/augmentcode/auggie/main/CHANGELOG.md",
      "notes": "The interactive /bash command manages running shell processes started by the agent.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Subagents run in parallel with other subagents",
      "evidence_url": "https://docs.augmentcode.com/cli/subagents.md",
      "notes": "Parallel subagents inside one session are documented; running multiple separate Auggie instances on one repository is not documented as a workflow.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "model_selection",
      "value": "yes",
      "quote": "In Auggie CLI, use the `/model` slash command or pass the `--model` flag with the desired model.",
      "evidence_url": "https://docs.augmentcode.com/models/available-models.md",
      "notes": "auggie models list shows the available Claude, Gemini, GPT, Grok, GLM, Kimi and Prism options; availability depends on subscription and org settings.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "byok_providers",
      "value": "no",
      "quote": "Augment uses world-class large language models together with our Context Engine.",
      "evidence_url": "https://docs.augmentcode.com/models/available-models.md",
      "notes": "Models are served through Augment's own service with an Augment session token; no documented way to supply a third-party API key or custom OpenAI-compatible endpoint.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "local_models",
      "value": "no",
      "quote": "After installing, you'll have to log in to your Augment account.",
      "evidence_url": "https://docs.augmentcode.com/cli/overview.md",
      "notes": "Only Augment-hosted models are listed; no documented support for Ollama, LM Studio, llama.cpp or vLLM backends.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "thinking_control",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "Docs mention model effort levels in auggie models list --full-info metadata and thinking summaries in output, but no user-facing control to set reasoning effort.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "auggie",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Add `--show-credits` to print-mode runs when you want automation logs to capture the credit usage summary for that run.",
      "evidence_url": "https://docs.augmentcode.com/cli/automation/overview.md",
      "notes": "Usage is reported in credits; /stats shows session statistics including credits, and billing itself is token-based.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "image_input",
      "value": "yes",
      "quote": "Attach one or more images to the initial prompt",
      "evidence_url": "https://docs.augmentcode.com/cli/reference.md",
      "notes": "The --image flag attaches files at launch and the /image [path] slash command attaches one to the next message.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "web_search",
      "value": "yes",
      "quote": "`web-search` - Search the web",
      "evidence_url": "https://docs.augmentcode.com/cli/subagents.md",
      "notes": "web-search is a built-in tool that can be permission-gated or removed with --remove-tool.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "`web-fetch` - Fetch web content",
      "evidence_url": "https://docs.augmentcode.com/cli/subagents.md",
      "notes": "web-fetch is a built-in tool listed in the permissions reference as fetching web page content.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Auggie is a fully compatible Agent Client Protocol (ACP) agent enabling you to bring the power of Augment to any compatible client.",
      "evidence_url": "https://docs.augmentcode.com/cli/acp/agent.md",
      "notes": "auggie --acp runs the CLI agent inside ACP clients such as Zed, Neovim and Emacs; the vendor also ships separate VS Code and JetBrains extensions, and docs note not all interactive features work in ACP mode.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "Auggie can utilize external integrations through native integrations like GitHub, Linear, and Notion and Model Context Protocol (MCP) to access external systems for information and integrate tools to take actions.",
      "evidence_url": "https://docs.augmentcode.com/cli/integrations.md",
      "notes": "A github-api tool, a --github-api-token flag and official review-pr/describe-pr GitHub Actions are documented, but commit and PR creation are not spelled out as first-class CLI workflows.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "auto_memory",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "CLI docs describe user-authored rules and skills, not agent-written memory; the changelog mentions memories being preserved across sessions and the separate Cosmos cloud product documents a Memory feature.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "auggie",
      "capability": "windows_native",
      "value": "partial",
      "quote": "Configuration changes made through the Configuration Wizard are saved to `~/.augment/settings.json` on macOS and Linux, and `C:\\Users\\<username>\\.augment\\settings.json` on Windows.",
      "evidence_url": "https://docs.augmentcode.com/cli/config.md",
      "notes": "PowerShell is a selectable shell, hooks accept .ps1/.cmd/.bat and Windows settings/log paths are documented, but the install page lists platforms as MacOS, Windows WSL, Linux.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "open_source",
      "value": "no",
      "quote": "Redistribution of the CLI, in part or in whole, is prohibited without prior written permission from Augment.",
      "evidence_url": "https://raw.githubusercontent.com/augmentcode/auggie/main/LICENSE.md",
      "notes": "The repo carries a custom proprietary license; it hosts docs, examples and issues rather than the CLI source.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "auggie",
      "capability": "free_tier",
      "value": "no",
      "quote": "Use of the CLI requires an active subscription.",
      "evidence_url": "https://raw.githubusercontent.com/augmentcode/auggie/main/LICENSE.md",
      "notes": "Pricing docs describe a $100/month Business plan plus pay-as-you-go top-ups and Enterprise; no free plan or free quota is documented on these pages.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Model Context Protocol (MCP) servers extend Droid's capabilities with extra tools and context.",
      "evidence_url": "https://docs.factory.ai/harness/mcp.md",
      "notes": "Supports stdio, streamable HTTP and legacy SSE transports, managed with droid mcp add or the /mcp manager.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "mcp_server",
      "value": "no",
      "quote": "The TypeScript SDK can start Droid as a Node.js subprocess or connect to an existing daemon.",
      "evidence_url": "https://docs.factory.ai/sdk/typescript.md",
      "notes": "Docs describe Droid only as an MCP client; embedding Droid in other apps is documented via the SDK, daemon and ACP, not an MCP server mode.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "hooks",
      "value": "yes",
      "quote": "Run deterministic shell commands at Droid lifecycle events for validation, policy, context injection, and automation.",
      "evidence_url": "https://docs.factory.ai/harness/hooks.md",
      "notes": "Events include PreToolUse, PostToolUse, UserPromptSubmit, SessionStart and SessionEnd, configured in hooks.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Droid scans `.factory/commands` folders and turns each registered file into a command.",
      "evidence_url": "https://docs.factory.ai/harness/custom-slash-commands.md",
      "notes": "Markdown prompt files or executable scripts in .factory/commands become /slash commands; can import existing .claude/commands files.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "skills",
      "value": "yes",
      "quote": "Create reusable SKILL.md workflows that Droid can discover, invoke, and share across projects.",
      "evidence_url": "https://docs.factory.ai/harness/skills.md",
      "notes": "Skill folders with a SKILL.md entry point and name/description frontmatter, managed with /skills.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "plugins",
      "value": "yes",
      "quote": "Use and build shareable Droid packages for skills, commands, droids, output styles, hooks, and MCP servers.",
      "evidence_url": "https://docs.factory.ai/harness/plugins.md",
      "notes": "droid plugin install and /plugins with marketplaces; Claude Code plugin layouts are translated on install.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "subagents",
      "value": "yes",
      "quote": "Define specialized subagents with their own system prompt, model, and tool policy that Droid delegates focused tasks to in a fresh context window.",
      "evidence_url": "https://docs.factory.ai/harness/subagents.md",
      "notes": "Called custom droids; invoked through the Task tool, with built-in worker and explorer droids.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Give Droid durable project instructions, commands, and guardrails with AGENTS.md.",
      "evidence_url": "https://docs.factory.ai/harness/agents-md.md",
      "notes": "Root and nested project files, plus personal files under ~/.factory/.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Use `AGENTS.md` for new guidance. Droid also reads compatible filenames so existing instruction files from other coding tools keep working.",
      "evidence_url": "https://docs.factory.ai/harness/agents-md.md",
      "notes": "AGENTS.md is the recommended filename; CLAUDE.md and case variants are read for compatibility.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Choose Off, Low, Medium, or High to control what Droid can do without repeated confirmations.",
      "evidence_url": "https://docs.factory.ai/autonomy-and-safety/auto-run.md",
      "notes": "Autonomy levels set per session with Ctrl+L or --auto, plus command allowlist/denylist/blocklist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "sandbox",
      "value": "yes",
      "quote": "All shell commands initiated by Droid run in a separate process that is limited to the filesystem and network boundaries configured by users and enforced at the OS kernel level.",
      "evidence_url": "https://docs.factory.ai/autonomy-and-safety/sandbox.md",
      "notes": "Seatbelt on macOS, bubblewrap plus seccomp on Linux/WSL2, and a filtering proxy for network; enabled via sandbox.enabled.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "Second press clears the input draft; a third Escape opens the rewind menu",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "The /rewind-conversation slash command is documented as undoing recent changes in the session; release notes describe it restoring files to an earlier point.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "During Spec Mode, Droid should not edit files, change configuration, make commits, start services, or write to external systems.",
      "evidence_url": "https://docs.factory.ai/autonomy-and-safety/specification-mode.md",
      "notes": "Spec Mode entered with Shift+Tab or --use-spec; plan is approved before implementation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Skip all permission prompts (use with extreme caution)",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "--skip-permissions-unsafe; docs restrict it to isolated containers, and blocklisted commands still never run.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Resume a session (defaults to last modified). Alias: `-r`",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "droid --resume, droid exec -s <id>, --fork, and the /sessions picker.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "headless",
      "value": "yes",
      "quote": "Droid Exec is Factory's headless execution mode designed for automation workflows.",
      "evidence_url": "https://docs.factory.ai/droid-exec/overview.md",
      "notes": "droid exec takes a prompt, file or stdin and exits; supports text, json and stream-json output for CI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Added support for running and managing background processes in the CLI.",
      "evidence_url": "https://docs.factory.ai/changelog/release-notes.md",
      "notes": "Background shell processes are tracked and can be listed or killed; subagent Tasks also accept run_in_background with TaskOutput and TaskStop.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Use `-w, --worktree [name]` to run a session inside a native [git worktree](https://git-scm.com/docs/git-worktree) so you can work on multiple branches of the same repository in parallel without file conflicts.",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "The CLI reference documents a 'Parallel sessions on one repo' workflow running several droid or droid exec sessions in separate worktrees.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Switch between AI models mid-session.",
      "evidence_url": "https://docs.factory.ai/droid-cli/quickstart.md",
      "notes": "/model, Ctrl+N, or -m/--model with IDs from the Anthropic, OpenAI, Google and xAI catalog.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "The Droid CLI supports custom model configurations through BYOK (Bring Your Own Key).",
      "evidence_url": "https://docs.factory.ai/model-independence/byok.md",
      "notes": "customModels entries take a baseUrl and apiKey with anthropic, openai or generic OpenAI-compatible providers.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "local_models",
      "value": "yes",
      "quote": "Run models on your own hardware with an OpenAI-compatible server, then point `baseUrl` at it:",
      "evidence_url": "https://docs.factory.ai/model-independence/byok.md",
      "notes": "Ollama and LM Studio endpoints are documented; vLLM is listed under the generic chat-completions provider.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "`reasoningEffort` adjusts how much structured thinking the model performs before replying.",
      "evidence_url": "https://docs.factory.ai/droid-cli/settings.md",
      "notes": "Also exposed as --reasoning-effort and by cycling levels with Tab in the REPL; available levels are model-dependent.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Use the `/cost` command in the Droid CLI to view cost breakdowns",
      "evidence_url": "https://docs.factory.ai/model-independence/byok.md",
      "notes": "/cost and /stats show usage statistics; /limits manages rate limits and overage.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "image_input",
      "value": "yes",
      "quote": "Paste an image from the clipboard as an attachment",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "Ctrl+V pastes clipboard images; release notes also document dropping multiple images into the CLI at once.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "web_search",
      "value": "yes",
      "quote": "Set `true` to remove built-in Web Search from the CLI.",
      "evidence_url": "https://docs.factory.ai/droid-cli/settings.md",
      "notes": "WebSearch is a built-in tool; the org-only webSearchDisabled setting can remove it.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Common tool matchers include `Execute`, `Read`, `Edit`, `Create`, `ApplyPatch`, `LS`, `Glob`, `Grep`, `Task`, `FetchUrl`, and `WebSearch`.",
      "evidence_url": "https://docs.factory.ai/harness/hooks.md",
      "notes": "FetchUrl is a built-in tool, also listed in the subagent 'web' tool category alongside WebSearch.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Droid works in any editor with an integrated terminal.",
      "evidence_url": "https://docs.factory.ai/ide-integrations.md",
      "notes": "Official VS Code-family extension plus ACP-based JetBrains and Zed integrations; /ide manages the connection.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "Droid makes Git operations conversational and intelligent:",
      "evidence_url": "https://docs.factory.ai/droid-cli/quickstart.md",
      "notes": "Commit creation and pushing are documented workflows, but PR creation is not a documented CLI feature; PR review and descriptions ship as a separate GitHub Action.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "auto_memory",
      "value": "no",
      "quote": "`AGENTS.md` gives Droid the project briefing it should carry into every session: how to install, run, test, edit, verify, and stay inside your repository's boundaries.",
      "evidence_url": "https://docs.factory.ai/harness/agents-md.md",
      "notes": "Cross-session context comes from user-authored AGENTS.md and skills; no documented feature where the agent writes and maintains its own memory.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "windows_native",
      "value": "yes",
      "quote": "`<binary>`: `droid` on Linux and macOS, or `droid.exe` on Windows",
      "evidence_url": "https://docs.factory.ai/droid-cli/cli-reference.md",
      "notes": "PowerShell installer and PowerShell/CMD auth instructions are documented; the OS sandbox on Windows is documented only for WSL2.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "open_source",
      "value": "no",
      "quote": "Copyright © 2025-2026 Factory AI. All rights reserved.",
      "evidence_url": "https://raw.githubusercontent.com/Factory-AI/factory/main/README.md",
      "notes": "The public Factory-AI/factory repo holds only docs and issues; the npm package droid is published as UNLICENSED. The SDKs are separately open source.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "factory-droid",
      "capability": "free_tier",
      "value": "no",
      "quote": "Individual plans are for developers who own their own Factory subscription.",
      "evidence_url": "https://docs.factory.ai/pricing/individuals.md",
      "notes": "Documented individual tiers are Pro $20/mo, Plus $100/mo and Max $200/mo; no free plan is listed, and BYOK allowances apply on paid plans.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "mcp_client",
      "value": "no",
      "quote": "You can extend Plandex with custom models, providers, and model packs using a JSON file.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/custom-models.md",
      "notes": "The docs and full CLI reference contain no mention of MCP; the documented extension surface is models, providers and model packs only.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "mcp_server",
      "value": "no",
      "quote": "All Plandex CLI commands and their options.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/cli-reference.md",
      "notes": "The complete command reference lists no serve or MCP-server command, and MCP appears nowhere in the repo or docs.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "hooks",
      "value": "no",
      "quote": "Plandex provides a flexible configuration system that lets you customize its behavior based on the task you're working on and your preferences.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/configuration.md",
      "notes": "Configuration covers autonomy, execution and git settings; no user scripts can be attached to lifecycle events.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "custom_commands",
      "value": "partial",
      "quote": "- `\\run` or `\\r` plus a relative file path for using a file as a prompt",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/repl.md",
      "notes": "Prompt files can be stored and invoked explicitly with \\run or tell --file, but there is no way to register named custom slash commands.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "skills",
      "value": "no",
      "quote": "Context in Plandex refers to files, directories, URLs, images, notes, or piped in data that the LLM uses to understand and work on your project.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "No SKILL.md format or equivalent modular skill package; reusable guidance is loaded as ordinary context or notes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "plugins",
      "value": "no",
      "quote": "You can extend Plandex with custom models, providers, and model packs using a JSON file.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/custom-models.md",
      "notes": "Extensibility is limited to model/provider/model-pack JSON; there is no plugin or extension bundle system.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "subagents",
      "value": "partial",
      "quote": "Plandex has multiple **roles** that are used for different aspects of its functionality.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/roles.md",
      "notes": "Built-in fixed roles (planner, architect, coder, builder, summarizer) each run their own model calls, but users cannot define their own subagents.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "project_instructions",
      "value": "no",
      "quote": "Notes can be useful as 'sticky' explanations or instructions that will tend to have more prominence throughout a long conversation than normal prompts.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "Standing instructions are loaded manually as notes; no auto-read project instruction file is documented (the .plandex directory holds light project config only).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "agents_md",
      "value": "no",
      "quote": "Context in Plandex refers to files, directories, URLs, images, notes, or piped in data that the LLM uses to understand and work on your project.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "AGENTS.md is not mentioned anywhere in the docs or repo; context is whatever the user or auto-context loads.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Plandex v2 offers multiple levels of autonomy with pre-set config.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/autonomy.md",
      "notes": "Five levels (none, basic, plus, semi, full) control approval for context, apply, command execution and debugging.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "sandbox",
      "value": "no",
      "quote": "It can make many changes quickly without any prompting or review, and can run commands that could potentially be destructive to your system.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/autonomy.md",
      "notes": "Plandex's \"sandbox\" is a pending-diff review buffer for file changes, not OS-level filesystem or network isolation for shell commands.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "checkpoints",
      "value": "yes",
      "quote": "The `plandex apply` action can also be undone with `plandex rewind`.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/version-control.md",
      "notes": "Plandex keeps its own plan history; rewind reverts project files by default since v2.0.0, independent of the user's git commits.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "If you want to ask Plandex questions or chat without generating files or making changes, use the `plandex chat` command instead of `plandex tell`.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/prompts.md",
      "notes": "Chat mode (\\chat in the REPL) explores and discusses without creating or updating files before switching to tell mode for implementation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "full_auto",
      "value": "yes",
      "quote": "`--full`: Start the plan with auto-mode 'Full-Auto' (auto-apply, auto-exec, auto-debug).",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/cli-reference.md",
      "notes": "Full autonomy auto-applies changes, auto-executes commands and auto-debugs failures without prompting.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "session_resume",
      "value": "yes",
      "quote": "If you don't have a current plan in the directory, the REPL will create a new one.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/repl.md",
      "notes": "Plans persist per directory with their full conversation; the REPL reuses the current plan and plandex continue resumes it.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "headless",
      "value": "partial",
      "quote": "**CLI interface** for scripting or piping data into context.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/README.md",
      "notes": "Commands are scriptable and prompts can be piped or passed via --file, but no dedicated non-interactive/CI mode is documented and tell opens a stream TUI unless backgrounded with --bg.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "To run a task in the background, use the `--bg` flag with `plandex tell` or `plandex continue`.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/background-tasks.md",
      "notes": "This backgrounds the agent task (managed with ps/connect/stop), not arbitrary shell commands, and the docs state it is disabled at the default v2 autonomy level.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "parallel_agents",
      "value": "partial",
      "quote": "Plandex allows you to run tasks in the background, helping you work on multiple tasks in parallel.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/background-tasks.md",
      "notes": "Parallel work is via background tasks and plan branches; the docs note backgrounding is disabled by default in v2 because it conflicts with automatic context loading.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can see the current plan's models with the `models` command and change them with the `set-model` command.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/model-settings.md",
      "notes": "Models are chosen per role or via built-in packs (daily, strong, cheap, oss, reasoning, planner-specific packs).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "If you instead use **BYO API Key Mode** with Plandex Cloud, or if you self-host Plandex, you'll need to set API keys (or other credentials) for the providers you want to use.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/model-providers.md",
      "notes": "Built-in providers include OpenRouter, OpenAI, Anthropic, Google, Azure, Bedrock, DeepSeek and Perplexity; custom providers accept any OpenAI-compatible baseUrl.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "local_models",
      "value": "yes",
      "quote": "Plandex works with [Ollama](https://ollama.com/) models.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/ollama.md",
      "notes": "Requires self-hosting (not supported on Plandex Cloud); built-in ollama, ollama-daily and ollama-oss packs exist, and the docs caution small local models may struggle on heavy roles.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "thinking_control",
      "value": "partial",
      "quote": "`--reasoning`: Start the plan with the reasoning model pack.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/cli-reference.md",
      "notes": "Reasoning is adjusted by picking a model variant (o3/o4-mini high, medium or low; Claude thinking models) or the reasoning pack; no per-request effort toggle is documented in model settings.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "cost_display",
      "value": "partial",
      "quote": "Show Plandex Cloud current balance and usage report.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/cli-reference.md",
      "notes": "The usage command requires Plandex Cloud Integrated Models mode, which is winding down and not accepting new users; no cost display is documented for self-hosted or BYO-key use.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "image_input",
      "value": "yes",
      "quote": "Plandex can load images into context.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "Loaded by file path with plandex load; png, jpeg, non-animated gif and webp are supported on models that accept images.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "web_search",
      "value": "no",
      "quote": "Plandex can load the text content of URLs, which can be useful for adding relevant documentation, blog posts, discussions, and the like.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "The documented way to bring in outside information is loading a specific URL; no built-in web search tool is documented (a Perplexity planner pack is only a model choice).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "web_fetch",
      "value": "partial",
      "quote": "Another use for manual context loading is for context types that can't be loaded automatically, like URLs, notes, or piped data (for now Plandex can only automatically load project files and images within the project).",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
      "notes": "plandex load <url> fetches a URL's text into context, but the docs state the agent itself cannot load URLs automatically.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "ide_integration",
      "value": "no",
      "quote": "Plandex is a terminal-based AI development tool that can **plan and execute** large coding tasks that span many steps and touch dozens of files.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/README.md",
      "notes": "No official VS Code or JetBrains extension is documented; the only UI beyond the terminal is a local browser diff viewer (plandex diff --ui).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "**Git integration** with commit message generation and optional automatic commits.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/README.md",
      "notes": "Commit creation with generated messages is first-class (auto-commit config, --commit/--skip-commit flags), but pull request creation is not documented anywhere.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "Summaries are also used by the model as a form of working memory to keep track of the state of the plan—what's been implemented and what remains to be done.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/conversations.md",
      "notes": "Plandex writes and stores conversation summaries automatically, and these persist with the plan across terminal sessions, but there is no cross-project memory file the agent maintains.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "windows_native",
      "value": "no",
      "quote": "It doesn't work in the Windows CMD prompt or PowerShell.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/install.md",
      "notes": "Windows support is via WSL only; the same statement appears in the README install section.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "open_source",
      "value": "yes",
      "quote": "Plandex is open source and uses a client-server architecture.",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/hosting/self-hosting/local-mode-quickstart.md",
      "notes": "The repository LICENSE file is the MIT License (Copyright 2025 PlandexAI Inc.), an OSI-approved license.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "plandex",
      "capability": "free_tier",
      "value": "yes",
      "quote": "Permission is hereby granted, free of charge, to any person obtaining a copy",
      "evidence_url": "https://raw.githubusercontent.com/plandex-ai/plandex/main/LICENSE",
      "notes": "The MIT-licensed CLI and self-hosted server cost nothing; model calls need your own provider key, though local Ollama models incur no spend. Plandex Cloud's trials are closed to new users as of 10/3/2025.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "Model Context Protocol (MCP) extends Kiro's capabilities by connecting to specialized servers that provide additional tools and context.",
      "evidence_url": "https://kiro.dev/docs/mcp.md",
      "notes": "The MCP capability table on the same page marks local stdio and remote HTTP/SSE servers as supported in the CLI, and kiro-cli mcp add/list/status manages them.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "MCP is a protocol that allows Kiro to communicate with external servers to access specialized tools, prompts, and resources.",
      "evidence_url": "https://kiro.dev/docs/mcp.md",
      "notes": "Docs describe Kiro only as an MCP client; the kiro-cli mcp subcommands are add, remove, list, import and status, with no server mode. The CLI instead exposes itself to editors over ACP.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks run shell commands or agent prompts automatically when specific events happen in your session - the agent modifies a file, invokes a tool, or completes a task.",
      "evidence_url": "https://kiro.dev/docs/hooks.md",
      "notes": "CLI-supported triggers listed include Prompt Submit, Agent Stop, Agent Spawn, Pre Tool Use and Post Tool Use; hooks are JSON files in .kiro/hooks/.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "This system allows you to create, edit, organize, and use reusable prompts across your development workflow.",
      "evidence_url": "https://kiro.dev/docs/cli/chat/manage-prompts.md",
      "notes": "Prompts are saved as files in .kiro/prompts/ and invoked with @name; skills can also be invoked by typing / followed by the skill name.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "Kiro supports the Agent Skills standard, so you can import skills from the community or other compatible AI tools, and share your own skills across the ecosystem.",
      "evidence_url": "https://kiro.dev/docs/skills.md",
      "notes": "Skills live in .kiro/skills/<name>/SKILL.md (workspace) or ~/.kiro/skills/ (global); the capability table marks CLI as supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "Powers package your tools, workflows, and best practices into a format that Kiro can activate on-demand.",
      "evidence_url": "https://kiro.dev/docs/powers.md",
      "notes": "Powers follow the Agent Plugins spec and bundle a plugin.json manifest, skills/, mcp.json and steering; the page's capability table marks CLI support as 'v3'.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "Sub-agents let you hand off focused tasks to agents that run in their own isolated context.",
      "evidence_url": "https://kiro.dev/docs/custom-agents/subagents.md",
      "notes": "The capability table marks automatic invocation, explicit invocation, custom agents as sub-agents and parallel execution as supported in the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Steering gives Kiro persistent knowledge about your project through markdown files.",
      "evidence_url": "https://kiro.dev/docs/steering.md",
      "notes": "Workspace steering lives in .kiro/steering/ and global steering in ~/.kiro/steering/; both are marked supported for the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "You can add AGENTS.md files to the global steering file location (`~/.kiro/steering/`), or to the root folder of your workspace, and they will get picked up by Kiro automatically.",
      "evidence_url": "https://kiro.dev/docs/steering.md",
      "notes": "The steering capability table lists 'AGENTS.md support' as available on the CLI; subdirectory AGENTS.md files are also discovered.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Kiro uses a capability-based permissions system that gives you fine-grained, declarative control over what the agent can do.",
      "evidence_url": "https://kiro.dev/docs/permissions.md",
      "notes": "Effects are deny, ask and allow, configured in permissions.yaml at user and workspace scope, plus session presets such as read-workspace, dev-shell and allow-all.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "sandbox",
      "value": "partial",
      "quote": "When you create a cloud session, Kiro provisions an isolated sandbox and starts the same agent harness that runs locally in the IDE and CLI.",
      "evidence_url": "https://kiro.dev/docs/cloud-sessions.md",
      "notes": "The CLI can start a managed remote sandbox with kiro-cli --cloud, but locally it relies on permission prompts: the permissions page marks 'Sandbox execution without per-action prompts' as unavailable on the CLI and suggests a user-run container for allow-all.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "checkpoints",
      "value": "partial",
      "quote": "The CLI gives you rewind for forking conversations, plus an experimental checkpointing feature (CLI v2) for file-level snapshots.",
      "evidence_url": "https://kiro.dev/docs/checkpoints.md",
      "notes": "File checkpoints are experimental and CLI v2 only; the CLI 3.0 notes state checkpoints are not available in 3.0 and remain IDE-only. /rewind forks the conversation but does not undo file changes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Plan mode intentionally cannot modify your project.",
      "evidence_url": "https://kiro.dev/docs/specs/plan.md",
      "notes": "Invoked in the CLI with Shift+Tab or /plan; the page's table marks Plan mode as supported on the CLI and allows only reads, code intelligence, search and web search.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "The `--trust-all-tools` flag still works as a session-scope override for CI use cases without configuration changes.",
      "evidence_url": "https://kiro.dev/docs/permissions.md",
      "notes": "Headless docs pair --no-interactive with --trust-all-tools (documented as 'Auto-approve all tool calls without prompting'); in the terminal UI it first shows a confirmation warning.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Sessions are stored per-directory in the database, allowing you to resume from any previous session, export to files, or integrate with custom storage solutions.",
      "evidence_url": "https://kiro.dev/docs/cli/chat/session-management.md",
      "notes": "Flags include --resume, --resume-picker and --resume-id, plus /chat resume inside a session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "Headless mode lets you run Kiro CLI as part of your CI/CD pipeline to automate code reviews, generate tests, or troubleshoot build failures — no interactive terminal required.",
      "evidence_url": "https://kiro.dev/docs/cli/headless.md",
      "notes": "Requires a KIRO_API_KEY (paid tiers only); supports --no-interactive, piped stdin, --output-format stream-json and documented exit codes.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "Spawned sessions run alongside your main conversation without blocking it.",
      "evidence_url": "https://kiro.dev/docs/reference/slash-commands.md",
      "notes": "/spawn runs background agent sessions and an experimental (deprecated) delegate tool launches async tasks, but the built-in background shell-process tools (control_bash_process, get_process_output, list_processes) are listed as IDE-only in the surface-availability table, which conflicts with a later table on the same page marking them 'IDE · CLI'.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Sub-agents run in parallel, each working independently.",
      "evidence_url": "https://kiro.dev/docs/custom-agents/subagents.md",
      "notes": "Parallel execution is marked supported on the CLI, and /spawn starts additional agent sessions in parallel in the same repository, monitored with Ctrl+G.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Use the model dropdown in the chat interface, or set your default from the command line.",
      "evidence_url": "https://kiro.dev/docs/models.md",
      "notes": "CLI-specific section; models include GPT-5.6 tiers, Claude Opus/Sonnet/Haiku, DeepSeek, GLM, MiniMax, Qwen and Auto, settable via kiro-cli settings chat.defaultModel or /model.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "byok_providers",
      "value": "no",
      "quote": "Kiro gives you access to frontier and open weight AI models from OpenAI, Anthropic, and other providers.",
      "evidence_url": "https://kiro.dev/docs/models.md",
      "notes": "Models are served through Kiro's own backend on Amazon Bedrock; authentication is GitHub, Google, AWS Builder ID, IAM Identity Center or a Kiro API key, and no third-party provider key, custom base URL or OpenAI-compatible endpoint is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "local_models",
      "value": "no",
      "quote": "Kiro is powered by Amazon Bedrock, which uses cross-region inference to distribute requests across the Regions within a geography.",
      "evidence_url": "https://kiro.dev/docs/models.md",
      "notes": "No mention anywhere in the docs of Ollama, LM Studio, llama.cpp, vLLM or any locally hosted model serving the agent's responses.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "For models that support configurable reasoning effort, you can control how much reasoning the model applies to your prompts.",
      "evidence_url": "https://kiro.dev/docs/models.md",
      "notes": "The CLI sets it with /effort or the --effort launch flag (low, medium, high, xhigh, max); the reasoning-effort table marks CLI as supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "View your current usage statistics and remaining credits.",
      "evidence_url": "https://kiro.dev/docs/reference/slash-commands.md",
      "notes": "/usage shows billing and credits, and in non-interactive runs prints the full breakdown; status-line segments can also display usage percentage and remaining credits. Costs are in Kiro credits, not dollars.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Kiro can analyze and discuss images directly in your chat session.",
      "evidence_url": "https://kiro.dev/docs/cli/chat/images.md",
      "notes": "Drag and drop into the terminal, a file path with the read tool, or /paste from the clipboard; JPEG, PNG, GIF and WebP up to 10MB, max 10 images per request.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "Web tools let Kiro access current information from the internet in real-time, grounding responses with up-to-date search results and page content.",
      "evidence_url": "https://kiro.dev/docs/tools/web.md",
      "notes": "The same page states web tools are available across all surfaces including the CLI; web_search is also listed among CLI 3.0 built-in tools.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Fetches and extracts text content from a specific URL.",
      "evidence_url": "https://kiro.dev/docs/tools/web.md",
      "notes": "web_fetch is a built-in tool with selective, truncated and full modes, a 10MB cap and a web_fetch permission capability; requests are made from the user's machine.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Kiro CLI can be used as an ACP agent in any editor that supports the protocol.",
      "evidence_url": "https://kiro.dev/docs/cli/acp.md",
      "notes": "Documented setup for JetBrains IDEs (AI Assistant custom agent) and Zed via `kiro-cli acp`; the vendor also ships a separate Kiro IDE that runs the same agent harness.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "The agent reads, edits, builds, and runs shell commands inside the sandbox, and delivers results back through your source provider (typically as a pull request) or directly in the conversation.",
      "evidence_url": "https://kiro.dev/docs/cloud-sessions.md",
      "notes": "PR delivery is documented for cloud sessions, which the CLI can create with kiro-cli --cloud; for local CLI sessions the docs only document Git-aware file selection and running git through the shell, with no first-class commit or PR command (AI commit messages are an IDE feature).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "auto_memory",
      "value": "no",
      "quote": "As you work with Kiro Web and give it feedback, it picks up your preferences and applies them to future work, so you don't have to restate the same guidance in every session.",
      "evidence_url": "https://kiro.dev/docs/web/memory.md",
      "notes": "Agent-maintained memory is documented only for Kiro Web. The CLI has an experimental /knowledge base that the user populates, and steering files the user writes, not memory the agent maintains itself.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "Windows requires Windows 11 and Windows Terminal or PowerShell (not Command Prompt).",
      "evidence_url": "https://kiro.dev/docs/getting-started/installation.md",
      "notes": "Installed natively with `irm 'https://cli.kiro.dev/install.ps1' | iex`; requirements list the CLI on macOS, Windows 11 (PowerShell) or Linux. No WSL requirement, but Command Prompt is unsupported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "open_source",
      "value": "no",
      "quote": "The Kiro product source code is not hosted here.",
      "evidence_url": "https://raw.githubusercontent.com/kirodotdev/Kiro/main/README.md",
      "notes": "kirodotdev/Kiro is only an issue and feedback tracker; the CLI ships as a binary from the vendor install script. Kiro Crew is a separate open-source product and is not the CLI.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "kiro-cli",
      "capability": "free_tier",
      "value": "yes",
      "quote": "New Kiro users automatically start at the perpetual **Kiro Free** tier.",
      "evidence_url": "https://kiro.dev/docs/billing.md",
      "notes": "Free tier gives 50 credits per cycle with a limited model list; headless API-key authentication and Kiro Web require a paid tier.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "You can connect Junie CLI to external tools via Model Context Protocol (MCP).",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html",
      "notes": "Servers are configured in .junie/mcp/mcp.json at project or user scope and managed with the /mcp command.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "Agents that implement ACP can work with any ACP-compatible editor.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-acp.html",
      "notes": "Junie exposes itself to editors through Agent Client Protocol mode, not as an MCP server; no doc page describes running Junie as an MCP server.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "hooks",
      "value": "partial",
      "quote": "Hooks let you run shell commands automatically at well-defined points in a Junie CLI session.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-hooks.html",
      "notes": "Events include SessionStart, UserPromptSubmit, PreToolUse, Stop and SessionEnd, but the page states the feature is currently in the Early Access Program.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Junie CLI supports custom slash commands that you can create to quickly execute frequently used prompts or repetitive tasks.",
      "evidence_url": "https://junie.jetbrains.com/docs/custom-slash-commands.html",
      "notes": "Commands are Markdown files with YAML frontmatter in .junie/commands or ~/.junie/commands and support named arguments.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "Agent skills are folders with instructions, templates, scripts, and reference materials that provide Junie with task-specific context.",
      "evidence_url": "https://junie.jetbrains.com/docs/agent-skills.html",
      "notes": "The same page states skills follow the open Agent Skills format, require a SKILL.md file, and are also loaded from .agents/skills directories.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "plugins",
      "value": "yes",
      "quote": "Extensions are reusable bundles that extend Junie CLI with project-specific or domain-specific capabilities.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-extensions.html",
      "notes": "Extensions bundle skills, MCP servers, subagents, commands, guidelines and hooks, distributed via marketplaces including Claude plugin format manifests.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "The subagent then works independently in its own context and returns the result to the main agent.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-subagents.html",
      "notes": "Custom subagents are Markdown files in .junie/agents with per-agent tools, model, reasoning level and permission mode; they are invoked only by automatic delegation.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "Guidelines allow you to provide persistent, reusable context to the agent.",
      "evidence_url": "https://junie.jetbrains.com/docs/guidelines-and-memory.html",
      "notes": "Resolution order is .junie/AGENTS.md, then root AGENTS.md combined with .junie/playbook.md and .junie/rules/*.md, plus global ~/.junie/AGENTS.md.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "is an open file format for guiding coding agents.",
      "evidence_url": "https://junie.jetbrains.com/docs/guidelines-and-memory.html",
      "notes": "Quote is the sentence describing AGENTS.md on that page; the page lists AGENTS.md in the project root as a guidelines source Junie CLI reads.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "Brave mode controls how much Junie CLI relies on user approval before running potentially sensitive actions.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "Three levels (Off, Auto, On) toggled with /brave or Ctrl+B, plus an Action Allowlist; subagents accept permissionMode values default, acceptEdits, dontAsk, bypassPermissions and plan.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "sandbox",
      "value": "no",
      "quote": "For running potentially sensitive actions, such as executing most of the terminal commands, editing files outside the project, or invoking MCP tools, Junie CLI will ask for approval from the user.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "Protection is approval plus an allowlist and project trust; no OS-level filesystem or network sandbox for shell commands is documented (Docker is only mentioned for the separate /demo feature).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "checkpoints",
      "value": "no",
      "quote": "For simultaneous code changes, give each task its own Git worktree.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-worktrees.html",
      "notes": "No checkpoint, rewind or undo feature appears in the CLI docs, the full slash-command reference or the CLI flag reference; Git worktrees are the documented mechanism for managing agent file changes.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "In Plan mode, Junie CLI analyzes the codebase with read-only operations and produces a design document for the task before any code is written.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-plan-mode.html",
      "notes": "Enabled with Shift+Tab, the /plan command, or the --plan startup flag.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Junie CLI executes all potentially sensitive actions without user approval.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "This is the On level of Brave mode; it can also be started with the --brave flag or the brave field in config.json.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "It lists live sessions from the current Junie instance together with saved sessions from previous runs.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-worktrees.html",
      "notes": "Sessions are resumed via /history, or from the command line with --resume and --session-id.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "headless",
      "value": "yes",
      "quote": "You can run Junie CLI in headless mode without interactive UI in CI/CD environments and build pipelines.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-headless.html",
      "notes": "Run as junie --auth=$JUNIE_API_KEY with a prompt; --output-format supports text, json and json-stream.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "background_tasks",
      "value": "partial",
      "quote": "The current session stays live in the background, and Junie opens a new interactive session.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-worktrees.html",
      "notes": "Agent sessions run in the background while you work in another; a run_in_background field appears in the Bash tool input shown on the hooks page, but background shell commands are not documented in prose.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Junie can keep multiple live sessions in one interactive terminal.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-worktrees.html",
      "notes": "The page documents a safe parallel-work workflow using /new plus /worktree so each task gets its own Git checkout.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Specify the model to be used by Junie CLI.",
      "evidence_url": "https://junie.jetbrains.com/docs/parameters.html",
      "notes": "The --model flag or /model picks among aliases such as sonnet, opus, gpt, gpt-codex, gemini-pro, gemini-flash and grok.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "Junie CLI uses these API keys to send requests to LLMs directly without requiring a JetBrains AI subscription.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "BYOK covers OpenAI, Anthropic, Google, xAI, OpenRouter and GitHub Copilot; custom OpenAI-compatible endpoints and LiteLLM proxies are also supported.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "local_models",
      "value": "yes",
      "quote": "Junie CLI can connect to a local Ollama server, automatically discover the models it serves, and make them available in the model picker.",
      "evidence_url": "https://junie.jetbrains.com/docs/custom-llm-ollama.html",
      "notes": "LM Studio and LiteLLM have their own pages, and Junie Local runs a bundled local engine on Apple Silicon.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "For models that support adjustable reasoning effort (for example, recent Claude, GPT-5, and Gemini models), you can pick how hard the model thinks before answering.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "Set with /model, the /effort command, the --effort flag or the JUNIE_EFFORT environment variable.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Show usage statistics for the current session and all-time totals, including token usage, used models, code changes, and (on JetBrains AI) your remaining balance.",
      "evidence_url": "https://junie.jetbrains.com/docs/slash-commands.html",
      "notes": "This is the /stats command, aliased as /usage, /cost, /quota, /balance and /credits.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Junie CLI accepts all common image formats such as PNG and JPEG.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "Images can be dragged and dropped into the terminal or referenced in the prompt.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "web_search",
      "value": "yes",
      "quote": "Searching the web for up-to-date information.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-subagents.html",
      "notes": "This is the description of the built-in WebSearch tool group in the table of tool groups subagents can allow or deny.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "web_fetch",
      "value": "partial",
      "quote": "path fetches and extracts content from URLs.",
      "evidence_url": "https://junie.jetbrains.com/docs/custom-proxies.html",
      "notes": "Quote is the URL extraction row describing the /extract sub-endpoint Junie uses; no separate URL-fetch tool group is listed among the built-in tools, so exposure to the user is unclear.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "When JetBrains IDE integration is available, Junie CLI can connect to the Junie plugin running inside a JetBrains IDE for the same project and use JetBrains IDE awareness for that session.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-jetbrains-ide-integration.html",
      "notes": "Supported IDEs include IntelliJ IDEA, PyCharm, WebStorm, GoLand, CLion, Rider and Android Studio; other editors can connect over ACP.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "git_pr_workflow",
      "value": "yes",
      "quote": "When finished, Junie CLI creates a new PR with all the necessary code changes.",
      "evidence_url": "https://junie.jetbrains.com/docs/basic-workflow.html",
      "notes": "Documented for Junie CLI running in the Junie GitHub Action; the interactive CLI also ships /review, /pull-request, /worktree and --merge/--rebase conflict resolution.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "Extracting information for memory",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli-model-selection.html",
      "notes": "Listed as an internal helper-model task, and the config page mentions project memory as a loaded source, but no user-facing memory file the agent writes or a memory command is documented; persistent context is the user-authored AGENTS.md.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "Junie CLI is available on Linux, macOS, and Windows.",
      "evidence_url": "https://junie.jetbrains.com/docs/junie-cli.html",
      "notes": "Installed on Windows with a PowerShell one-liner; hook commands are executed via cmd /c on Windows and user-scope paths use %USERPROFILE%.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "open_source",
      "value": "no",
      "quote": "JetBrains s.r.o. All rights reserved.",
      "evidence_url": "https://raw.githubusercontent.com/JetBrains/junie/main/LICENSE.md",
      "notes": "The public JetBrains/junie repository hosts docs, assets and issues under an all-rights-reserved license subject to the JetBrains AI Service Terms; no CLI source is published.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "junie-cli",
      "capability": "free_tier",
      "value": "unknown",
      "quote": "",
      "evidence_url": "",
      "notes": "UNVERIFIED on 2026-09-13 (quote not found on page; was partial): \"5 AI credits included, enough for a real task\" at https://junie.jetbrains.com/ | The Free plan starts with 5 AI credits and no card; beyond that the CLI can still be used without a JetBrains subscription via Bring Your Own Key or a locally running model, while JetBrains-hosted usage is paid.",
      "confidence": "low",
      "verified": false,
      "verified_at": ""
    },
    {
      "agent": "mistral-vibe",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "You can configure MCP (Model Context Protocol) servers to extend Vibe's capabilities.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Supports stdio, http and streamable-http transports, static auth or OAuth, plus `vibe mcp add` and the `/mcp` browser.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "mcp_server",
      "value": "no",
      "quote": "`vibe mcp add` and `vibe mcp remove` commands to add and remove remote MCP servers without editing TOML",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "MCP surface is client-side only; the documented way to embed Vibe in another client is the Agent Client Protocol binary vibe-acp, not an MCP server mode.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "hooks",
      "value": "yes",
      "quote": "Hooks wire arbitrary shell commands into Vibe's lifecycle to gate, audit, or rewrite agent behavior.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "pre_tool, post_tool and post_agent hooks declared in project or user hooks.toml; subagents inherit the parent hook config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "Skills are the recommended way to add your own slash commands.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/skills.md",
      "notes": "A skill with user-invocable: true becomes a /skill-name command with autocompletion.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "skills",
      "value": "yes",
      "quote": "Vibe follows the [Agent Skills specification](https://agentskills.io/specification), so skills you write here are portable to other agents that adopt the same spec.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/skills.md",
      "notes": "SKILL.md folders discovered from skill_paths, ./.vibe/skills/, ./.agents/skills/ and ~/.vibe/skills/.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "plugins",
      "value": "yes",
      "quote": "Plugin-declared MCP servers in `/mcp`, tagged with their plugin and authenticatable via `/mcp login`; a pending login is announced at session start",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "A /plugins command, user-scope plugins in ~/.vibe/plugins/, plugin-namespaced skills and plugin-declared MCP servers are described in the changelog; the CLI also ships built-in vibe and worktree plugins. Not yet covered on the docs site.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "subagents",
      "value": "yes",
      "quote": "Vibe supports subagents for delegating tasks.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "The task tool delegates to the built-in explore subagent or to custom agents declared with agent_type = \"subagent\".",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "You can create `AGENTS.md` files to add custom instructions.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "User-level ~/.vibe/AGENTS.md plus project AGENTS.md loaded from cwd up to the trust root; system prompts can also be fully replaced.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "agents_md",
      "value": "yes",
      "quote": "The CLI loads up to **two `AGENTS.md` files** into context to follow project-specific agent instructions:",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/agents.md",
      "notes": "AGENTS.md specifically is the project instruction file; only loaded from trusted folders.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "The active agent defines how Vibe asks for approval before running tools, and more broadly, can override the system prompt, the compaction prompt, the model, the available tools, and other settings.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/safety-approvals-permissions.md",
      "notes": "Built-in default, plan, accept-edits and auto-approve agents, switchable with Shift+Tab or --agent, plus per-tool permission = ask/always.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "sandbox",
      "value": "no",
      "quote": "**Reserve `auto-approve` for disposable environments** (containers, CI runners, ephemeral VMs).",
      "evidence_url": "https://docs.mistral.ai/vibe/code/safety-approvals-permissions.md",
      "notes": "Isolation is the user's responsibility; the CLI's controls are approval prompts and bash allow/deny lists, not OS-level sandboxing. The managed sandbox belongs to the separate Vibe Code Web product.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "checkpoints",
      "value": "no",
      "quote": "A clean baseline gives you an instant rollback (`git reset --hard`) when something goes wrong.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/safety-approvals-permissions.md",
      "notes": "/rewind and Alt+Up move back through conversation messages; the docs describe no restore of agent file edits and recommend the user's own git commits for rollback.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "plan_mode",
      "value": "yes",
      "quote": "Use the `plan` agent when you want a read-only walkthrough before any change is proposed.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/work-with-cli.md",
      "notes": "The plan agent auto-approves safe read tools and blocks edits and commands.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "full_auto",
      "value": "yes",
      "quote": "**`--auto-approve`, `--yolo`**: Approves all tool calls without prompting, including in interactive sessions.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Also available as the auto-approve agent, which is the default in programmatic mode.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "session_resume",
      "value": "yes",
      "quote": "`vibe --continue` (or `-c`) resumes the most recent session.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/work-with-cli.md",
      "notes": "Also --resume [SESSION_ID] with partial-ID matching and an in-session /resume picker.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "headless",
      "value": "yes",
      "quote": "Programmatic mode is built for **scripting, CI jobs, and any non-interactive use**. Use the `--prompt` flag to run a single task and exit:",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/work-with-cli.md",
      "notes": "--output text/json/streaming, --max-turns, --max-tokens and --trust; the repo also ships a GitHub Action (action.yml).",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "background_tasks",
      "value": "yes",
      "quote": "Background process tools (process.start, process.stop, process.output, process.list, process.write) now show the command or process ID in the call header and a typed result widget instead of raw JSON.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "The README also documents managed shell sessions with background = true, polling via bash_output and stdin helpers; the managed-shell variant is behind a server-managed rollout.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Vibe claims a free name, adding `-2`, `-3` and so on if needed, so two sessions started at once can never land in the same checkout.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "The --worktree flag creates or reuses a git worktree per session so concurrent sessions on one repo are isolated; there is also a built-in worktree plugin.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "model_selection",
      "value": "yes",
      "quote": "You can also change the active model at any time inside the CLI with `/config` or `/model`.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/api-keys-profiles.md",
      "notes": "active_model in config.toml plus model presets; the first user message pins the model to the session.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "The Vibe Code CLI supports **any model served behind an OpenAI-compatible API**.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/offline-models.md",
      "notes": "Provider presets take api_base, api_key_env_var and api_style; the docs show an OpenRouter example.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "local_models",
      "value": "yes",
      "quote": "You can deploy Devstral on your own infrastructure and point the CLI at it.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/offline-models.md",
      "notes": "The same page lists vLLM, llama.cpp, LM Studio and Ollama as supported OpenAI-compatible servers and gives a local provider config.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "thinking_control",
      "value": "yes",
      "quote": "| `/thinking` |  | Select the thinking level. |",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/commands-shortcuts.md",
      "notes": "Built-in slash command for the thinking level; the changelog also lists a reasoning-effort parameter for supported models.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "cost_display",
      "value": "yes",
      "quote": "`/status` shows provider prompt-cache usage and discounts cached tokens from the session cost",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "/status displays agent statistics including session cost; the docs warn that configured prices can be outdated so the cost is indicative only.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "image_input",
      "value": "yes",
      "quote": "Image attachments via `@` mentions — `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp` files are sent to vision-capable models (e.g. Mistral Medium 3.5) as native multimodal content.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Clipboard image paste in the TUI was added for macOS per the changelog.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "web_search",
      "value": "yes",
      "quote": "Web search and web fetch tools for retrieving and searching web content",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "Built-in web_search tool; documented in the changelog rather than the docs site, and later entries show continued maintenance.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "web_fetch",
      "value": "yes",
      "quote": "Web search and web fetch tools for retrieving and searching web content",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
      "notes": "Built-in web_fetch tool; later changelog entries mention improved web_fetch content truncation and clickable URLs in its output.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "ide_integration",
      "value": "yes",
      "quote": "Mistral Vibe can be used in text editors and IDEs that support [Agent Client Protocol](https://agentclientprotocol.com/overview/clients).",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Ships a vibe-acp binary with documented setup for Zed, JetBrains IDEs and Neovim; Mistral also publishes a separate VS Code extension.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "it can read files, run commands, write code, and open pull requests on your behalf, under your supervision.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/overview.md",
      "notes": "The CLI has no dedicated commit or PR command; the documented PR flow is /teleport to a Vibe Code Web sandbox, which pushes a branch and opens a draft pull request. Locally, git work goes through the shell tool.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "auto_memory",
      "value": "no",
      "quote": "You can create `AGENTS.md` files to add custom instructions.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Persistent instructions are user-authored AGENTS.md files; the docs describe no memory the agent writes itself. /compact summarizes only within a session.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "windows_native",
      "value": "partial",
      "quote": "Mistral Vibe works on Windows, but we officially support and target UNIX environments.",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Runs natively without WSL and the managed shell falls back to git_bash or powershell on Windows, but Windows is not an officially supported target.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "open_source",
      "value": "yes",
      "quote": "Licensed under the Apache License, Version 2.0 (the \"License\");",
      "evidence_url": "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
      "notes": "Full source at github.com/mistralai/mistral-vibe under Apache-2.0, an OSI-approved license.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "mistral-vibe",
      "capability": "free_tier",
      "value": "yes",
      "quote": "The same key works in Free mode, with a paid plan, or with pay-as-you-go enabled.",
      "evidence_url": "https://docs.mistral.ai/vibe/code/cli/api-keys-profiles.md",
      "notes": "Free mode API keys work with the CLI; the tool is also open source and can be pointed at a free local or third-party OpenAI-compatible endpoint.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "mcp_client",
      "value": "yes",
      "quote": "The CLI keeps its own MCP server configuration, separate from the Warp app’s, so each can run its own set of servers.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "Servers are defined in a JSON mcpServers config file and managed in-session with /mcp, including OAuth-authenticated servers.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "mcp_server",
      "value": "no",
      "quote": "The CLI reads MCP servers from its global config file only.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "Docs describe the CLI only as an MCP client; no flag or command exposes the CLI itself as an MCP server.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "hooks",
      "value": "no",
      "quote": "Beyond the CLI’s own settings, this page also covers the agent’s context, which includes the project rules, skills, and MCP servers the agent picks up as you work.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "Customization is limited to the TOML settings file, rules, skills and MCP servers; no lifecycle hook events are documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "custom_commands",
      "value": "yes",
      "quote": "You can also invoke a skill directly by typing `/` followed by its name, for example `/deploy push the latest changes to staging`.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "Skill files in the repo or home directory become explicitly invocable slash commands, and text after the name is passed as arguments.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "skills",
      "value": "yes",
      "quote": "Each skill must be in its own subdirectory with a `SKILL.md` file.",
      "evidence_url": "https://docs.warp.dev/agents/capabilities/skills.md",
      "notes": "The CLI discovers the same SKILL.md skills as the Warp app from .agents/skills/ and compatible directories such as .claude/skills/.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "plugins",
      "value": "no",
      "quote": "The CLI discovers the same skills as the Warp app.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "Extension happens through skills and MCP servers; no packaged plugin or marketplace system is documented for the CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "subagents",
      "value": "yes",
      "quote": "Each local child runs on your machine as its own session, starting in the parent’s working directory.",
      "evidence_url": "https://docs.warp.dev/agents/cli/cloud-and-orchestration.md",
      "notes": "Child agents get their own session and tab, gated by the run_agents permission and an approval card.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "project_instructions",
      "value": "yes",
      "quote": "`AGENTS.md` (or `WARP.md`) files in your repository apply automatically, starting from the repository root and your current directory.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "A global rule file at ~/.agents/AGENTS.md also applies across all projects.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "agents_md",
      "value": "yes",
      "quote": "Because rules and skills come from the same shared locations, a repository already configured for agents in the Warp app (or any tool that reads `AGENTS.md`) works in the CLI immediately.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "AGENTS.md is the primary project rule file, with WARP.md accepted as an alternative.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "permission_modes",
      "value": "yes",
      "quote": "The Warp Agent CLI uses the same permission model as the Warp app: you choose how much approval each type of action needs.",
      "evidence_url": "https://docs.warp.dev/agents/cli/permissions-and-profiles.md",
      "notes": "Each action type is set to always_ask, always_allow or agent_decides in an execution profile, with command allowlists and denylists.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "sandbox",
      "value": "no",
      "quote": "It creates and maintains its own pseudoterminal (PTY), which lets you and the agent execute commands and interact with running processes through the same terminal, including prompts and full-screen terminal apps.",
      "evidence_url": "https://docs.warp.dev/agents/cli.md",
      "notes": "Local commands run in the user's own PTY guarded by permissions; sandboxing is documented only for cloud agent runs, not the local CLI.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "checkpoints",
      "value": "no",
      "quote": "For file edits, `agent_decides` still prompts every time, so you always review a diff before it’s applied.",
      "evidence_url": "https://docs.warp.dev/agents/cli/permissions-and-profiles.md",
      "notes": "The CLI's control is review-before-apply; its slash command list has no rewind or checkpoint restore command (the Warp app has /rewind, the CLI does not).",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "plan_mode",
      "value": "partial",
      "quote": "To have the agent first research and produce a plan before making changes, use the `/plan` slash command followed by a description of your task.",
      "evidence_url": "https://docs.warp.dev/agents/cli/agent-conversations.md",
      "notes": "/plan researches and proposes before changes, but docs do not describe it as a persistent read-only mode that blocks edits.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "full_auto",
      "value": "yes",
      "quote": "Starts new conversations with auto-approve enabled, so the agent runs actions without asking for approval first.",
      "evidence_url": "https://docs.warp.dev/agents/cli/reference.md",
      "notes": "warp --auto-approve, or /auto-approve and Ctrl+Shift+I in session; by default auto-approve also bypasses the command denylist.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "session_resume",
      "value": "yes",
      "quote": "Reopens a specific conversation from your shell as the CLI starts, without going through the menu.",
      "evidence_url": "https://docs.warp.dev/agents/cli/agent-conversations.md",
      "notes": "warp --resume TOKEN resumes from the shell, and /conversations browses synced history including cloud runs.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "headless",
      "value": "partial",
      "quote": "Authenticates with a Warp API key instead of the interactive browser login. Use it on machines that can’t open a browser, such as CI runners and remote servers.",
      "evidence_url": "https://docs.warp.dev/agents/cli/reference.md",
      "notes": "Non-interactive auth for CI is documented, but the flag reference lists no prompt-and-exit or print mode; warp always starts an interactive session.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "background_tasks",
      "value": "no",
      "quote": "One command runs in the session at a time.",
      "evidence_url": "https://docs.warp.dev/agents/cli/input-and-shell-commands.md",
      "notes": "Long-running commands hold the session's single PTY; offloading long work is done by handing the conversation to a cloud agent instead.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "parallel_agents",
      "value": "yes",
      "quote": "Orchestration lets one conversation spawn child agents that work in parallel, on your machine or in the cloud.",
      "evidence_url": "https://docs.warp.dev/agents/cli/cloud-and-orchestration.md",
      "notes": "/orchestrate splits a task across multiple agents, shown in an Agents: tab bar; local children start in the parent's working directory.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "model_selection",
      "value": "yes",
      "quote": "Run `/model` to open the model picker.",
      "evidence_url": "https://docs.warp.dev/agents/cli/models-and-usage.md",
      "notes": "The picker covers Warp's catalog (OpenAI, Anthropic, Google, open-weight and auto routers); the choice is saved to the active profile.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "byok_providers",
      "value": "yes",
      "quote": "You can pick the model that powers your conversations, bring your own provider API keys, route requests through custom model routers, and see what every response costs as you work.",
      "evidence_url": "https://docs.warp.dev/agents/cli/models-and-usage.md",
      "notes": "BYOK covers OpenAI, Anthropic and Google keys via /api-keys or --set-provider-api-key; OpenAI-compatible custom endpoints are configured in the Warp app.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "local_models",
      "value": "no",
      "quote": "To use an internal or local endpoint, first expose it at a public HTTPS URL.",
      "evidence_url": "https://docs.warp.dev/agents/inference/custom-inference-endpoint.md",
      "notes": "Requests route through Warp's servers, so localhost and private-network endpoints such as a local Ollama or LiteLLM are rejected.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "thinking_control",
      "value": "partial",
      "quote": "Models from OpenAI, Anthropic, Google, and open source providers are available, with configurable reasoning levels and per-profile defaults.",
      "evidence_url": "https://docs.warp.dev/agents/inference/model-choice.md",
      "notes": "Reasoning level is chosen by selecting a model variant such as low, medium, high or xhigh in the picker; no separate CLI toggle is documented.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "cost_display",
      "value": "yes",
      "quote": "Run `/cost` to toggle a summary row under the latest response showing how long it took and how many credits it spent (e.g., `12s • 1.2 credits`).",
      "evidence_url": "https://docs.warp.dev/agents/cli/models-and-usage.md",
      "notes": "The statusline can also show accumulated conversation credits or the equivalent provider cost, and /usage shows account-level balances.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "image_input",
      "value": "yes",
      "quote": "Supported formats are PNG, JPEG, GIF, and WebP. Attaching an image locks the input to Agent Mode, since images are sent to the agent rather than the shell.",
      "evidence_url": "https://docs.warp.dev/agents/cli/input-and-shell-commands.md",
      "notes": "Images can be pasted with Ctrl+V or attached by pasting or dragging a file path into the input.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "web_search",
      "value": "partial",
      "quote": "Web search is available only for models that offer a native web search integration, that works in tandem with other custom tools.",
      "evidence_url": "https://docs.warp.dev/agents/capabilities/web-search.md",
      "notes": "Web search is a Warp Agent capability limited to search-capable models and toggled by the Call web tools profile setting in the Warp app; the CLI pages never mention it.",
      "confidence": "low",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "web_fetch",
      "value": "unknown",
      "quote": "You can attach a public URL to any prompt to provide page content as context.",
      "evidence_url": "https://docs.warp.dev/agents/local-agents/agent-context/urls-as-context.md",
      "notes": "URL attachment is documented for Warp app prompts; the CLI input docs list image attachments only and describe no URL fetch tool.",
      "confidence": "low",
      "verified": false,
      "verified_at": "2026-09-13"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "ide_integration",
      "value": "no",
      "quote": "Warp doesn’t have a VS Code importer because it’s a standalone application, not a VS Code extension.",
      "evidence_url": "https://docs.warp.dev/getting-started/migrate-to-warp/migrate-to-warp-from-vs-code-terminal.md",
      "notes": "The CLI is a terminal program that runs in any emulator; Warp ships its own app and editor rather than an IDE extension.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "git_pr_workflow",
      "value": "partial",
      "quote": "The pull request for the current branch. Click it to open the PR on GitHub.",
      "evidence_url": "https://docs.warp.dev/agents/cli/configuration.md",
      "notes": "The statusline surfaces branch, diff status and the branch's PR, and the agent runs git commands, but commit and PR creation are not documented CLI workflows.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "auto_memory",
      "value": "partial",
      "quote": "Agents read from and write to this memory system as they run, so durable facts, decisions, and outcomes from one conversation are available to the next — regardless of which harness, machine, or teammate triggers the work.",
      "evidence_url": "https://docs.warp.dev/agents/agent-memory.md",
      "notes": "Agent Memory covers the local Warp Agent but is a research preview enabled per team for design partners via a waitlist.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "windows_native",
      "value": "yes",
      "quote": "macOS (Apple Silicon or Intel), Linux (x64 or Arm64), or Windows (x64 or Arm64).",
      "evidence_url": "https://docs.warp.dev/agents/cli/quickstart.md",
      "notes": "Windows x64 and Arm64 install via a PowerShell one-liner, and keybindings are documented as the same on Windows.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "open_source",
      "value": "partial",
      "quote": "Warp's client codebase is open source and lives in this repository.",
      "evidence_url": "https://raw.githubusercontent.com/warpdotdev/warp/master/README.md",
      "notes": "The repo is AGPL-3.0 and contains crates/warp_tui described as Warp Agent CLI, but the agent harness runs on Warp's servers and a Warp account is required.",
      "confidence": "medium",
      "verified": true,
      "verified_at": "2026-09-18"
    },
    {
      "agent": "warp-agent-cli",
      "capability": "free_tier",
      "value": "partial",
      "quote": "The Free plan doesn’t include bundled AI usage for the Warp Agent.",
      "evidence_url": "https://docs.warp.dev/support-and-community/plans-and-billing/plans-pricing-refunds.md",
      "notes": "A Free plan exists, but using the agent requires a paid plan, add-on credits, or your own inference via BYOK or a custom endpoint.",
      "confidence": "high",
      "verified": true,
      "verified_at": "2026-09-18"
    }
  ],
  "agents": [
    {
      "id": "claude-code",
      "name": "Claude Code",
      "vendor": "Anthropic",
      "homepage": "https://code.claude.com/docs/en/overview",
      "repo": "https://github.com/anthropics/claude-code",
      "sources": [
        "https://code.claude.com/docs/en/overview.md",
        "https://code.claude.com/docs/en/cli-reference.md",
        "https://code.claude.com/docs/en/mcp.md",
        "https://code.claude.com/docs/en/hooks.md",
        "https://code.claude.com/docs/en/skills.md",
        "https://code.claude.com/docs/en/memory.md",
        "https://code.claude.com/docs/en/permission-modes.md",
        "https://code.claude.com/docs/en/model-config.md",
        "https://code.claude.com/docs/en/setup.md",
        "https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md"
      ]
    },
    {
      "id": "codex-cli",
      "name": "Codex CLI",
      "vendor": "OpenAI",
      "homepage": "https://developers.openai.com/codex/cli",
      "repo": "https://github.com/openai/codex",
      "sources": [
        "https://learn.chatgpt.com/docs/developer-commands?surface=cli",
        "https://learn.chatgpt.com/docs/agent-approvals-security",
        "https://learn.chatgpt.com/docs/extend/mcp?surface=cli",
        "https://learn.chatgpt.com/docs/hooks",
        "https://learn.chatgpt.com/docs/config-file/config-reference",
        "https://learn.chatgpt.com/docs/agent-configuration/subagents",
        "https://learn.chatgpt.com/docs/agent-configuration/agents-md",
        "https://learn.chatgpt.com/docs/pricing",
        "https://raw.githubusercontent.com/openai/codex/main/README.md",
        "https://github.com/openai/codex/releases"
      ]
    },
    {
      "id": "gemini-cli",
      "name": "Gemini CLI",
      "vendor": "Google",
      "homepage": "https://geminicli.com",
      "repo": "https://github.com/google-gemini/gemini-cli",
      "sources": [
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/README.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/configuration.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/reference/commands.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/cli-reference.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/tools/mcp-server.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/hooks/reference.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/core/subagents.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/cli/sandbox.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/resources/quota-and-pricing.md",
        "https://raw.githubusercontent.com/google-gemini/gemini-cli/main/docs/changelogs/index.md"
      ]
    },
    {
      "id": "cursor-cli",
      "name": "Cursor CLI",
      "vendor": "Cursor (Anysphere)",
      "homepage": "https://cursor.com/cli",
      "repo": null,
      "sources": [
        "https://cursor.com/docs/cli/overview",
        "https://cursor.com/docs/cli/using",
        "https://cursor.com/docs/cli/reference/parameters",
        "https://cursor.com/docs/cli/reference/slash-commands",
        "https://cursor.com/docs/cli/reference/configuration",
        "https://cursor.com/docs/cli/reference/permissions",
        "https://cursor.com/docs/cli/headless",
        "https://cursor.com/docs/cli/mcp",
        "https://cursor.com/docs/cli/changelog",
        "https://cursor.com/docs/cli/installation"
      ]
    },
    {
      "id": "copilot-cli",
      "name": "GitHub Copilot CLI",
      "vendor": "GitHub",
      "homepage": "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli",
      "repo": "https://github.com/github/copilot-cli",
      "sources": [
        "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli",
        "https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference",
        "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions",
        "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers",
        "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-hooks",
        "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills",
        "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models",
        "https://docs.github.com/en/copilot/concepts/agents/copilot-cli/cancel-and-roll-back",
        "https://docs.github.com/en/copilot/get-started/plans",
        "https://raw.githubusercontent.com/github/copilot-cli/main/changelog.md"
      ]
    },
    {
      "id": "cline",
      "name": "Cline",
      "vendor": "Cline Bot Inc.",
      "homepage": "https://cline.bot",
      "repo": "https://github.com/cline/cline",
      "sources": [
        "https://raw.githubusercontent.com/cline/cline/main/README.md",
        "https://raw.githubusercontent.com/cline/cline/main/apps/cli/README.md",
        "https://raw.githubusercontent.com/cline/cline/main/CHANGELOG.md",
        "https://raw.githubusercontent.com/cline/cline/main/apps/cli/CHANGELOG.md",
        "https://docs.cline.bot/cli/cli-reference.md",
        "https://docs.cline.bot/usage/cli-overview.md",
        "https://docs.cline.bot/mcp/mcp-overview.md",
        "https://docs.cline.bot/customization/cline-rules.md",
        "https://docs.cline.bot/features/auto-approve.md",
        "https://raw.githubusercontent.com/cline/cline/main/.clinerules/hooks/README.md"
      ]
    },
    {
      "id": "opencode",
      "name": "OpenCode",
      "vendor": "Anomaly (formerly SST)",
      "homepage": "https://opencode.ai",
      "repo": "https://github.com/anomalyco/opencode",
      "sources": [
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/cli.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/permissions.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/agents.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/mcp-servers.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/plugins.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/rules.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/tools.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/providers.mdx",
        "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/index.mdx",
        "https://github.com/anomalyco/opencode/releases.atom"
      ]
    },
    {
      "id": "goose",
      "name": "Goose",
      "vendor": "Block (now hosted by the Agentic AI Foundation / Linux Foundation)",
      "homepage": "https://goose-docs.ai/",
      "repo": "https://github.com/aaif-goose/goose",
      "sources": [
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/goose-cli-commands.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/getting-started/providers.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/environment-variables.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/hooks.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-skills.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/subagents.mdx",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/context-engineering/using-goosehints.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/managing-tools/goose-permissions.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/tutorials/rpi.md",
        "https://raw.githubusercontent.com/aaif-goose/goose/main/documentation/docs/guides/sessions/smart-context-management.md",
        "https://github.com/aaif-goose/goose/releases"
      ]
    },
    {
      "id": "aider",
      "name": "Aider",
      "vendor": "Aider AI LLC",
      "homepage": "https://aider.chat",
      "repo": "https://github.com/Aider-AI/aider",
      "sources": [
        "https://aider.chat/docs/usage/commands.html",
        "https://aider.chat/docs/usage/modes.html",
        "https://aider.chat/docs/config/options.html",
        "https://aider.chat/docs/scripting.html",
        "https://aider.chat/docs/git.html",
        "https://aider.chat/docs/usage/images-urls.html",
        "https://aider.chat/docs/llms.html",
        "https://aider.chat/docs/config/reasoning.html",
        "https://aider.chat/docs/install/optional.html",
        "https://raw.githubusercontent.com/Aider-AI/aider/main/HISTORY.md"
      ]
    },
    {
      "id": "amp",
      "name": "Amp",
      "vendor": "Sourcegraph",
      "homepage": "https://ampcode.com",
      "repo": null,
      "sources": [
        "https://ampcode.com/docs/cli",
        "https://ampcode.com/docs/cli/execute-mode",
        "https://ampcode.com/docs/cli/settings",
        "https://ampcode.com/docs/tools",
        "https://ampcode.com/docs/customize/plugins",
        "https://ampcode.com/docs/customize/skills",
        "https://ampcode.com/docs/customize/mcp",
        "https://ampcode.com/docs/customize/agents-md",
        "https://ampcode.com/docs/pricing",
        "https://ampcode.com/news"
      ]
    },
    {
      "id": "qwen-code",
      "name": "Qwen Code",
      "vendor": "Alibaba Cloud / Qwen",
      "homepage": "https://github.com/QwenLM/qwen-code",
      "repo": "https://github.com/QwenLM/qwen-code",
      "sources": [
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/README.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/cli/configuration.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/cli/commands.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/cli/authentication.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/cli/tools-api.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/cli/deployment.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/extension.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/checkpointing.md",
        "https://raw.githubusercontent.com/QwenLM/qwen-code/main/docs/privacy.md",
        "https://github.com/QwenLM/qwen-code/releases"
      ]
    },
    {
      "id": "crush",
      "name": "Crush",
      "vendor": "Charm",
      "homepage": "https://github.com/charmbracelet/crush",
      "repo": "https://github.com/charmbracelet/crush",
      "sources": [
        "https://raw.githubusercontent.com/charmbracelet/crush/main/README.md",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/run.go",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/cmd/stats.go",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/web_search.md.tpl",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/web_fetch.md.tpl",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/tools/bash.md.tpl",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/templates/agent_tool.md",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/agent/agent_tool.go",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/ui/dialog/filepicker.go",
        "https://raw.githubusercontent.com/charmbracelet/crush/main/internal/message/attachment.go"
      ]
    },
    {
      "id": "openhands-cli",
      "name": "OpenHands CLI",
      "vendor": "All Hands AI",
      "homepage": "https://docs.openhands.dev/",
      "repo": "https://github.com/OpenHands/OpenHands-CLI",
      "sources": [
        "https://docs.openhands.dev/openhands/usage/cli/command-reference.md",
        "https://docs.openhands.dev/openhands/usage/cli/headless.md",
        "https://docs.openhands.dev/openhands/usage/cli/mcp-servers.md",
        "https://docs.openhands.dev/openhands/usage/cli/quick-start.md",
        "https://docs.openhands.dev/openhands/usage/cli/ide/overview.md",
        "https://docs.openhands.dev/openhands/usage/cli/critic.md",
        "https://docs.openhands.dev/overview/skills.md",
        "https://docs.openhands.dev/overview/plugins.md",
        "https://docs.openhands.dev/openhands/usage/customization/hooks.md",
        "https://docs.openhands.dev/openhands/usage/customization/repository.md",
        "https://docs.openhands.dev/openhands/usage/llms/llms.md",
        "https://docs.openhands.dev/openhands/usage/llms/local-llms.md",
        "https://docs.openhands.dev/openhands/usage/environment-variables.md",
        "https://docs.openhands.dev/openhands/usage/advanced/search-engine-setup.md",
        "https://docs.openhands.dev/openhands/usage/sandboxes/overview.md",
        "https://raw.githubusercontent.com/OpenHands/OpenHands-CLI/main/README.md"
      ]
    },
    {
      "id": "continue-cli",
      "name": "Continue CLI",
      "vendor": "Continue",
      "homepage": "https://docs.continue.dev/",
      "repo": "https://github.com/continuedev/continue",
      "sources": [
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/quickstart.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/headless-mode.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tool-permissions.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/tui-mode.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/cli/configuration.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/guides/cli.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/deep-dives/mcp.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/deep-dives/prompts.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/model-providers/top-level/ollama.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/customize/model-providers/top-level/openai.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/reference.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/docs/snippets/cli-install.mdx",
        "https://raw.githubusercontent.com/continuedev/continue/main/README.md"
      ]
    },
    {
      "id": "amazon-q-cli",
      "name": "Amazon Q Developer CLI",
      "vendor": "Amazon Web Services",
      "homepage": "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line.html",
      "repo": "https://github.com/aws/amazon-q-developer-cli",
      "sources": [
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/README.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-format.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/built-in-tools.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/hooks.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/experiments.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/default-agent-behavior.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/agent-file-locations.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/knowledge-management.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/todo-lists.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/docs/tangent-mode.md",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/mod.rs",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/cli/mod.rs",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/cli/prompts.rs",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/tools/execute/windows.rs",
        "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/main/crates/chat-cli/src/cli/chat/tools/tool_index.json",
        "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/qdev-mcp.md",
        "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-config-CLI.md",
        "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-tiers.md",
        "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-developer-ide-end-of-support.md"
      ]
    },
    {
      "id": "auggie",
      "name": "Auggie",
      "vendor": "Augment Code",
      "homepage": "https://docs.augmentcode.com/cli/overview",
      "repo": "https://github.com/augmentcode/auggie",
      "sources": [
        "https://docs.augmentcode.com/cli/overview.md",
        "https://docs.augmentcode.com/cli/reference.md",
        "https://docs.augmentcode.com/cli/interactive.md",
        "https://docs.augmentcode.com/cli/permissions.md",
        "https://docs.augmentcode.com/cli/hooks.md",
        "https://docs.augmentcode.com/cli/plugins.md",
        "https://docs.augmentcode.com/cli/skills.md",
        "https://docs.augmentcode.com/cli/rules.md",
        "https://docs.augmentcode.com/cli/subagents.md",
        "https://docs.augmentcode.com/cli/custom-commands.md",
        "https://docs.augmentcode.com/cli/integrations.md",
        "https://docs.augmentcode.com/cli/config.md",
        "https://docs.augmentcode.com/cli/automation/overview.md",
        "https://docs.augmentcode.com/cli/acp/agent.md",
        "https://docs.augmentcode.com/cli/sdk.md",
        "https://docs.augmentcode.com/cli/setup-auggie/install-auggie-cli.md",
        "https://docs.augmentcode.com/models/available-models.md",
        "https://docs.augmentcode.com/models/token-based-pricing.md",
        "https://raw.githubusercontent.com/augmentcode/auggie/main/README.md",
        "https://raw.githubusercontent.com/augmentcode/auggie/main/LICENSE.md",
        "https://raw.githubusercontent.com/augmentcode/auggie/main/CHANGELOG.md"
      ]
    },
    {
      "id": "factory-droid",
      "name": "Factory Droid CLI",
      "vendor": "Factory",
      "homepage": "https://docs.factory.ai/droid-cli/overview",
      "repo": "https://github.com/Factory-AI/factory",
      "sources": [
        "https://docs.factory.ai/droid-cli/overview.md",
        "https://docs.factory.ai/droid-cli/quickstart.md",
        "https://docs.factory.ai/droid-cli/cli-reference.md",
        "https://docs.factory.ai/droid-cli/settings.md",
        "https://docs.factory.ai/harness/mcp.md",
        "https://docs.factory.ai/harness/hooks.md",
        "https://docs.factory.ai/harness/custom-slash-commands.md",
        "https://docs.factory.ai/harness/skills.md",
        "https://docs.factory.ai/harness/plugins.md",
        "https://docs.factory.ai/harness/subagents.md",
        "https://docs.factory.ai/harness/agents-md.md",
        "https://docs.factory.ai/autonomy-and-safety/auto-run.md",
        "https://docs.factory.ai/autonomy-and-safety/sandbox.md",
        "https://docs.factory.ai/autonomy-and-safety/specification-mode.md",
        "https://docs.factory.ai/droid-exec/overview.md",
        "https://docs.factory.ai/model-independence/byok.md",
        "https://docs.factory.ai/ide-integrations.md",
        "https://docs.factory.ai/pricing/individuals.md",
        "https://docs.factory.ai/changelog/release-notes.md",
        "https://docs.factory.ai/sdk/typescript.md",
        "https://raw.githubusercontent.com/Factory-AI/factory/main/README.md"
      ]
    },
    {
      "id": "plandex",
      "name": "Plandex",
      "vendor": "Plandex",
      "homepage": "https://plandex.ai",
      "repo": "https://github.com/plandex-ai/plandex",
      "sources": [
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/README.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/LICENSE",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/cli-reference.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/repl.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/install.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/security.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/autonomy.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/background-tasks.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/configuration.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/context-management.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/conversations.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/execution-and-debugging.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/plans.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/prompts.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/version-control.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/core-concepts/branches.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/model-settings.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/model-providers.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/custom-models.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/ollama.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/roles.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/models/built-in/built-in-models.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/hosting/cloud.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/docs/docs/hosting/self-hosting/local-mode-quickstart.md",
        "https://raw.githubusercontent.com/plandex-ai/plandex/main/releases/cli/CHANGELOG.md"
      ]
    },
    {
      "id": "kiro-cli",
      "name": "Kiro CLI",
      "vendor": "Amazon Web Services",
      "homepage": "https://kiro.dev/docs/cli/",
      "repo": "https://github.com/kirodotdev/Kiro",
      "sources": [
        "https://kiro.dev/docs/cli.md",
        "https://kiro.dev/llms.txt",
        "https://kiro.dev/docs/reference/cli-commands.md",
        "https://kiro.dev/docs/reference/slash-commands.md",
        "https://kiro.dev/docs/cli/headless.md",
        "https://kiro.dev/docs/cli/acp.md",
        "https://kiro.dev/docs/cli/setup.md",
        "https://kiro.dev/docs/cli/chat/session-management.md",
        "https://kiro.dev/docs/cli/chat/manage-prompts.md",
        "https://kiro.dev/docs/cli/chat/images.md",
        "https://kiro.dev/docs/cli/chat/git-aware-selection.md",
        "https://kiro.dev/docs/cli/experimental/delegate.md",
        "https://kiro.dev/docs/cli/experimental/knowledge-management.md",
        "https://kiro.dev/docs/cli/v3/new-features.md",
        "https://kiro.dev/docs/mcp.md",
        "https://kiro.dev/docs/hooks.md",
        "https://kiro.dev/docs/steering.md",
        "https://kiro.dev/docs/skills.md",
        "https://kiro.dev/docs/powers.md",
        "https://kiro.dev/docs/custom-agents.md",
        "https://kiro.dev/docs/custom-agents/subagents.md",
        "https://kiro.dev/docs/permissions.md",
        "https://kiro.dev/docs/checkpoints.md",
        "https://kiro.dev/docs/specs/plan.md",
        "https://kiro.dev/docs/cloud-sessions.md",
        "https://kiro.dev/docs/tools.md",
        "https://kiro.dev/docs/tools/web.md",
        "https://kiro.dev/docs/models.md",
        "https://kiro.dev/docs/models/effort.md",
        "https://kiro.dev/docs/billing.md",
        "https://kiro.dev/docs/getting-started/installation.md",
        "https://kiro.dev/docs/getting-started/authentication.md",
        "https://kiro.dev/docs/web/memory.md",
        "https://raw.githubusercontent.com/kirodotdev/Kiro/main/README.md"
      ]
    },
    {
      "id": "junie-cli",
      "name": "Junie",
      "vendor": "JetBrains",
      "homepage": "https://junie.jetbrains.com/",
      "repo": "https://github.com/JetBrains/junie",
      "sources": [
        "https://junie.jetbrains.com/docs/junie-cli.html",
        "https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html",
        "https://junie.jetbrains.com/docs/junie-cli-hooks.html",
        "https://junie.jetbrains.com/docs/custom-slash-commands.html",
        "https://junie.jetbrains.com/docs/agent-skills.html",
        "https://junie.jetbrains.com/docs/junie-cli-extensions.html",
        "https://junie.jetbrains.com/docs/junie-cli-subagents.html",
        "https://junie.jetbrains.com/docs/guidelines-and-memory.html",
        "https://junie.jetbrains.com/docs/junie-cli-plan-mode.html",
        "https://junie.jetbrains.com/docs/junie-cli-worktrees.html",
        "https://junie.jetbrains.com/docs/junie-headless.html",
        "https://junie.jetbrains.com/docs/parameters.html",
        "https://junie.jetbrains.com/docs/slash-commands.html",
        "https://junie.jetbrains.com/docs/junie-cli-model-selection.html",
        "https://junie.jetbrains.com/docs/byok.html",
        "https://junie.jetbrains.com/docs/custom-llm-ollama.html",
        "https://junie.jetbrains.com/docs/custom-llm-models.html",
        "https://junie.jetbrains.com/docs/custom-proxies.html",
        "https://junie.jetbrains.com/docs/junie-cli-jetbrains-ide-integration.html",
        "https://junie.jetbrains.com/docs/junie-cli-acp.html",
        "https://junie.jetbrains.com/docs/junie-cli-configuration.html",
        "https://junie.jetbrains.com/docs/junie-on-github.html",
        "https://junie.jetbrains.com/docs/basic-workflow.html",
        "https://junie.jetbrains.com/docs/junie-cli-eap.html",
        "https://junie.jetbrains.com/docs/action-allowlist-junie-cli.html",
        "https://junie.jetbrains.com/docs/junie-local.html",
        "https://raw.githubusercontent.com/JetBrains/junie/main/README.md",
        "https://raw.githubusercontent.com/JetBrains/junie/main/LICENSE.md"
      ]
    },
    {
      "id": "mistral-vibe",
      "name": "Mistral Vibe",
      "vendor": "Mistral AI",
      "homepage": "https://docs.mistral.ai/vibe/code/overview",
      "repo": "https://github.com/mistralai/mistral-vibe",
      "sources": [
        "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/README.md",
        "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/CHANGELOG.md",
        "https://raw.githubusercontent.com/mistralai/mistral-vibe/main/docs/acp-setup.md",
        "https://docs.mistral.ai/vibe/code/overview",
        "https://docs.mistral.ai/vibe/code/cli/install-setup",
        "https://docs.mistral.ai/vibe/code/cli/work-with-cli",
        "https://docs.mistral.ai/vibe/code/cli/commands-shortcuts",
        "https://docs.mistral.ai/vibe/code/cli/agents",
        "https://docs.mistral.ai/vibe/code/cli/skills",
        "https://docs.mistral.ai/vibe/code/cli/mcp-servers",
        "https://docs.mistral.ai/vibe/code/cli/connectors",
        "https://docs.mistral.ai/vibe/code/cli/configuration",
        "https://docs.mistral.ai/vibe/code/cli/api-keys-profiles",
        "https://docs.mistral.ai/vibe/code/cli/offline-models",
        "https://docs.mistral.ai/vibe/code/cli/teleport-cli-web",
        "https://docs.mistral.ai/vibe/code/safety-approvals-permissions"
      ]
    },
    {
      "id": "warp-agent-cli",
      "name": "Warp Agent CLI",
      "vendor": "Warp",
      "homepage": "https://docs.warp.dev/agents/cli/",
      "repo": "https://github.com/warpdotdev/warp",
      "sources": [
        "https://docs.warp.dev/agents/cli.md",
        "https://docs.warp.dev/agents/cli/quickstart.md",
        "https://docs.warp.dev/agents/cli/reference.md",
        "https://docs.warp.dev/agents/cli/configuration.md",
        "https://docs.warp.dev/agents/cli/agent-conversations.md",
        "https://docs.warp.dev/agents/cli/permissions-and-profiles.md",
        "https://docs.warp.dev/agents/cli/models-and-usage.md",
        "https://docs.warp.dev/agents/cli/input-and-shell-commands.md",
        "https://docs.warp.dev/agents/cli/cloud-and-orchestration.md",
        "https://docs.warp.dev/agents/capabilities/skills.md",
        "https://docs.warp.dev/agents/capabilities/web-search.md",
        "https://docs.warp.dev/agents/agent-memory.md",
        "https://docs.warp.dev/agents/inference/custom-inference-endpoint.md",
        "https://docs.warp.dev/agents/inference/model-choice.md",
        "https://docs.warp.dev/agents/local-agents/agent-context/urls-as-context.md",
        "https://docs.warp.dev/support-and-community/plans-and-billing/plans-pricing-refunds.md",
        "https://docs.warp.dev/getting-started/migrate-to-warp/migrate-to-warp-from-vs-code-terminal.md",
        "https://raw.githubusercontent.com/warpdotdev/warp/master/README.md",
        "https://raw.githubusercontent.com/warpdotdev/warp/master/crates/warp_tui/Cargo.toml"
      ]
    }
  ],
  "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."
    }
  ]
}
