SDK-driven companion
The shape every open-source companion takes: a window of its own with an avatar, a chat box and a voice, talking to a model through a provider layer — for Claude, the Agent SDK, an ACP bridge or a headless claude -p run behind a text box. The Claude interface survey deferred it on one platform fact: the subscription was not permitted for any of those, so a driver of its own session paid API prices on every turn.
Why not: The platform fact moved, and the answer it moved to is still no. A subscription now covers the Agent SDK, a headless claude -p run and a third-party app out of its own usage limits — the separate monthly credit announced for those was paused on 15 June 2026, the day it would have taken effect, with Anthropic saying it will restate the plan before anything does, and an API key is pay-as-you-go as it always was. So the turns a companion takes are not billed beside the subscription; they are taken out of it, against the same limits the terminal's session is doing the work under. The rule the whole interface is built on is that no stage costs anything beyond the subscription already paid for the terminal: the persona is an output style, the voice is an engine on this machine, the pick is a birthday, and each stage was taken only where the terminal already exposed the hook for free. A window that chats beside the work on the work's own cap is the first piece of the interface the work pays for, and the basis it would pay on is one already announced as a split once and only postponed.
The second reason stands on its own. A session the companion drives is a second session: it holds none of the files, the diff or the conversation the terminal's session holds, so the character in the window would be a chatbot beside the work rather than the voice of it — and the voice of the work is the entire point of a persona in a coding tool. Both halves of what the window would have given are had without it: the face and the voice through the viewer as the stage, and a line typed at the character through chat into the session, which pushes it into the terminal's own session rather than opening another.