Sync sessions across desktop app / VS Code extension / CLI on the same machine (Codex parity)

Resolved 💬 2 comments Opened Jun 8, 2026 by jrcho Closed Jun 11, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When using multiple Claude Code clients on a single machine — the Claude desktop app's "Code" tab, the VS Code "Claude Code" extension, and the terminal claude CLI — sessions are not shared between them.

  • A live conversation in one client is not mirrored in real time in another.
  • After a session ends, it does not appear in the other client's session list either.
  • jsonl files are written to the same ~/.claude/projects/<id>/ directory, but each client only enumerates sessions it created. Different clients also write different version fields to the jsonl (e.g. 2.1.138 from the desktop app vs 2.1.128 / 2.1.163 from other binaries), suggesting independent code paths with no shared session manager.

Workflow impact: I cannot switch clients mid-task. If I start a session in the desktop app's Code tab and want to continue in the VS Code extension to have the editor view side-by-side, I have to manually write a handoff note and start a fresh session in the other client, losing context. This recurs daily.

Comparison: Codex handles this transparently — all three clients on the same machine share a single live session and a single session catalog. The Claude Code gap is visible to anyone using both tools.

Environment

  • Windows 11
  • Claude desktop app: 1.11187.4.0
  • VS Code extension: anthropic.claude-code 2.1.163 (also 2.1.168 installed)
  • Repro: open the same project folder in both clients, start a session in one, check the other.

Proposed Solution

On the same machine, the three Claude Code clients should share:

  1. A single live-session channel — opening the same session in another client mirrors input and output in real time, or at minimum surfaces "this session is currently owned by client X" and offers to attach.
  2. A single session catalog — every finished session is listed in every client and resumable from any of them, regardless of which client created it.

Possible implementations:

  • A local broker process (similar to Codex's approach) that all clients connect to over IPC, owning canonical session state.
  • Or a shared session-index in ~/.claude/ that every client reads, with a lock protocol marking which client owns each live session.

User-facing behavior: same machine, same project → same session list, regardless of which client opened the chat.

Alternative Solutions

Remote Control: Solves cross-machine sync but is the wrong tool for same-machine multi-client. Setup is heavier than needed for two windows on the same desktop.

Manual handoff notes (current workaround): I write a claude-handoff.ko.md summarizing state and start a fresh session in the other client. Slow, lossy, requires remembering to do it.

Picking one client per task (current workaround): Forces an early choice that should not be required. I might start in the desktop app for a quick chat, then realize I need the editor view side-by-side, but I can't move the session over.

How Codex solves this: Codex on the same machine runs a local broker that all clients (terminal CLI, VS Code extension, desktop app Code tab) attach to. Same session, same catalog, live mirrored across all three. The model is well-proven — nothing exotic.

Priority

High - Significant impact on productivity

Feature Category

Developer tools/SDK

Use Case Example

  1. I'm reviewing a feature design in the Claude desktop app's Code tab — the chat-style UI is nice for back-and-forth.
  2. I realize I need to edit the actual source files alongside the conversation. The desktop app has no editor view.
  3. I open VS Code with the same project folder so I can split the editor next to a chat panel.
  4. Today: The VS Code Claude Code extension does not see the desktop-app session. I have to manually summarize state into a handoff note and start a brand new session, losing context.
  5. With this feature: The same session is already there in the VS Code extension's list (or even live in its chat panel). I keep working without breaking flow.

This scenario recurs daily — it's not an edge case.

Additional Context

_No response_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗