OpenCode CLI 无法复制后会提示 “Copied to clipboard”,但实际按 Ctrl+V / Ctrl+Shift+V 粘贴出来的还是旧内容,或者根本粘贴不出任何东西 问题现象
OpenCode CLI 在终端里选中文本后会提示 “Copied to clipboard”,但实际按 Ctrl+V / Ctrl+Shift+V 粘贴出来的还是旧内容,或者根本粘贴不出任何东西。
根本原因
OpenCode 本身不自带剪贴板实现,它依赖系统的外部工具来写入剪贴板:
- X11 环境:需要
xclip或xsel - Wayland 环境:需要
wl-clipboard - Headless(无图形界面):需要
xvfb
如果系统里没装对应工具,OpenCode 就无法把选中的内容真正写进系统剪贴板。
排查与解决步骤
1. 先确认你的桌面协议:
echo$XDG_SESSION_TYPE- 输出
x11→ 安装 X11 工具 - 输出
wayland→ 安装 Wayland 工具
2. 安装对应的剪贴板工具:
X11 环境(大多数发行版):
sudoaptinstall-yxclip xselWayland 环境(如较新的 Ubuntu / Fedora 默认):
sudoaptinstall-ywl-clipboard两套都装也可以,OpenCode 会自动匹配可用工具。
注意:linux.do 帖子里写的
ws-clipboard是笔误,正确包名是wl-clipboard。
3. 重启 OpenCode,再测试选中复制。
若仍不生效的临时方案
在终端层面手动复制,绕开 OpenCode 的剪贴板调用:
- 复制:按住
Shift再用鼠标左键选中文字,然后按Ctrl+Shift+C - 粘贴:
Ctrl+Shift+V
这个组合键是终端层面的原生复制粘贴,不经过 OpenCode 的剪贴板桥接。
参考来源
- OpenCode 官方 Troubleshooting 文档明确列出了 Linux 复制/粘贴需要安装剪贴板工具的要求
- GitHub issue #4283、#2413 都有用户反馈同样的"显示 copied 但实际没复制"问题
- linux.do 社区帖和 CSDN 博客都验证了安装
xclip / xsel / wl-clipboard后问题解决
没有apt权限的容器环境中,如何复制opencode里面内容
✅ OpenCode TUI(终端版)复制内容(无apt、无xclip)
OpenCode复制逻辑:优先调用xclip/xsel;找不到就自动走OSC52终端转义,直接把文本传到你本地电脑剪贴板,服务器不需要装任何剪贴板工具
方式1:快捷键复制(推荐)
OpenCode 默认 leader 键是Ctrl+X
- 先按
Ctrl+X(松开) - 再按
Y→ 复制当前AI整条回复>
对应配置:
messages_copy: ["<leader>y"]
方式2:斜杠命令
在OpenCode输入框输入:
/copy回车,复制全部对话。
⚠️ 关键坑:如果你在tmux里面跑 opencode,tmux 默认拦截OSC52,复制不会生效!
tmux修复(普通用户,不用root)
# 写入 ~/.tmux.conf cat >> ~/.tmux.conf <<'EOF' set -g set-clipboard on set-option -g allow-passthrough on EOF tmux source ~/.tmux.conf重启 opencode 再复制即可。
方式3:测试你的终端支不支持OSC52
在SSH终端直接运行这行,成功的话你的本地剪贴板会有test osc52 ok:
printf "\e]52;c;%s\a" "$(printf 'test osc52 ok' | base64 -w0)"✅ 成功:直接用上面Ctrl+X Y//copy
❌ 失败(剪贴板没内容):你的本地终端不支持OSC52,走下面保底方案
保底方案(OSC52无效时,万能,不需要剪贴板)
直接让OpenCode把对话输出写入服务器文件:
把本次完整对话全部输出保存到 ./opencode_log.txt执行完成后,服务器生成opencode_log.txt
然后本地用 sftp / scp 下载这个文件到本机,打开复制。
# 本地电脑(不是服务器)下载文件示例 scp user@服务器ip:~/opencode_log.txt .终端OSC52支持清单
✅ 支持:iTerm2、Windows Terminal、WezTerm、Kitty、Alacritty
❌ 不支持:旧Putty、部分老旧终端