chat-fork-map — GitHub Copilot plugin: what it does, how to install
Visualizes local GitHub Copilot conversation branches on a Canvas panel. Helps explore alternative solution paths from any checkpoint without losing previous context.
copilot plugin install chat-fork-map@awesome-copilotWhat chat-fork-map does
The extension displays a conversation tree as visual lanes in the side-panel Canvas. Common history stays in the parent lane while child lanes branch off from a selected checkpoint. You can pan, zoom, fit the map to the screen, and inspect prompts, responses, or expandable execution details.
Running it requires Copilot CLI or the Copilot App version 1.0.80 or newer with Canvas support. The plugin also needs local read permissions for event logs in $COPILOT_HOME/session-state (or ~/.copilot/session-state). Cloud and remote sessions are unsupported. Because it relies on the Node.js runtime and SDK bundled with Copilot, running npm install is not required.
Branching works only from fully completed turns, so active generations block fork creation. Forked child sessions run exclusively in the CLI, which means they do not appear in the Copilot App session list and must be resumed with copilot --resume=<session-id>. Session relationships are saved locally in artifacts/lineage-v1.json without syncing across machines.
What it helps with
- map branching conversation threads on a side-panel canvas
- branch off CLI sessions from completed turns without duplicating context
- track alternative implementation ideas from a single checkpoint
- inspect detailed execution steps and prompts across conversation lanes
Example prompts for the agent
- /fork-map
- Open the conversation fork map in Canvas
- Fork the latest completed turn into a CLI session
How to install chat-fork-map
Command from the source
copilot plugin install chat-fork-map@awesome-copilotStep by step, with commands for each platform: Claude Code plugins: marketplaces, installing, and building your own
Questions about chat-fork-map
How do you install chat-fork-map in GitHub Copilot?
Run copilot plugin install chat-fork-map@awesome-copilot in your terminal and reload your Copilot extensions.
What does chat-fork-map do?
It renders local Copilot conversation families in a side-panel canvas, keeping shared turns in parent lanes and generating CLI commands to continue child branches.
Can chat-fork-map track cloud Copilot sessions?
No, it works only with local sessions and reads native events.jsonl files stored in your local session directory.
Source text
SKILL.md · MIT
# Conversation Fork Map Conversation Fork Map is an experimental GitHub Copilot Canvas Extension for exploring and branching local Copilot conversations. It renders a conversation family as session lanes in a side-panel canvas. Shared history stays in the parent lane, child lanes begin at their fork checkpoint, and the current session is highlighted. From any completed turn, you can create a CLI-only child session and continue it with the generated `copilot --resume=<session-id>` command.  ## Features - View a complete conversation family without duplicating inherited turns. - Pan, zoom, fit, and navigate large conversation maps. - Inspect user prompts, Copilot responses, and expandable execution details. - Fork any completed turn from an available family session. - Track session names, summaries, availability, and live transcript updates. - Preserve missing sessions as tombstones instead of silently dropping lineage. ## Requirements - GitHub Copilot App / Copilot CLI **1.0.80 or newer** with Canvas support. - A local Copilot session. Cloud and remote sessions are not supported. - Read access to the local Copilot event logs under `$COPILOT_HOME/session-state` (or `~/.copilot/session-state` when `COPILOT_HOME` is not set). - The Canvas, metadata, local session listing, occupancy, and session fork capabilities supplied by the compatible Copilot runtime. The extension uses the Node.js runtime and Copilot SDK provided by Copilot. No `npm install` step is required. Installing from source with the included script also requires Git and PowerShell 7 (`pwsh`). ## Installation ### Install as an Agent Plugin Before marketplace approval, install directly from the public GitHub repository: ```powershell copilot plugin install jdneo/copilot-chat-map ``` Reload Copilot extensions after installation. ### Install from source ```powershell git clone https://github.com/jdneo/copilot-chat-map.git Set-Location copilot-chat-map pwsh -File .\scripts\install-user-extension.ps1 ``` The installer copies the extension to `$COPILOT_HOME/extensions/chat-fork-map`, or `~/.copilot/extensions/chat-fork-map` when `COPILOT_HOME` is not set. Running it again upgrades the implementation while preserving the current lineage index. ### Package layout - `plugin.json` is the Agent Plugins v1 manifest. - `com.github.copilot/extensions/chat-fork-map/` contains the packaged Canvas extension. - Root `extension.mjs` and `copilot-extension.json` keep direct extension installation compatible. - `extensions/chat-fork-map/extension.mjs` keeps compatibility with the current Awesome Copilot Canvas intake gate. ## Usage Open a local Copilot session, reload extensions, and run: ```text /fork-map ``` You can also ask Copilot to open the Conversation Fork Map. Select a completed turn, then choose the circular **+** on its right border (tooltip: **Fork to CLI**). After the child is created, run the displayed command in a terminal: ```text copilot --resume=<session-id> ``` ## Local data and privacy The extension reads each family member's native `events.jsonl` file without modifying it. It creates structured lineage only after the first successful fork and stores it locally at: ```text $COPILOT_HOME/extensions/chat-fork-map/artifacts/lineage-v1.json ``` The lineage index records session relationships and fork checkpoints, not copies of message content. The installer never writes to or removes files from Copilot's native `session-state` directory. ## Known limitations - Only local Copilot sessions are supported. - Forked children are CLI-only runtime sessions. They may not appear in the Copilot App session list, and the Canvas API cannot switch the App's Chat View to them. Continue a child with `copilot --resume=<session-id>`. - Only forks created through Conversation Fork Map are tracked. Existing branches created with `/fork` or other tools are not imported automatically. - Only completed turns can be used as fork checkpoints. Forking is disabled while the current session is processing or when another source session is in use. - The canvas is for visualization and branching; it does not provide chat, full-text search, session rename/delete, or lineage re-parenting. - Lineage is stored on the local machine and is not synchronized across devices. - Canvas/session RPCs and the local `events.jsonl` format are experimental compatibility surfaces and may require updates in future Copilot releases. ## Development Run the test suite with: ```powershell node --test ``` ## License Licensed under the [MIT License](LICENSE).
© jdneo · MIT · jdneo/copilot-chat-map