[FEATURE] Desktop: make text in plugin panes selectable and copyable (drag + Cmd+C)
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
In the desktop app's Code tab, text that a plugin draws in a Pane can't be selected. Dragging the mouse over a pane's Markdown or Text highlights nothing, and Cmd+C copies nothing. The transcript beside it selects and copies normally.
A plugin can't work around this. The only elements a pane can draw are the engine's own (Box, Text, Markdown, Code, …), and none of them takes a prop that makes its text selectable. A Client module draws through the same elements. The closest a plugin can get is a Copy button that calls $.ui.copy with the whole text, which can't copy one line or one sentence.
Panes are where plugins put text people want to reuse: summaries, notes, generated commands, links. Today the only way to get part of that text out is to retype it.
Proposed Solution
On the desktop surface, make text in plugin panes selectable with the mouse and the keyboard, as transcript text already is:
- Drag to select within a pane's
Text,MarkdownandCode. Double-click selects a word, triple-click a line. Cmd+C(Ctrl+Con Windows) copies the selection, using the same clipboard path as the transcript.- Keep
Button,InputandSelectbehaving as controls, so a click presses rather than selects.
If it shouldn't be the default for every pane, an opt-in prop such as selectable on Text, Markdown and Code would also solve it.
Alternative Solutions
- A Copy button calling
$.ui.copy. Works, but copies all or nothing. (catch-me-up adds one for this reason.) - The fullscreen terminal. Its in-app selection reaches pane text, but its rules belong to the terminal and don't apply to the desktop pane. #99116 shows the terminal problem going the other way: a drag that starts in the transcript spills into a docked pane.
Priority
High - Significant impact on productivity
Feature Category
Developer tools/SDK
Use Case Example
- Install a plugin with a pane that shows text, such as
catch-me-up, which keeps a live summary of the session. - Open a Code-tab session in the desktop app. The pane shows the summary.
- Drag across one bullet in the pane, press
Cmd+C, and paste it into a ticket or a message.
Expected: that bullet is on the clipboard.
Today: nothing is highlighted, nothing is copied.
Additional Context
- Claude desktop app 2.19675.1, Claude Code 2.1.295, macOS 26.6.2.
$.ui.selection()is documented as reading selections only in the fullscreen terminal ("fullscreen off, -p, a remote surface" answerundefined). This request is about the desktop surface.- Related, terminal only: #99116 (selection spills into a docked pane), #99847 (a quick second click on a pane
Buttonselects its label). Copy/paste tracking issue: #81472.