CLI vs Chat

Three ways to use AI for development -- two terminal CLIs and IDE chat. Same plugins power all of them.

Claude Code

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).

Invocation
claude
> /dx-plan
Copilot

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).

Invocation
copilot-cli
> /dx-plan
> @DxPrReviewer review this PR
VS Code

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).

How to access
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.

Comparison

The Full Picture

Three interfaces, one plugin system.

FeatureClaude CodeCopilot CLIVS Code Chat
InterfaceTerminalTerminalIDE chat panel
KAI pluginsNativeNativeAgent Plugins (1.110+)
Skills78 via /dx-*78 via /dx-*38 of 78 (via settings)
Agents13 (plugin agents/)25 (.github/agents/)25 (.github/agents/)
MCP servers.mcp.json + plugin.mcp.json + plugin.vscode/mcp.json
Hooks18 events + prompt hooks8 events, multi-plugin merge (v1.0.11+)Preview (agent-scoped)
SubagentsWorktree isolationNesting allowedNested (1.113+, opt-in)
context: forkSkill → subagentSession fork (v1.0.11+)Ignored
MonorepoPlugin systemCWD → git root walk (v1.0.11+)Workspace folders
MemoryPersistent across sessionsSession-onlySession-only
ModelsAnthropic onlyClaude, GPT, GeminiClaude, GPT, Gemini
Context window1M tokens128K-1M (model-dependent)128K-1M (model-dependent)
AuthAnthropic API / MaxGitHub subscriptionGitHub subscription
Best forFull workflows, automationFull workflows, multi-modelVisual 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.

Same

What's Shared Across All Three

Write once, discovered by all three platforms.

FeatureClaude CodeCopilot CLIVS Code Chat
Rules (.claude/rules/)paths: (native)applyTo: (env var)paths: (settings)
Agents (.github/agents/)NativeNative
Skills (SKILL.md)Plugin auto-discoverPlugin auto-discovervia settings path
MCP Servers.mcp.json + plugin.mcp.json + plugin.vscode/mcp.json
CLAUDE.mdNative + nested + @importRead (flat only)Optional (chat.useClaudeMdFile)
Plugin manifestSame fileSame fileSame file (1.110+)
Different

What's Different

Each tool has unique strengths.

FeatureClaude CodeCopilot CLIVS Code Chat
Agents source13 (plugin agents/)25 (.github/agents/)25 (.github/agents/)
Parallel agentsWorktrees (isolated)/fleet + /tasks
MemoryPersistent (MEMORY.md)Session-onlySession-only
Context window1M tokens128K-1M (model-dependent)128K-1M (model-dependent)
Model choiceAnthropic onlyMulti (Claude, GPT, Gemini)Multi (Claude, GPT, Gemini)
Cloud delegation/delegate, & prefix
LSP / Diagnostics/lsp, .lsp.jsonNative
File editingTerminal diffsTerminal diffsInline in editor
Env vars config.claude/settings.local.json~/.bashrcVS Code settings
PricingPay-per-token / MaxGitHub subscriptionGitHub subscription
Skills

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

No changes needed

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

Degraded

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:

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:

.vscode/settings.json
"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 FieldClaude CodeCopilot CLIVS Code Chat
name, descriptionYesYesYes
argument-hintYesYesYes
disable-model-invocationYesYesYes
context: forkRuns in subagentIgnored (#1169)Ignored
agent: <name>Routes to agentIgnoredIgnored
$ARGUMENTS / $1YesYesYes
Supporting files (scripts/)YesYesYes
Agents

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 FieldClaude CodeCopilot CLIVS Code Chat
name, descriptionfilename-basedRequiredRequired
tools:Read, Glob, Bashread, edit, searchcodebase, editFiles, runCommands
model:Alias (sonnet, opus)Full name or arrayFull name or array
agents:Subagent allowlistNested subagents (1.113+)
handoffs:Parsed, not executedInteractive buttons
mcp-servers: (inline)Uses .mcp.jsonYAML in frontmatterYAML in frontmatter
memory:project/user/localIgnoredIgnored
isolation: worktreeYesIgnored
Max body sizeNo limit30,000 chars30,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.

Guidance

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.

Full power

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.

Visual

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
Recommended
Docs

Official Documentation

KAI by Dragan Filipovic