Threads for AI Chats (Preview)
Brainstorm on any line of your AI chat without cluttering the main session, then bring back only the conclusion.
Works with Claude Code and GitHub Copilot Chat in VS Code.
Preview. Tested on Windows with local folders. Not yet tested on macOS/Linux or in remote workspaces (SSH, WSL, Codespaces); with a remote folder, Copilot chats may not show. Copilot chats are read from VS Code's internal chat files, so a VS Code update can break reading them until the extension is updated. Not affiliated with Anthropic or GitHub.
How it works
Click Threads in the status bar. The Threads panel opens next to your chat and follows your chats live.
Open a read-only side thread in any of three ways:
- Hover a line of a reply in the panel and click 💬.
- In Copilot Chat, type
@threads and your question. The thread opens on the last reply, or on the paragraph you quote ("…"). It answers in the panel, and the chat only gets a one-line note.
- Select code in the editor, right-click → Open a side thread on this selection, and pick the chat it should know.
Ask whatever you want there: the thread knows the conversation, but it can only read files and look things up. It can't run, edit or write anything. Threads can branch from threads.
When you're done, click ⤴ Send conclusion. The thread sums itself up in at most 6 bullets, which go back to the chat it came from:
- Claude Code: added to your next message in that session (by a small hook). Nothing is sent by itself.
- Copilot: put into the Copilot chat input box (and the clipboard), for you to check and send.
⬇ Export turns a thread into a Markdown document, for a PR, a ticket or your notes.
Your main chat stays in charge. It is the only session that executes anything.
Claude Code and Copilot compared
|
Claude Code |
GitHub Copilot |
| Chats shown |
Read live from Claude Code's session files |
Read live from VS Code's chat session files |
| Side thread |
A real fork of the session: its full context, from the prompt cache |
Runs on a Copilot model with the chat as it was saved when you opened the thread (your messages, Copilot's replies, the tools it used). Copilot's hidden context (attached file contents, its instructions) isn't included. The thread can re-read files |
| Thread tools |
Read, Glob, Grep, WebSearch, WebFetch (setting) |
read_file, list_files, search_text, fetch_url, inside the workspace folder |
| Conclusion |
Added to your next message by the inbox hook |
Put into the chat input box for you to send |
| Keep warm |
Optional: keeps the pinned session's prompt cache alive while you're away |
Not needed |
| Cost |
Your Claude plan (or API key, if Claude Code uses one) |
Your Copilot plan; each model request (including each tool round) counts as a request |
Requirements
- VS Code 1.95 or later.
- For Claude Code chats: the Claude Code extension (or CLI), signed in. Nothing else: the inbox hook runs with VS Code's own runtime.
- For Copilot chats: GitHub Copilot signed in. The first thread asks you to allow this extension to use Copilot's models.
@threads is available where Copilot Chat accepts chat participants (Ask mode).
First use per project
- Claude Code: the first time you open Threads in a folder that has Claude Code sessions, it offers to add the inbox hook to that folder's
.claude/settings.json (or click Add the hook in the panel). Then start a new Claude Code session there (or reopen the current one).
- Copilot: nothing to set up.
- Threads: Get started shows a one-minute walkthrough.
Commands
| Command |
What it does |
| Threads: Open for this project |
Opens the Threads panel for the active editor's folder (the status-bar button does the same) |
| Threads: Open a side thread on this selection |
A thread on the selected code, with the chat you pick as context (also in the editor's right-click menu) |
| Threads: Install the Claude Code inbox hook in this project |
Adds the hook to .claude/settings.json after asking |
| Threads: Get started |
The walkthrough |
| Threads: Open in the Simple Browser / Copy this project's page URL |
The same page in a browser (it works only while this window is open) |
| Threads: Import data from the stand-alone Claude Threads app |
Copies pins, threads and inboxes from the earlier stand-alone app |
| Threads: Show the data folder |
Opens the folder with pins, threads, inboxes and the run log |
Settings
| Setting |
Default |
Meaning |
chatThreads.copilot.enabled |
true |
Show Copilot chats and allow threads on them |
chatThreads.copilot.model |
empty |
Copilot model for threads (id, family or name). Empty = the model the chat itself used. Each thread can also pick a model in its header |
chatThreads.copilot.maxToolRounds |
8 |
The most rounds of tool use per Copilot answer |
chatThreads.claude.path |
empty |
Claude Code CLI. Empty = the one in the Claude Code extension, else claude on PATH |
chatThreads.claude.threadTools |
read-only set |
Tools a Claude Code thread gets |
chatThreads.keepWarm.idleMinutes / maxHours |
50 / 4 |
Keep warm timing (Claude Code) |
chatThreads.nodePath |
empty |
Runtime for the inbox hook. Empty = VS Code's own (recommended) |
chatThreads.port |
0 |
Local server port. 0 = any free port |
Privacy and safety
- Everything stays on your machine. The page is served by the extension on
127.0.0.1 only. Every URL carries a random token made when the window starts, and requests from other sites or host names are refused.
- The extension keeps no copy of your chats. It stores pins, thread metadata, Copilot threads' own messages, the conclusions and a run log in VS Code's storage for the extension (Threads: Show the data folder).
- Threads are read-only. A Claude Code thread only gets the tools in
chatThreads.claude.threadTools. A Copilot thread's tools only read inside the workspace folder, plus fetching a web page.
| |