CLI vs Chat
Three ways to use AI for development -- two terminal CLIs and IDE chat. Same plugins power all of them.
Claude Code CLI
Terminal-based AI development tool from Anthropic.
Claude Code
Terminal-based. You type /dx-plan, it executes. Full subagent architecture,
hooks, persistent memory, worktree isolation. Anthropic API (pay-per-token or Max subscription).
claude > /dx-plan
GitHub Copilot CLI
GitHub's terminal AI tool -- same skills, different runtime.
Copilot CLI
Also terminal-based. Same /dx-plan skills plus @DxPlanExecutor agent
invocation. GitHub subscription. Multi-model support (Claude, GPT, Gemini).
copilot-cli > /dx-plan > @DxPrReviewer review this PR
VS Code Copilot Chat (Agent Mode)
IDE-integrated AI that edits files, runs terminal commands, and iterates on errors -- all inside VS Code.
What It Is
The AI chat panel built into VS Code. In Agent Mode, it can autonomously edit files, run terminal commands, and iterate until a task is complete. It uses VS Code’s language server for deep code understanding (symbols, references, diagnostics).
VS Code → Chat panel → select “Agent” mode
vs Copilot CLI
Chat panel = visual, integrated with VS Code UI, accesses editor context (open files, selections, diagnostics).
Copilot CLI = terminal-based, supports plugins/skills/hooks/MCP natively, sessions persist independently.
You can start a Copilot CLI session from the Chat panel and hand off conversations between them.
File Discovery -- Three Platforms
VS Code Chat reads .github/agents/ natively, .claude/rules/ via chat.instructionsFilesLocations,
and skills via chat.agentSkillsLocations (defaults include .claude/skills/).
MCP servers come from .vscode/mcp.json.
Copilot CLI reads .github/agents/ natively, .claude/rules/ via COPILOT_CUSTOM_INSTRUCTIONS_DIRS env var,
and plugin skills automatically.
Claude Code reads everything from .claude/ natively plus plugin agents, skills, hooks, and MCP servers.
The Full Picture
Three interfaces, one plugin system.
| Feature | Claude Code | Copilot CLI | VS Code Chat |
|---|---|---|---|
| Interface | Terminal | Terminal | IDE chat panel |
| KAI plugins | Native | Native | Agent Plugins (1.110+) |
| Skills | 78 via /dx-* | 78 via /dx-* | 38 of 78 (via settings) |
| Agents | 13 (plugin agents/) | 25 (.github/agents/) | 25 (.github/agents/) |
| MCP servers | .mcp.json + plugin | .mcp.json + plugin | .vscode/mcp.json |
| Hooks | 18 events + prompt hooks | 8 events, multi-plugin merge (v1.0.11+) | Preview (agent-scoped) |
| Subagents | Worktree isolation | Nesting allowed | Nested (1.113+, opt-in) |
| context: fork | Skill → subagent | Session fork (v1.0.11+) | Ignored |
| Monorepo | Plugin system | CWD → git root walk (v1.0.11+) | Workspace folders |
| Memory | Persistent across sessions | Session-only | Session-only |
| Models | Anthropic only | Claude, GPT, Gemini | Claude, GPT, Gemini |
| Context window | 1M tokens | 128K-1M (model-dependent) | 128K-1M (model-dependent) |
| Auth | Anthropic API / Max | GitHub subscription | GitHub subscription |
| Best for | Full workflows, automation | Full workflows, multi-model | Visual edits, exploration |
CLI Sessions Inside VS Code
You can start a Copilot CLI session from the VS Code Chat panel (Session Target → “Copilot CLI”). This gives you CLI features (skills, hooks, plugins) with the visual convenience of the Chat panel. Sessions persist even when VS Code closes. You can also hand off a Chat conversation to a CLI session.
What's Shared Across All Three
Write once, discovered by all three platforms.
| Feature | Claude Code | Copilot CLI | VS Code Chat |
|---|---|---|---|
| Rules (.claude/rules/) | paths: (native) | applyTo: (env var) | paths: (settings) |
| Agents (.github/agents/) | — | Native | Native |
| Skills (SKILL.md) | Plugin auto-discover | Plugin auto-discover | via settings path |
| MCP Servers | .mcp.json + plugin | .mcp.json + plugin | .vscode/mcp.json |
| CLAUDE.md | Native + nested + @import | Read (flat only) | Optional (chat.useClaudeMdFile) |
| Plugin manifest | Same file | Same file | Same file (1.110+) |
What's Different
Each tool has unique strengths.
| Feature | Claude Code | Copilot CLI | VS Code Chat |
|---|---|---|---|
| Agents source | 13 (plugin agents/) | 25 (.github/agents/) | 25 (.github/agents/) |
| Parallel agents | Worktrees (isolated) | /fleet + /tasks | — |
| Memory | Persistent (MEMORY.md) | Session-only | Session-only |
| Context window | 1M tokens | 128K-1M (model-dependent) | 128K-1M (model-dependent) |
| Model choice | Anthropic only | Multi (Claude, GPT, Gemini) | Multi (Claude, GPT, Gemini) |
| Cloud delegation | — | /delegate, & prefix | — |
| LSP / Diagnostics | — | /lsp, .lsp.json | Native |
| File editing | Terminal diffs | Terminal diffs | Inline in editor |
| Env vars config | .claude/settings.local.json | ~/.bashrc | VS Code settings |
| Pricing | Pay-per-token / Max | GitHub subscription | GitHub subscription |
VS Code Chat -- Skill Compatibility
Most skills work. Some need context:fork or agent: dispatch (Claude Code-only features).
Works Well
Skills that use codebase reading, file editing, and terminal commands.
MCP-dependent skills work if servers are mirrored in .vscode/mcp.json.
Best candidates: dx-help, dx-doctor, dx-plan,
dx-req, dx-step,
dx-step-verify, aem-component, aem-doctor
With MCP: dx-req, dx-bug-triage,
dx-pr-commit, dx-pr-review, dx-ticket-analyze
Limited
Skills using context: fork + agent: (subagent dispatch) or
disable-model-invocation (coordinator pattern).
VS Code Chat ignores these fields — skills load but can’t orchestrate subagents.
Coordinators: dx-agent-all, dx-req,
dx-step-all, dx-bug-all, dx-figma-all
AEM (need inspector agent): aem-snapshot, aem-verify,
aem-editorial-guide, aem-doc-gen, aem-fe-verify
Setup -- Marketplace Install (Recommended)
Since VS Code 1.110, you can install plugins directly from the marketplace — the same
marketplace.json used by Claude Code and Copilot CLI. Add to your VS Code
User Settings:
"chat.plugins.marketplaces": [ "easingthemes/dx-aem-flow" ]
Then open Extensions → search @agentPlugins → install dx-core and dx-aem.
This gives you the full plugin experience: agents, skills, hooks, MCP servers, instructions, and prompts.
See the VS Code Chat setup guide for details.
Alternative -- Manual Settings
If you prefer not to use the marketplace, add to .vscode/settings.json to expose
plugin skills directly:
"chat.agentSkillsLocations": {
".claude/skills": true,
"dx-aem-flow/dx/plugins/dx-core/skills": true,
"dx-aem-flow/dx/plugins/dx-aem/skills": true
},
"chat.subagents.allowInvocationsFromSubagents": true The subagent setting (VS Code 1.113+) lets coordinator agents like DxAgentAll dispatch subagents
programmatically. Without it, nested orchestration is disabled.
/dx-sync configures this automatically for consumer projects.
This approach only exposes skills — agents, hooks, and MCP servers from the plugin are not loaded.
| Frontmatter Field | Claude Code | Copilot CLI | VS Code Chat |
|---|---|---|---|
name, description | Yes | Yes | Yes |
argument-hint | Yes | Yes | Yes |
disable-model-invocation | Yes | Yes | Yes |
context: fork | Runs in subagent | Ignored (#1169) | Ignored |
agent: <name> | Routes to agent | Ignored | Ignored |
$ARGUMENTS / $1 | Yes | Yes | Yes |
Supporting files (scripts/) | Yes | Yes | Yes |
Agent Frontmatter (.agent.md)
Agent files are shared across Copilot CLI and VS Code Chat. Claude Code uses a different format in plugin agents/.
| Frontmatter Field | Claude Code | Copilot CLI | VS Code Chat |
|---|---|---|---|
name, description | filename-based | Required | Required |
tools: | Read, Glob, Bash | read, edit, search | codebase, editFiles, runCommands |
model: | Alias (sonnet, opus) | Full name or array | Full name or array |
agents: | — | Subagent allowlist | Nested subagents (1.113+) |
handoffs: | — | Parsed, not executed | Interactive buttons |
mcp-servers: (inline) | Uses .mcp.json | YAML in frontmatter | YAML in frontmatter |
memory: | project/user/local | Ignored | Ignored |
isolation: worktree | Yes | Ignored | — |
Max body size | No limit | 30,000 chars | 30,000 chars |
Cross-Platform Gotchas
Tool names differ: Copilot CLI uses read, edit, search. VS Code Chat uses codebase, editFiles, runCommands.
Agent templates include both — unrecognized names are ignored on each platform.
Spelling: Claude Code uses user-invocable, Copilot CLI uses user-invokable (different spelling!).
MCP config: Claude Code / Copilot CLI read .mcp.json (mcpServers:).
VS Code Chat reads .vscode/mcp.json (servers:). Different file, different root key.
When to Use Which
They coexist -- use whichever fits the task.
Key Insight
Claude Code and Copilot CLI are nearly identical in capability — both are terminal-based, both run the same 76 skills, both load plugins and MCP servers. The real difference is between terminal CLIs (Claude Code + Copilot CLI) and VS Code Chat (IDE-integrated, visual, different file discovery).
Terminal CLIs (Claude Code / Copilot CLI)
- All 76 skills via /dx-* commands
- Full plugin system (hooks, MCP, agents)
- Subagent orchestration
- CI/CD pipeline automation (headless -p mode)
- Persistent sessions across VS Code restarts
- Deep multi-step workflows (plan → execute → verify → PR)
Choose Claude Code for worktree isolation + persistent memory. Choose Copilot CLI for multi-model support + GitHub subscription.
VS Code Chat (Agent Mode)
- IDE-native — edits files in the editor
- Deep code understanding via language server
- Visual diff review, inline suggestions
- Attach files, selections, diagnostics as context
- Great for focused editing tasks and exploration
- Can start CLI sessions from the Chat panel
Best for visual code editing, exploring unfamiliar code, and quick inline fixes.
Use Together
- CLI for structured workflows (/dx-req → /dx-plan → /dx-step-all)
- Chat for “fix this function”, “explain this file”
- CLI for PR review, ticket analysis, AEM verification
- Chat for visual diff review and inline edits
- Hand off Chat conversations → CLI sessions
- Same plugins power all three