[FEATURE] Desktop: make text in plugin panes selectable and copyable (drag + Cmd+C)

Status Open
Reported on v2.1.295
Maintainer reply None cached
Activity 0 comments · opened Oct 9, 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

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, Markdown and Code. Double-click selects a word, triple-click a line.
  • Cmd+C (Ctrl+C on Windows) copies the selection, using the same clipboard path as the transcript.
  • Keep Button, Input and Select behaving 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

  1. Install a plugin with a pane that shows text, such as catch-me-up, which keeps a live summary of the session.
  2. Open a Code-tab session in the desktop app. The pane shows the summary.
  3. 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" answer undefined). 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 Button selects its label). Copy/paste tracking issue: #81472.

View original on GitHub ↗