[FEATURE] Plugins: allow noSelect on plugin Box/Text so decoration is not copied

Status Open
Reported on v2.1.296
Maintainer reply None cached
Activity 1 comment · opened Oct 12, 2026

Feature request: let plugins mark cells as not selectable (noSelect on plugin Box / Text)

Claude Code version: 2.1.296 (macOS)

What the plugin does

The af-QoL plugin draws rails, caps and an indent around each user prompt and each assistant answer. These are normal cells.

The problem

A mouse drag-select copies the plugin's decoration together with the text. One copied prompt row comes out like this:

                               ┃ open the tracker on the side ┃

The engine trims trailing spaces, but the leading spaces and the rail glyphs stay in the clipboard.

What the engine already has

The engine has a "do not copy" mark and uses it for its own margins (for example the ⏺ in front of an answer).

What blocks a plugin today

  1. A plugin Box with noSelect fails: Box prop "noSelect" is not allowed.
  2. A plugin can read a selection ($.ui.selection()), but it cannot set one or filter what is copied.
  3. The copy goes from the screen to the clipboard; no plugin hook sees it.

Request

Allow noSelect (or an equivalent prop) on plugin Box and Text, so a plugin can mark its decoration as not part of a copy.

Why it matters

Any plugin that draws a frame, rail or gutter makes copies dirty today. Our workaround is a copy button on each message, but a mouse drag still copies the decoration.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗