For GitHub Copilot CLI and local sessions in the GitHub Copilot App. Reviewed September 11, 2026, against current public documentation and Copilot CLI 1.0.83 release notes.
For an overview of customization options and supported clients, start with the Copilot customization cheat sheet.
You do not need to rename every Claude Code file to get started. Copilot already recognizes several repository-scoped Claude conventions. Preserve working assets, migrate the gaps, and check behavior before relying on them. File discovery does not guarantee identical tool names, permissions, model behavior, or script execution.
The migration does not need to be manual. After the initial configuration inspection in step 1 below, give Copilot this guide and the relevant configuration paths. Ask it to identify what can stay, propose necessary conversions, and apply changes after your approval. Have it flag unsupported behavior rather than silently substitute an approximation. Review the changes and verify behavior, particularly hooks and permissions.
Configuration scope: In this guide, repository-scoped refers to configuration associated with the project or working folder. The folder does not need to be a Git repository to use Copilot. User-scoped configuration lives in the local user's configuration directory and is available across working folders on that machine; it does not imply account synchronization.
Path convention: Paths are relative to the working folder unless prefixed with ~/, which denotes the local user's home directory. For example, ~/.copilot/ corresponds to $HOME\.copilot\ in Windows PowerShell or %USERPROFILE%\.copilot\ in Windows Command Prompt.
Actions:
- π’ Keep: No migration required.
- π‘ Keep/review: Location recognized; contents and behavior need review.
- π Adapt: Change the format or implementation.
- π΅ Move: Transfer selected configuration to a Copilot location.
- π΄ Migration gap: No confirmed equivalent.
Copilot-native destinations are optional when the existing repository-scoped location works.
| Claude Code asset | Action and Copilot target |
|---|---|
Repository-scoped CLAUDE.md, .claude/CLAUDE.md, and nested CLAUDE.md |
π’ Keep. CLI discovers these directly. No AGENTS.md copy or symlink is required. For new shared instructions, use AGENTS.md or .github/copilot-instructions.md. Relative @file imports work, but referenced files must stay within the repository; absolute and ~/ imports are not loaded. Instructions |
.claude/rules/**/*.md and CLAUDE.local.md |
π Adapt. Put scoped rules in .github/instructions/NAME.instructions.md, translating Claude's paths frontmatter to Copilot's applyTo globs. Inline needed imported guidance: *.instructions.md does not expand @file references. For user-specific, repository-scoped guidance, use .github/instructions/local.instructions.md with applyTo: "**" and gitignore that file when using Git. Keep private notes out of shared instructions. Instructions |
.claude/skills/NAME/SKILL.md |
π‘ Keep/review. This is a supported repository-scoped skill location. .github/skills/ and .agents/skills/ are alternatives. Ensure name and description frontmatter exist; review Claude-specific metadata, tool references, argument handling, and script dependencies. Skills |
.claude/commands/*.md |
π‘ Keep/review. CLI recognizes these single-file commands as an alternative to skills. If the body relies on Claude preprocessing such as !`command` or @file, make required shell execution and file reads explicit; discovery alone does not prove those steps ran. Use .github/skills/NAME/SKILL.md for workflows with supporting scripts. Command format; Skill scripts |
A custom .claude/prompts/ directory |
π Adapt. This is not the documented legacy .claude/commands/ convention. Package reusable workflows as skills. .github/prompts/*.prompt.md is a VS Code prompt-file target, not a CLI target. Copilot skills; Cheat sheet |
.claude/agents/*.md |
π‘ Keep/review. CLI discovers these agents; inside a Git repository it searches from the working directory up to the Git root. For Copilot-native definitions, use .github/agents/NAME.agent.md. Review frontmatter, model IDs, and tool restrictions rather than assuming all Claude agent settings transfer. Agent locations; Agents |
User-scoped configuration under ~/.claude/ |
π΅ Move. Transfer selected assets: user-scoped instructions go to ~/.copilot/copilot-instructions.md; skills and converted commands to ~/.copilot/skills/NAME/SKILL.md; agents to ~/.copilot/agents/NAME.agent.md. CLI no longer loads user-scoped Claude agents, skills, or commands automatically. Configuration; Release notes |
Hooks in .claude/settings.json or .claude/settings.local.json |
π‘ Keep/review. Retain supported hooks. CLI reads these repository-scoped files and accepts documented PascalCase events and nested matcher/hooks structures. Optional native target: .github/hooks/NAME.json with version: 1. User-scoped hooks belong in ~/.copilot/hooks/NAME.json. See the behavioral checks. Hooks; Compatibility |
Repository-scoped .mcp.json and user-scoped MCP definitions |
π‘ Keep/review. Retain repository-scoped configuration: CLI reads .mcp.json; .github/mcp.json is another supported repository-scoped location. Move selected user-scoped definitions to ~/.copilot/mcp-config.json or register them with /mcp add. Recheck transport, environment variables, authentication, and organization policy. Repository-scoped discovery requires folder trust. MCP |
Other .claude/settings*.json settings |
π Adapt. Do not copy settings wholesale. Only a shared repository-scoped subset is read; documented examples include companyAnnouncements, disableAllHooks, enabledPlugins, extraKnownMarketplaces, and hooks. Copilot targets are ~/.copilot/settings.json, .github/copilot/settings.json, and .github/copilot/settings.local.json (gitignore the local file when using Git). Re-establish permissions explicitly; do not assume Claude approvals transfer. Configuration |
Keep one authoritative copy of instructions where practical: Copilot combines applicable files without a general precedence order. Hooks from multiple configuration sources are combined too; remove migrated duplicates to avoid running them twice.
Agent and command duplicates can instead hide your edits: at the same directory level, .github/agents takes precedence over .claude/agents; a skill takes precedence over a command of the same name.
For hooks, verify the event, matcher, input/output JSON, tool names, working directory, environment variables, and blocking behavior. Do not mechanically rename PascalCase events to camelCase: that changes the payload format. Exercise both allowed and denied cases, plus errors and timeouts. Copilot's documented command-hook timeouts fall through to normal permission handling, even for preToolUse; do not assume a timeout blocks execution. Hooks reference
Claude's LLM-evaluated prompt and agent hooks are not equivalent to Copilot's session-start prompt hook, which submits text rather than evaluating a policy decision. Reimplement checks with Copilot command or HTTP hooks only where you can preserve the original decision semantics; otherwise record a π΄ Migration gap.
For skills using Claude-specific features such as context: fork, dynamic shell injection, or hook metadata, compare the implementation with Copilot's skill format. Use a Copilot custom agent when the workflow needs a separate execution context. Loading SKILL.md alone does not establish equivalent behavior.
- Inspect configuration before starting Copilot. Read inherited repository-scoped and user-scoped configuration in a text editor first, particularly hooks and MCP launch commands. Startup hooks and trusted MCP servers can execute before an in-session audit begins. Then use Copilot to plan approved changes. Preserve originals, use a migration branch when using Git, and do not copy credentials or session-history directories.
- Open the intended working folder. In CLI, start
copilotthere. For non-Git projects, start in the folder containing the configuration rather than assuming Git-style ancestor discovery. In the app, open the project folder; for Git repositories, choose the existing local checkout or a new worktree. Ensure required customization files and scripts exist in the working folder, especially untracked or gitignored files when using Git. App sessions - Confirm discovery in each client. In CLI, use
/instructions,/skills list,/agent, and/mcp list. Start a fresh session after changing instructions, agents, or hooks; skills also support/skills reload. In the app, use Customize for skills/MCP and the agent picker or/agent. Skills and MCP servers configured in the working folder or CLI are automatically available in the app. App customization - Run a small representative task. Confirm instructions apply, the intended workflow and agent are selected, MCP authentication works, and hooks preserve their intended controls. In app settings, additional instructions are under
Sessions > App instructionsorProjects > your project > Instructions. These are app-specific additions, not replacements for shared CLI configuration. See App instruction settings.
Use Sweekriti91's Claude-to-Copilot guide for detailed command and workflow comparisons. Prefer current GitHub documentation when mappings differ. For VS Code interoperability, consult the Cheat sheet rather than assuming every client reads the same files.