dsh-clipboard-history: A recallable clipboard history for DSH agents

前言

系统剪贴板只保留最后一条内容。你在终端里复制了一段日志,接着又复制了一段报错,前一段就没了——对智能体开发者来说,这意味着让 DSH 帮你处理「刚才那个复制过的东西」时,它只能拿到最新的一条。

dsh-clipboard-history 解决的就是这个问题:它在后台监控系统剪贴板,把每一次文本变化记进一个持久化文件,再以工具的形式交给智能体,随时可以按 id 召回。

下面介绍这个插件的功能、安装方式和配置项。

这是什么

dsh-clipboard-history 是一个 DeepSeek Harness(DSH)插件,作者是 kuangre123,当前版本 0.1.0,许可证为 MIT。它的定位一句话可以讲完:监控系统剪贴板并保留可召回的多条历史记录。

工作方式分两部分:

1、后台轮询系统剪贴板——macOS 上轮询 pbpaste,Linux 用 xclip,Windows 用 PowerShell——每次检测到文本变化就记录下来。

2、历史写入持久化文件,路径为 $DSH_HOME/clipboard-history.json,跨重启保留。

插件运行在宿主进程中,不需要原生插件就能访问登录用户的粘贴板。

它向智能体暴露的五个工具

安装后,智能体会获得以下工具:

工具 作用
clipboard_list 列出最近历史条目(id、时间、大小、预览)
clipboard_get 按 id 召回单条完整文本
clipboard_current 读取当前实时剪贴板内容
clipboard_copy 将文本写入系统剪贴板并记录
clipboard_clear 清除存储的历史(保留实时剪贴板)

clipboard_list 只返回预览(默认 160 字符),确认目标条目后用 clipboard_get 取完整内容,这是召回一条历史的标准路径。

安装与启用

先做环境准备。dsh 插件管理器依赖 pnpm,缺失时通过 corepack 启用:

corepack enable

然后安装插件。安装命令由 README 给出:

# from npm (once published)
dsh plugin --profile web add dsh-clipboard-history

# from a local checkout
dsh plugin --profile web add file:/absolute/path/to/dsh-clipboard-history

需要说明的是,README 中 npm 安装命令标注了 “once published”,该包当前是否已在 npm 上发布无法确认;如果 npm 安装不可用,从本地 checkout 安装是稳妥路径。

dsh plugin 命令会转发到 profile 目录内的 pnpm,并自动整理 dsh.profile.bundles。这个包在 package.json 里声明了:

"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }

因此安装后会自动加入 profile 的 patch 层栈,不需要手动登记。

安装完成后,重启 web 应用让新的宿主插件生效:

dsh web

配置

编辑 profile 的 cordis.patch.yml(或 bundle 插入的 config 块),可以调整轮询与存储行为:

- id: clipboard-history
  config:
    pollIntervalMs: 700   # clipboard poll interval in ms
    maxHistory: 200       # max stored entries
    maxEntryChars: 50000  # max stored characters per entry
    previewChars: 160     # preview length in clipboard_list
    historyFile: clipboard-history.json  # relative to the DSH home
    poll: true            # false disables background monitoring

几个默认值的含义:

  • pollIntervalMs: 700:剪贴板轮询间隔 700 毫秒。
  • maxHistory: 200:最多保留 200 条历史。
  • maxEntryChars: 50000:单条最多存储 50000 字符。
  • historyFile:历史文件名,相对于 DSH home 目录。
  • poll: false 时关闭后台监控。

环境要求与依赖

  • Node >= 18。
  • peerDependencies 为 @deepseek-ai/dsh-tools ^0.1.0-rc.6@deepseek-ai/cordis ^0.4.1 之上的 ^4.0.1(以 package.json 为准:@deepseek-ai/cordis ^4.0.1)。
  • macOS 是主要目标平台;Linux 需要安装 xclip,Windows 使用 PowerShell。

适用场景与注意

适合的场景:经常在终端和编辑器之间搬运文本、希望智能体能拿到「之前复制过」的内容、或者需要把会话中的文本写回剪贴板继续手工操作。

使用前有几点要知道:

1、只支持文本。图片和文件剪贴板会被忽略,读取为空文本。

2、插件以当前 dsh 进程的权限运行,可以直接访问登录用户的粘贴板。这意味着它能读到你在系统里复制的所有文本——安装任何第三方插件前,都应先检查源码和许可证。这个插件是 MIT 许可,源码在 GitHub 上可查。

3、历史有上限约束:默认 200 条、单条 50000 字符,超过后按配置裁剪,重要内容建议及时用 clipboard_get 取出。

结尾

dsh-clipboard-history 做的事很小但很实:把一次性剪贴板变成可召回的历史,让 DSH 智能体能拿到「之前复制过」的内容。如果你在 macOS 上日常使用 DSH,值得一试。

  • 社区插件目录页:https://www.skillhub.cn/plugins/kuangre123/dsh-clipboard-history(该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系)
  • GitHub 仓库:https://github.com/kuangre123/dsh-clipboard-history
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye