Fork any GitHub Copilot conversation at any point to branch off into a new direction without polluting the original thread.
Don't want to install the extension? The entire implementation is a single file under 100 lines — feel free to just read the source.
Why
Keep conversations clean. Branch off for side questions without diluting a focused thread you've built up with valuable context.
Parallel experimentation. Spin up multiple conversations from the same starting point — try different prompts or strategies and compare results.
How It Works
Open the Command Palette (Cmd+Shift+P)
Run "Chat: Fork Conversation from Here"
Pick which message to fork from (most recent shown first)
The forked conversation appears in your sessions list, titled Fork N: <title>
The full conversation state is preserved in the fork — tool calls, tool results, thinking blocks, inline references, and all message content. The forked conversation is an exact copy of the original up to the selected message.
Limitations
Session persistence. When deleting a forked session it's required to do a window reload for them to disappear from the sidebar. This is a limitation of VS Code's import API, not something the extension can work around.
Title mismatch. The Export API doesn't include the LLM-generated conversation title, so the fork title falls back to the first message text.
Looking Forward
Ideally, VS Code would natively support forking in the chat UI — a one-click fork button on every message with proper session persistence. This extension bridges the gap using public commands and the filesystem until that arrives.