anomalyco / anomalyco/opencode
[FEATURE]: Expose messages.copy through the slash-command surface
@kommander is already working on this.
Since Aug 30, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
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
The TUI currently has two copy actions:
messages.copycopies the last assistant message and is available through<leader>y/ the command palette.session.copycopies the full session transcript and owns/copy.
I found this a little surprising. I first tried /copy expecting the latest assistant response, and only later found Copy last assistant message in the palette.
It also seems inconsistent with several other TUI actions, where the keybind and slash-command surfaces map to the same operation:
/compact <-> Ctrl+X C
/editor <-> Ctrl+X E
/export <-> Ctrl+X X
/models <-> Ctrl+X M
/new <-> Ctrl+X N
/undo <-> Ctrl+X U
??? <-> Ctrl+X Y (Copy last assistant message)
/copy <-> (Copy session transcript)
Was keeping /copy mapped to the full transcript while messages.copy has no slash command an intentional UX decision?
There are a few possible directions:
- expose the existing action as
/copy-messageor/copy-last - make
/copycopy the latest response and move the transcript action to/copy-session - use a picker / indexed form for older responses
Related approaches have already been proposed in #30548 (message picker) and #34044 (/copy N). This issue is narrower: I'd first like to clarify what the intended slash-command mapping for the already-existing messages.copy action should be.
Related: #26240, #27967, #30562.
I'm happy to implement whichever direction the team prefers once the command semantics are agreed on.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.