[FEATURE] Let local tools send messages into Claude desktop Code sessions (channels / send deep link)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 30, 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

There is no way for a local tool to send a message into an existing Claude Code session in the desktop app (Code tab). The only input path is the app's own UI.

For the CLI this was solved by channels (see #24947), but channels need the --channels flag at startup, and the desktop app launches its Claude Code processes with its own fixed flags, so desktop sessions can't use them.

What I tried on Windows:

  • claude://code/continue?session=local_… opens the right session, but it always restores and focuses the main window, and it can't carry a prompt.
  • The session-management tools (send_message etc.) are only reachable from inside a session.
  • Driving the UI from outside is fragile: posted key events don't reach the prompt box, and when the window is minimized the accessibility tree stops updating, so a tool can't even confirm which session is open before pressing Enter.

Proposed Solution

Let desktop Code sessions receive messages from local tools the user has authorized. Either of these would work:

  1. Channels support in the desktop app: a per-session or global setting to enable a channel plugin/server, the equivalent of --channels.
  2. A deep link or local command that queues a message for an existing session without raising the window, e.g. claude://code/send?session=local_…&q=…, with a one-time confirmation the first time a given app uses it.

Alternative Solutions

  • Scripting the desktop UI with clipboard + UI Automation: it works, but it pops the Claude window to the front for every message and breaks whenever the UI changes.
  • Running claude --resume <id> -p "…" in a separate process: this forks the conversation away from the desktop session that is already open.

Priority

Medium - Would be very helpful

Feature Category

Developer tools/SDK

Use Case Example

I built a small always-on-top widget for Windows that stands in for the Claude window while it's minimized. It lists my desktop Code sessions (from the session JSONL files and claude-code-sessions/*.json), shows whether each is working or waiting for me, and reads the latest reply aloud. When Claude asks me something, I want to type a short answer in the widget and have it go into that session without the full app jumping to the front.

Additional Context

It would also help to expose each session's live status (idle / running / needs input), which the sidebar already shows. Today external tools have to guess it from the transcript.

View original on GitHub ↗