用途 copy-chat 用于把一次 Claude Code 会话整理成便于阅读和粘贴的纯文本并放入剪贴板。复制结果只保留对话本身:谁说了什么、各条消息的时间、以及对话被压缩的那一行,不包含工具调用及其输出。
主要能力
- 对话记录格式为“名字(时间):内容”,名字取用户 Claude 账号名称的首词,否则显示为“Me”。
- 时间使用本机时区,首次出现消息和跨天时标注日期。
- 图片以 [image] 表示;子代理、工具输出、提醒和摘要均不纳入。
- 脚本执行后输出一行 JSON,如 {"ok": true, "mine": N, "claude": N, "compacts": N},表示已复制,并给出用户消息数、Claude 消息数和压缩次数。
- 若剪贴板不可用(无剪贴板工具或被拒绝),可加 --print 参数重新运行,把第一行之后的文本放入代码块交给用户自行复制。
- 若返回“nothing to copy yet”或“the conversation file was not found”,则以一行说明。
使用方式 该模组包含 .claude-plugin 与 hooks 目录,Claude Code 会在每个新会话中自动加载,提示框上方的“Copy chat”按钮是主要使用途径。若以技能方式调用,需在技能所在目录运行(python3,否则 python):
python3 "<this skill's folder>/hooks/thread.py" "${CLAUDE_SESSION_ID}" "<the folder this conversation started in>"
第一个参数是本次会话 id;若传入的是未替换的字面文本 ${CLAUDE_SESSION_ID},则改用 --latest 取该目录下最新的会话,并提示同目录存在多个会话时可能选中另一个。第二个参数是会话启动时的工作目录(取自环境信息),而非之后切换到的目录。
按钮在无 Python 环境下复制消息但不含时间;若安装了本集合的其他模组或 Smart PreCompact,按钮与其位于同一行。
关闭与移除 关闭:claude plugin disable copy-chat@skills-dir。移除:npx skills remove copy-chat -g。若新会话中看不到按钮,说明当前 Claude Code 版本尚不支持模组,此时用自然语言提出请求仍可完成复制。
限制 脚本在剪贴板失败时才输出全文,否则不应把整段对话粘贴到回复中;--latest 在同目录多会话时可能选错;无 Python 时按钮复制结果不含时间。