sakuraqqq/dsh-auto-paste
dsh-auto-paste
A DeepSeek Harness plugin that auto-saves large pasted text as attachment files
Install
npx @deepseek-ai/dsh plugin --profile web add dsh-auto-pasteRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-auto-paste)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from sakuraqqq/dsh-auto-paste, cleaned of badges and images.
dsh-auto-paste
A DeepSeek Harness plugin generated by
create-dsh-plugin(tool template) and extended with a web client paste listener. 由 create-dsh-plugin 生成并扩展的 DeepSeek Harness 插件:输入框大段粘贴自动存为附件文件。
Release / 发布状态
- npm:
[email protected](npm 页面)—— 已发布到官方源registry.npmjs.org,dist-tag: latest。安装:npm i dsh-auto-paste(或--save-exact锁版)。 - 源仓库:
https://github.com/sakuraqqq/dsh-auto-paste,tagv0.1.0。 - 许可:MIT(见下)。
- 同步提示:npm 发布后国内镜像(npmmirror)同步有几秒到几分钟延迟,以官方 registry 为准。
License / 许可
MIT License — Copyright (c) 2026 misakamaster。 本插件以 MIT 许可开源:可自由使用、修改、再分发(含商用),需保留版权声明与许可文本。详见 LICENSE。 反馈(bug/建议)欢迎提交:QQ 群测试反馈或直接联系作者。
What it does / 功能
-
Web 客户端粘贴钩子(主路径) —
dsh.client.platform: web。在输入框粘贴超过阈值(默认 500 字符)的文本时:- 客户端拦截粘贴事件,通过现有 connection RPC(
/api→ Typert gateway)调用宿主pasteStore/savePaste; - 宿主把文本写入当前会话工作区的
pastes/<时间戳>.txt; - 输入框里插入文件路径引用(如
[已保存大段粘贴为附件: pastes/20260815-103000.txt (1234 字符)]),消息里引用该路径,模型可读该文件。 - 保存失败时回退为普通粘贴(原始文本直接进输入框),不丢数据。
- 超过 1 MiB 的文本会被服务端拒绝(大小上限,防资源耗尽):报错并回退为普通粘贴,不落盘。
- 客户端拦截粘贴事件,通过现有 connection RPC(
-
save_paste 工具(纪律兜底) — 宿主同时注册
save_paste工具,模型在用户贴大段文字时可主动调用,把文本持久化为pastes/<时间戳>.txt并在回复中引用路径。建议在项目AGENTS.md加一行纪律:## dsh-auto-paste 纪律 用户粘贴大段文字(约 500 字符以上)时:若输入框钩子未拦截,主动调用 save_paste 工具 把文本存入 pastes/<时间戳>.txt,并在回复中引用该工作区相对路径,不要复述原文。
Install / 安装与激活
方式一:从 npm 安装(推荐)
npm i dsh-auto-paste # 最新版(dist-tag: latest);--save-exact 可锁版
npm i [email protected] # 或指定版本
# 在插件父目录执行,以包名注册到目标 profile:
dsh plugin --profile web add dsh-auto-paste
dsh --profile web # 重启 web profile,观察: [dsh-auto-paste] host ready ...
# 刷新浏览器页面后,控制台可见: [dsh-auto-paste] client paste listener ready (minChars=500)
方式二:本地目录安装(开发/调试)
# 在插件父目录(本仓库根)执行;相对路径锚定调用目录:
dsh plugin --profile web add ./dsh-auto-paste
dsh --profile web
改动插件后:pnpm install && pnpm run build(tsc → dist/),然后重启 dsh --profile web 并刷新页面。minChars 阈值在 cordis.patch.yml 的 row config 中调整。
Verification without an API key / 无 key 验证
dsh --profile web --dump-config | grep dsh-auto-paste # 配置层含本行
dsh plugin --profile headless add ./dsh-auto-paste
dsh --profile headless "run a probe" # host 半身加载;模型调用会 MISSING_CREDENTIAL
Manifest checklist / 清单自查
-
dsh.bundle.patch→./cordis.patch.yml(dsh 加载插件的硬性要求,缺失只会被当作普通依赖安装) -
dsh.client.platform: web+exports["./client"]→dist/client.js -
exports["./typert"]→dist/typert.host.js(typert-loader 自动注册 remote 调用) - 代码无外发数据:插件不发起任何网络请求,只写工作区
pastes/下的本地文件
Dependencies pinned / 依赖锁定
@deepseek-ai/dsh-tools:0.1.0-rc.6(exact — thenext-tag line; npmlatestis stale).@deepseek-ai/cordis:^4.0.1(peerDependency — host provides it; runtime import ofServiceresolves through the profile's node_modules).zod:^4.4.3(Typert host schema instances, same line as in-box host remotes).
Pitfalls / 坑(从真实 spike 提炼,防呆)
…

