copilot-migration
Skill0 starsChanged 5 months agoMITView on GitHub
Extract, document, and continue GitHub Copilot Chat / agent-mode conversations when moving to Claude Code. Use when the user wants to recover, export, archive, or document their past GitHub Copilot conversations, migrate from Copilot to Claude Code, or pick up (continue) a previous Copilot conversation. Works across VS Code, VS Code Insiders, Cursor, VSCodium and Windsurf on Linux, macOS, Windows, and remote vscode-server / SSH / WSL hosts.
In this repository7 other files it gives its agents.
- antigravity-migrationSkill
- audio-normalizeSkill
- meeting-syncSkill
- meeting-to-documentationSkill
- meeting-transcribeSkill
- spark-promptSkill
- translate-docsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 48
If --list finds nothing: read references/storage-and-formats.md, check the candidate paths it printed to stderr, and ask the user which …
- Distinctive: line 69
Read its full transcript. Cross-reference against the current repo state (git log, the files it touched) to separate what actually landed …
- Very specific: line 72
Write <out-dir>/CONTINUE_HERE.md: where it left off (exact stop point), what landed vs.
- Distinctive: line 79
No network, no extra packages (standard library only).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Copilot → Claude Code migration
Bring a user's GitHub Copilot conversation history into Claude Code in three steps: extract the raw conversations from disk → document them as readable Markdown plus an index → continue the most recent one.
GitHub Copilot stores chat history locally in VS Code's storage (two different on-disk formats, see the reference). Nothing is fetched from the network.
When to use
- "extract / recover / export / back up my Copilot conversations or chat history"
- "I'm migrating from GitHub Copilot to Claude Code"
- "document / summarize what I did with Copilot"
- "continue my last Copilot conversation" / "pick up where Copilot left off"
What's bundled (resolve paths from this skill's directory)
scripts/extract_copilot.py— standalone, no-dependency extractor. Discovers Copilot storage across editors/OSes, decodes both on-disk formats, dedupes sessions resumed across windows, and writes one faithful Markdown transcript per conversation + amanifest.json. Run it — do not re-implement the parsing.references/storage-and-formats.md— exactly where Copilot stores chats per OS/editor and how the two formats work. Read it if discovery finds nothing, or to explain the mechanics to the user.
Procedure
1 — Extract (deterministic, read-only)
List first, then extract:
python3 <skill>/scripts/extract_copilot.py --list # discover + preview
python3 <skill>/scripts/extract_copilot.py --out <out-dir> # write transcripts- Pick
<out-dir>: if the project has adocs/directory, usedocs/copilot-history/; otherwise./copilot-history/. - To scope to one project, add
--filter <substring>(matches the workspace path or conversation content). Use--no-reasoningto drop the model's "thinking". - If
--listfinds nothing: readreferences/storage-and-formats.md, check the candidate paths it printed to stderr, and ask the user which editor/host they used Copilot in (desktop vs. remote SSH/WSL/Cursor change the location). - Output:
<out-dir>/transcripts/*.md(faithful, verbatim) +manifest.json. Skimmanifest.json(title/date/turns/files per conversation) to decide what matters — don't blindly re-read every large transcript.
2 — Document (you write these)
In <out-dir>:
sessions/<same-filename>.md— a tight summary per conversation: title, date, goal, what was done, files changed, key decisions, outcome, open threads. Read the full transcript for large/important ones; the manifest + first/last turns suffice for trivial ones. If there are many, fan out subagents (one per transcript).README.md— an index: a 2–3 sentence intro, a chronological table (date | linked conversation | one-line outcome), and a grouping by theme.
3 — Continue the most recent conversation
This is usually the user's real goal.
- The latest conversation is the last row of
manifest.json— it is sorted by most-recent activity (last_ts), so the final row is the conversation the user used most recently (each row also carriesfirst_tsif you want start-date order). - Read its full transcript. Cross-reference against the current repo state
(
git log, the files it touched) to separate what actually landed from what was only discussed. - Write
<out-dir>/CONTINUE_HERE.md: where it left off (exact stop point), what landed vs. discussed, verified vs. unverified, open problems, and a prioritized next-steps checklist referencing concrete files/commands. - Then offer to do the next step.
Notes & guarantees
- The extractor is read-only on Copilot storage and writes only under
--out. No network, no extra packages (standard library only). Safe to run anywhere. - A conversation resumed across several editor windows is saved as multiple files sharing one sessionId (later windows replay earlier turns); the script merges and dedupes turns by prompt content, keeping the most complete copy.
- The division of labor is deliberate: the script does the exact, verbatim extraction (no hallucination risk); you do the summarizing and judgement.
- This skill is distributable: it has no hard-coded paths or project assumptions —
discovery and
--filterare fully general.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

