dsh-clipboard-history
English | 中文
一个 DeepSeek Harness(dsh) 插件:在后台监测系统剪贴板,保存多条剪贴内容的可调用历史记录。
功能
- 监测剪贴板:在后台轮询系统剪贴板(macOS 用
pbpaste、Linux 用xclip、
Windows 用 PowerShell),把每一次文本变化记录进持久化历史文件。
- 持久化:历史保存在
$DSH_HOME/clipboard-history.json,重启后不丢失。 - 为 agent 暴露五个工具:
| 工具 | 用途 |
|---|---|
clipboard_list | 列出最近的历史条目(id、时间、大小、预览)。 |
clipboard_get | 按 id 取回某一条的完整文本。 |
clipboard_current | 立即读取当前剪贴板内容。 |
clipboard_copy | 把文本写入系统剪贴板并记入历史。 |
clipboard_clear | 清空历史(不影响当前系统剪贴板)。 |
安装
# dsh 的插件管理依赖 pnpm(缺失时先通过 corepack 启用)
corepack enable
# 从 npm 安装(发布后)
dsh plugin --profile web add dsh-clipboard-history
# 或从本地目录安装
dsh plugin --profile web add file:/绝对路径/dsh-clipboard-history然后重启 web 应用(dsh web)以加载新的 host 插件。
dsh plugin 命令会把参数转发给 profile 目录内的 pnpm,并自动对账 dsh.profile.bundles:由于本包声明了 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },它会被加入 profile 的 patch 层栈。
配置
编辑 profile 的 cordis.patch.yml 里对应的行(或 bundle 插入的 config 块)即可调参:
- id: clipboard-history
config:
pollIntervalMs: 700 # 剪贴板轮询间隔(毫秒)
maxHistory: 200 # 最多保留的条目数
maxEntryChars: 50000 # 单条最多存储的字符数
previewChars: 160 # clipboard_list 中预览的长度
historyFile: clipboard-history.json # 相对 DSH home 的路径
poll: true # 设为 false 可关闭后台监测说明与限制
- 仅支持文本。图片 / 文件剪贴板会被忽略(读取为空文本)。
- macOS 为主要目标平台;Linux 需要
xclip,Windows 使用 PowerShell。 - 插件运行在 host 进程中,因此无需原生插件即可访问当前登录用户的剪贴板。