[FEATURE] Allow enabling a channel on an already-running session (--channels is start-time only)
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
--channels must be supplied when a session starts. There is no way to enable a channel on a session that is already running, which means an integration can never connect to the session a user already has open. Their only remedy is to quit and relaunch Claude Code with the right flag.
For a background or companion app, this is the difference between working and not working.
I build Claudictive, an Overwolf in-game overlay that lets developers keep talking to their Claude Code session while they are in a game. The ordering is fixed by how people actually work: they open their editor and start Claude Code first, then later launch a game. By the time our app has any reason to connect, every session on the machine was started without --channels. We cannot ask users to restart Claude Code, because restarting is precisely what they were trying to avoid by using an overlay, and a resumed session is not the same live process they were mid-task in.
This is distinct from the existing issues:
- #44380 (channel messages do not wake idle sessions) is about sessions that already have a channel attached.
- #82571 (no way to allow third-party channel plugins) is about the allowlist gate. Even with that resolved, the start-time-only constraint still blocks this use case.
Proposed Solution
Any one of these would solve it. Listed roughly easiest to hardest:
- A slash command,
/channels connect <plugin>, mirroring the existing/remote-controlpattern. Remote Control can already be enabled mid-session on a session that did not start with it, so the precedent for "turn this on now" exists. - A
channelsEnabled-style setting that makes eligible channels connectable on demand without being active by default. - A documented way to request connection from outside the session, so a local companion app can ask an already-running session to attach a channel, with the user confirming in the TUI.
Option 1 seems closest to what already exists and keeps the user firmly in control: nothing attaches without them typing the command.
Additional Context
- CLI 2.1.220, Windows 11.
- Docs consulted: Channels, Channels reference, Remote Control.
- Worth noting the asymmetry: Remote Control supports
/remote-controlmid-session, and an auto-connect toggle in/config. Channels, which is the programmatic equivalent, is start-time only. - Today we work around the absence of any attach mechanism by spawning
claude -p --resume <id>per turn and reading the session's JSONL transcript for output. That works, but the read half depends on a format the docs state is internal and may break on any release (see #53516).