ai-tools

VS Code Copilot Customization vs Claude Code: 5 Primitives Compared (2026)

vybecodingBy Hiram Clark — vybecoding.aiAI-generated, human-edited
May 1, 20267 min readOfficial
VS Code Copilot Customization vs Claude Code: 5 Primitives Compared (2026)
VS Code Copilot Customization vs Claude Code: 5 Primitives Compared (2026) In April 2026, VS Code shipped a unified Chat Customizations editor that surfaces five customization primitives in one place: custom agents, agent skills, custom...

VS Code Copilot and Claude Code Converge on the Same Five AI Customization Primitives

In April 2026, Microsoft shipped a unified Chat Customizations editor inside Visual Studio Code that consolidates five AI customization primitives into a single interface: custom agents, agent skills, custom instructions, prompt files, and hooks. The release marks a significant moment in the developer tooling landscape — not because the features are novel, but because they are nearly identical to the customization architecture Anthropic independently built into Claude Code, mapping one-to-one across both platforms with different file paths and slightly different frontmatter field names.

The convergence is notable for the millions of developers who use both tools or are weighing one against the other. The practical implication is that a developer who masters the customization layer in one tool carries most of that knowledge directly into the other. The decision between platforms is now less about capability and more about which naming convention and directory structure fits a team's existing workflow. Our read: this is the first real sign that the AI coding tool market is converging on a shared abstraction layer — the vendor lock-in risk that teams feared a year ago is materially lower than it was.

The Five Primitives and Where They Live

The five primitives span both platforms as follows. Custom instructions, which define persistent project rules loaded at every session, live at .github/copilot-instructions.md or AGENTS.md on the VS Code Copilot side, and at CLAUDE.md or .claude/rules/.md on the Claude Code side. Prompt files — reusable templates invoked with a slash command — are stored at .github/prompts/.prompt.md in VS Code and at .claude/commands/.md or .claude/skills//SKILL.md in Claude Code. Custom agents, which are specialized personas with their own system prompts and restricted tool lists, are defined in .github/agents/.agent.md and .claude/agents/.md respectively. Agent skills, auto-loaded capability bundles that can include scripts and supporting files, follow an open standard from agentskills.io and use a SKILL.md entry point in a named directory under .github/skills/ or .claude/skills/. Finally, hooks — shell commands that fire at lifecycle events — are configured via .github/hooks/*.json in VS Code and the hooks key in .claude/settings.json in Claude Code.

One cross-compatibility detail carries practical weight: Microsoft has documented that VS Code Copilot also reads .claude/agents/, .claude/skills/, and CLAUDE.md for compatibility with Claude Code conventions. The reverse is not true — Claude Code does not currently read .github/copilot-instructions.md. Teams already using Claude Code conventions gain free Copilot compatibility without any migration work; teams built on Copilot conventions do not.

Custom Instructions: A Near-Tie With a Claude Edge

For custom instructions, VS Code Copilot's applyTo frontmatter field and Claude Code's paths field accomplish the same thing: scoping a rule file to a specific glob pattern so that it only loads when a matching file is in context. A Copilot instructions file scoped to API handlers might use applyTo: "src/api//*.ts", while the equivalent Claude Code rule uses a paths: list with the same glob.

The practical difference is that Claude Code pairs this system with an auto-memory mechanism — a file at ~/.claude/projects//memory/MEMORY.md that Claude itself writes and updates across sessions to persist observations about the project. Copilot has no equivalent. For long-running projects where accumulated context matters, the auto-memory loop is a substantive distinction. For teams that prefer to keep all instructions explicitly authored by humans, it is irrelevant.

Both tools read a CLAUDE.md at the repo root, which means a single shared file can serve as the authoritative rule source for an entire team regardless of which AI tool individual developers prefer.

Prompt Files: Single-File vs. Directory-Backed Templates

Both tools expose reusable prompt templates as slash commands. VS Code Copilot's .github/prompts/*.prompt.md format supports YAML frontmatter fields including agent, model, and tools overrides per prompt, giving teams granular control over which model and which tool permissions apply when a specific template runs. Prompts are single files.

Claude Code's equivalent evolved in late 2025 when Anthropic merged custom commands into the skills system. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both expose the same /deploy slash command. Skills are now recommended over standalone command files because a skill lives in a directory and can bundle supporting files alongside the main SKILL.md — templates, reference data, helper scripts. The disable-model-invocation: true frontmatter flag makes a skill behave like a pure prompt file that only activates when the user explicitly calls it, rather than being auto-loaded by Claude as a background capability.

For teams whose prompt templates are self-contained, both tools are equivalent. For teams whose templates depend on accompanying data files, Claude Code's directory-backed skill format is the cleaner solution.

Custom Agents: Identical Concept, Different Declarations

Custom agents — domain-specific personas that carry a fixed system prompt and an explicit list of permitted tools — work the same way in both platforms conceptually. A security reviewer agent configured to run in read-only mode, with access limited to code search and web fetch, prevents the AI from accidentally modifying files during an analysis session.

VS Code Copilot's agent frontmatter supports name, description, tools, model, handoffs, and an agents field for declaring subagents the persona can invoke. The handoffs field, which generates transition buttons in the chat UI for moving between agents, has no direct equivalent in Claude Code's current agent spec.

Claude Code agent files follow a similar structure under .claude/agents/.md but integrate with the platform's subagent dispatch system, which allows one agent to spawn and coordinate with other named agents programmatically.

Agent Skills: The Most Portable Primitive

Skills are the highest-value primitive for teams that use both tools. Both VS Code Copilot and Claude Code implement the agentskills.io open standard, meaning a SKILL.md written for one platform frequently works in the other when placed under the appropriate directory. The spec defines a standard frontmatter block and a markdown body that describes the skill's purpose, expected inputs, and behavior.

This portability matters as organizations standardize internal AI tooling. A security review skill, a database migration skill, or a code generation skill written once can be checked into a shared repository and made available to developers using either platform without maintaining duplicate definitions. Skills are the primitive most likely to become a durable investment as the AI tooling market continues consolidating around common abstractions. We've moved several internal review and generation skills between both platforms with minimal changes, and so far the portability claim holds — the main friction is remembering which directory to drop the folder into.

Hooks: Shell Commands at Lifecycle Events

Hooks are the lowest-level primitive and the one with the sharpest operational implications. Both platforms allow teams to fire arbitrary shell commands at defined lifecycle events — before a session starts, after a tool call completes, when Claude stops responding, or on other platform-specific triggers.

VS Code Copilot hooks are declared in .github/hooks/*.json files. Claude Code hooks live in the hooks key of .claude/settings.json, which supports both user-level settings at ~/.claude/settings.json and project-level settings at .claude/settings.json within the repo. The Claude Code hook system is closely integrated with the harness that executes automated behaviors — any instruction that begins "from now on when X happens, do Y" requires a hook because it is the harness executing the shell command, not the model remembering a preference.

The operational risk with hooks is the same on both platforms.

vybecoding

Written by Hiram Clark, Editor — vybecoding.ai

Published on May 1, 2026

TOPICS

#ai#developer-tools#copilot#claude-code#GitHub Copilot#VS Code#Claude Code#Agent Customizations