Read-only. Local. Private. Chat LandMarks never modifies your Copilot session, and nothing ever leaves your machine.
What it does
GitHub Copilot Chat is great for the current question — but a long session becomes a wall of scrollback.
The prompt you want is 40 turns up, the diff you need is buried in a tool call, and there's no way to mark
"this one mattered."
Chat LandMarks reads Copilot's own on-disk session transcript and renders a parallel, navigable view beside
it — so you can scan the whole conversation at a glance, bookmark the turns that matter, see exactly what
each prompt changed, and get an AI summary of any stretch, all without scrolling endlessly or touching your
real chat.
Screenshots
 The companion beside native Copilot Chat |
 Per-turn code changes and AI explanations |
 Bookmarked turns and filtering |
 Turn Groups and Contents rail |
 Navigating multiple groups |
 Detailed in-app settings |
Features
- 📖 Conversation reader — auto-follows your current Copilot session and renders every turn as a
collapsible "cloud box." Collapsed by default (prompt only, truncated with
…); expand for the full prompt
and Copilot's answer with safe Markdown, code blocks, inline action chips (edited / tool / reference) in
order, and reasoning behind a toggle.
- 🔖 Bookmarks + Contents rail — one click stars a turn (with an optional name); a session-ordered
Contents rail acts as a table of contents you can click to jump to and highlight any turn. Rename or delete
on hover.
- 🔍 Filter bar — text search across prompt, answer, and label with match highlighting, plus a
★ Bookmarked-only toggle. Facets compose.
- 📝 Code changes — see the exact edits each prompt produced, reconstructed read-only from the transcript
and grouped per turn.
- 💡 Explain — an AI summary of what a turn did, produced only through VS Code's Language Model API
(the same trust boundary as your existing Copilot — no new keys, no external calls). Choose a turn-by-turn
or an overall explanation.
- 🗂️ Turn Groups — save a span of contiguous turns as a "group" that behaves like a super-turn: bookmark
it, explain it as a whole, and navigate it from a split-view Contents pane.
- ⚙️ In-app settings — a Copilot-styled settings page (opened from a gear in the corner) that gathers
every preference in one place: behavior toggles, which sections an Explain includes, tone dials that shape
how it reads, and a whole-theme color-contrast control (low → extra high).
- 🔄 Liveness & friendly degrade — new turns appear automatically, preserving your expand state and scroll
position (with a "New turns ↓" pill); calm banners explain any unknown or newer transcript format, always
reassuring you the view is read-only.
Requirements
- VS Code
1.90.0 or newer.
- GitHub Copilot Chat installed and in use — Chat LandMarks reads its local session transcripts, so you
need at least one Copilot Chat session for there to be anything to show.
- The Explain feature uses VS Code's Language Model API, which needs a model provider such as GitHub
Copilot.
Install
You don't need to build anything — just install the packaged .vsix.
- Download
chat-landmarks-<version>.vsix from the
latest release.
- In VS Code, open the Command Palette (
Cmd/Ctrl + Shift + P) → Extensions: Install from VSIX… and pick
the file. (Or use the Extensions view ⋯ menu → Install from VSIX….)
- Reload if prompted.
Chat LandMarks is distributed as a VSIX through GitHub Releases — it isn't on the VS Code Marketplace (yet).
Usage
Open the companion any of these ways:
- Click the Chat LandMarks icon in the Activity Bar, then Open Companion.
- Click the 🔖 Chat LandMarks item in the status bar (bottom-right).
- Run Chat LandMarks: Open Companion from the Command Palette.
The companion opens beside your editor and immediately follows your active Copilot Chat session. From there:
click a turn to expand it, hover to bookmark, use the Contents rail to jump around, group a span of turns, and
open the gear for settings.
Build from source
npm install
npm test # Vitest — 208 unit tests across the deep modules
npm run typecheck # tsc --noEmit
npm run build # bundle to dist/ with esbuild
npm run package # build the shareable .vsix with vsce
Press F5 ("Run Chat LandMarks") to launch an Extension Development Host, then open the companion from the
Activity Bar icon, the status-bar item, or Chat LandMarks: Open Companion.
Architecture
Deep, pure, unit-tested modules (with no vscode dependency) do the real work; thin glue wires them to
VS Code:
| Module |
Responsibility |
src/transcript/ |
Replays Copilot's .jsonl append-log into a stable Session model — the one place that knows Copilot's on-disk schema. |
src/response/ |
Maps Copilot response parts into ordered answer segments, action chips, reasoning, and changed files. |
src/codechanges/ |
Reconstructs per-turn diffs from the transcript. |
src/explain/ |
Builds the grounded context + instructions sent to the Language Model API. |
src/bookmarks/, src/filter/, src/session/ |
Bookmark store, filter engine, and current-session heuristic. |
src/host/, src/webview/, src/extension.ts |
Filesystem access, the Markdown renderer + webview client, and activation / messaging. |
Pure modules are covered by Vitest; the VS Code glue is validated live in the Extension Development Host.
Releasing
Releases are automated by .github/workflows/release.yml. Pushing a version
tag builds the .vsix from a clean checkout, runs the checks, and attaches it to a new GitHub Release:
npm version patch # or minor / major — bumps package.json and creates a vX.Y.Z commit + tag
git push --follow-tags # pushes the commit and tag → triggers the workflow
Privacy
Everything is local and read-only. Chat LandMarks reads local Copilot session files and writes only local
preference/bookmark files in VS Code's storage. AI explanations go through VS Code's Language Model API — your
existing Copilot trust boundary. There is no telemetry, and nothing is sent to any third party.
Roadmap
- A full split-view layout mode — a persistent table-of-contents column (all prompts, bookmarks
highlighted) beside the conversation.
License
MIT © Advaith Giridhar