Repository navigation
Description
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Summary
Let me select a snippet of a message in the Desktop chat transcript, attach a comment to it, and send the pair — the way Claude Code and ChatGPT do it. Selecting text should surface a small inline affordance ("Reply"); choosing it opens a compact composer showing the snippet as the quoted context, and what I send arrives in the session as a quote block plus my comment.
Why this matters
Quoting a specific sentence is the main way to give precise feedback on a long answer. Right now that costs six steps: drag-select, copy, click the composer, paste, hand-wrap it in > markers, then type the comment. The quote is also easy to lose — pasted text is indistinguishable from something I typed myself, so the model has no structural signal about which part of its previous turn I am reacting to.
What already exists (so this is a small delta)
This asks for a new interaction, not new rendering:
- Selection inside the Desktop transcript already works. [FEATURE]: Copy selection as markdown in Desktop app #54002 is about the copy semantics of such a selection (rendered text vs markdown source), which only makes sense because selections exist.
- [FEATURE]: Pin messages and selected text in the Desktop chat #55195 asks to pin messages or a selected range. That is about retrieval — jumping back to it later.
- Neither covers replying to a selection, which is the interaction requested here.
- The TUI client already exposes prompt insertion (
client.tui.appendPrompt({ body: { text } }), used by third-party plugins such asopencode-quick-reply). So the "put text into the composer" half of this already has a proven shape; the missing half is the selection event and the inline affordance.
Proposed behavior
- While text inside a user or assistant message is selected, show a small affordance anchored near the selection (Claude Code places it just below-right of the selection). It must not appear for selections outside messages.
- Activating it opens a compact inline composer anchored to the selection. The selected text appears as quoted context above the input, truncated with an ellipsis if long.
- Sending inserts the following into the session and the transcript:
- a markdown blockquote of the selected text (trimmed, with markdown structure preserved where the selection aligns to block boundaries — same partial-block question [FEATURE]: Copy selection as markdown in Desktop app #54002 raises), followed by
- the typed comment as normal message text.
- Escape or clicking away dismisses without sending. Plain copy must keep working untouched — the affordance is additive, never a replacement for
Cmd/Ctrl+C. - Selections spanning multiple messages should either be clamped to the message that contains the selection anchor or rejected with the affordance simply not shown. Silently producing a malformed quote would be worse than doing nothing.
Optional, for plugin parity
If the built-in interaction is not wanted, exposing the same surface to plugins would let the ecosystem build variants. The three pieces that are missing today:
- an event fired when a transcript selection settles, carrying
sessionID,messageID,partID, and the selected range plus its text, so a plugin can decide what to do without scraping the DOM; - a slot anchored to that selection (existing slots such as
session.composer.topandsession.panelare fixed-position, so a plugin cannot currently render something that follows the selection); - a Desktop-side equivalent of the TUI's prompt insertion, so a plugin can put the quote into the composer.
With those three, this feature and several neighbours (#54002's markdown copy, #55195's pinning) become plugin-implementable without further core work.
Scope
Desktop (and Web, for parity). The TUI is a separate problem — terminal text selection belongs to the emulator, so a TUI equivalent would need its own design and is explicitly out of scope here.
Environment (for context)
- opencode version: 2.0.32
- Install/channel: Desktop app
- App: OpenCode Desktop 2.0.32
- OS: macOS (darwin arm64)
Activity
opencode-agent commentedon Oct 18, 2026
Thanks for the detailed write-up, @FlapPearLabs! I think this is a duplicate of #48664, which asks for the same thing in Desktop/Web: select text in a message, use an inline Quote action, and get the quoted text into the composer ready for your comment. Commenters there also ask for the quote + comment flow you describe.
Possible duplicates and closely related items, ordered from most to least likely:
>lines followed by the commentIf you'd like to add your use case or the details from your proposal (the anchored mini-composer, how selections across several messages are handled, plugin events/slots), #48664 or PR #55664 is the best place for them.
The bot will close this issue as a duplicate in 1 day unless you reply explaining how your request is different.
FlapPearLabs commentedon Oct 19, 2026
Closing as the duplicate it is. The request is already implemented in #55664 (submitted by someone else), and I've left my notes there instead of carrying a second thread.
opencode-agent commentedon Oct 19, 2026
Closing this as a duplicate of #48664, which asks for the same thing: select text in a Desktop/Web message, quote it into the composer and add a follow-up comment. Open PR #55664 implements it, with a Quote toolbar and a comment for each quote. We left this open for a day in case it was different, and haven't heard back.
Thanks again for the detailed proposal, @FlapPearLabs. If you'd like to share your ideas (the anchored mini-composer, how selections across several messages are handled, plugin selection events/slots), please add them on #48664 or PR #55664. If this turns out to be a different request, reply here and we can reopen it.