插件目录 / UI & Skins / dsh-wordbox
dsh-wordbox
已验证 · 实测可装 arcmosin
功能简介
常用词箱子插件,存储和粘贴项目常用词
可用 — 实测通过,早期项目
常用词箱子插件,存储和粘贴项目常用词 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
常用词盒子(Common Word Box)— DeepSeek Harness 客户端插件
English | 中文
DeepSeek Harness(dsh web)的 Web 客户端插件:在对话输入框右侧放一个「词」按钮,点击弹出一个常驻的上拉面板,管理自己的常用词/句,一键插入对话输入框。
词条分两个桶:全局(所有工作区共享)与当前项目(按工作区目录隔离)。
功能
- 🖱️ 点击「词」按钮 → 上拉面板(带滑入动画),常驻不消失(再点一次 / 点击外部 / Esc 关闭)
- 🔀 三档显示范围:全部 / 全局 / 当前(切换控件在「+ 添加」同行最右侧)
- ⏎ 点击词条 → 追加进输入框(保留焦点、一个撤销步、面板不关闭,可连续插入)
- 🌐 中/英双语(跟随 DSH 界面语言)
安装
前置:DeepSeek Harness dsh web + pnpm(dsh plugin 命令会转发给 pnpm,需要它在 PATH 上)。
本插件是标准的 DSH bundle 插件(dsh.bundle.patch 声明,包内自带插件行 patch),因此安装/卸载都是一条命令:
安装
# 前提,安装官方 CLI(已装可跳过)
npm install -g @deepseek-ai/dsh
# 安装本插件
# 方式一:从 npm 安装(推荐,已发布到 npm)
dsh plugin --profile web add dsh-wordbox
# 方式二:从 GitHub 安装(仓库根即插件包,无构建步骤,直接可用)
dsh plugin --profile web add github:arcmosin/dsh-wordbox
# 方式三:本地开发(link 到本仓库)
dsh plugin --profile web add link:D:/path/to/dsh-wordbox
装完重启 dsh web 即生效(输入框右侧出现「词」按钮)。
dsh plugin add会把包安装进 profile,并因dsh.bundle声明自动挂载到dsh.profile.bundles;无需手动编辑任何 patch 文件。
卸载
dsh plugin --profile web remove dsh-wordbox
然后重启 dsh web,按钮即消失。浏览器里保存的词库数据(localStorage)不会随卸载删除,如需清空可自行删除以下键:dsh.common-word-box.words.v1、dsh.common-word-box.words.project.v1、dsh.common-word-box.mode.v1。
个别情况下
remove后profiles\web\node_modules\dsh-wordbox会残留空目录/链接,手动删除即可,不影响任何功能。
使用
- 点击输入框右侧的「词」按钮(英文界面显示 W),面板上拉并保持打开;
- 底部右侧切换 全部 / 全局 / 当前;
- 点击词条 → 追加进输入框(可连续点多条);悬停行尾出现 × 删除;
- 「当前」模式下悬停行尾出现"添加到全局"转化按钮,一键复制进全局;
- 长词悬停会慢速流动显示完整内容。
存储
| 数据 | localStorage 键 |
|---|---|
| 全局词 | dsh.common-word-box.words.v1(string[]) |
| 项目词 | dsh.common-word-box.words.project.v1({规范化目录: string[]},空桶自动清理) |
| 显示模式 | dsh.common-word-box.mode.v1(all / global / current) |
词库存浏览器本地(按浏览器 profile 隔离),跨工作区、跨标签页通过 storage 事件同步。
开发
- 本地调试安装:
dsh plugin --profile web add link:<本仓库绝对路径>,改代码无需重装; - 修改
lib/client.js后无需重启:宿主client-hmr每 500ms 轮询 bundle 哈希,变化自动热重载(React 状态会重置);首次安装/卸载或改cordis.patch.yml后需重启dsh web。 - bundle 是
window.__ModuleLoader__.load({ id, factory })格式的纯 JS,无构建步骤,改完直接生效。 - 长词流动速度常量:
lib/client.js中的FLOW_SPEED(默认 60 px/s)。
架构
| 部分 | 文件 | 说明 |
|---|---|---|
| bundle patch | cordis.patch.yml |
dsh.bundle.patch 声明的插件行,dsh plugin add 时自动挂载进 profile |
| node 半体 | lib/index.js |
空 apply,让 loader 条目在宿主侧激活 |
| browser 半体 | lib/client.js |
客户端 bundle:conversation.input.right 槽注册 + 全部交互逻辑 |
| 清单 | package.json |
dsh.bundle + dsh.client(platform: "web" + inject)+ exports["./client"] |
- 挂载槽位:
conversation.input.right(由@deepseek-ai/dsh-client-ui-conversation声明,list 槽,session 作用域),渲染在输入框卡片 trailing 区。 - 写入输入框:标准工具包
inputActions.setDraft(text);读取草稿用useInput((s) => s.draft)。 - 等待槽位声明:
ctx.slots.inject("conversation.input.right", () => ctx.slots.register({...}, Component))。 - 形态范例:
@deepseek-ai/dsh-client-ui-model-selection(官方纯 UI 客户端插件)。
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-wordbox」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
Web profile:
dsh plugin --profile web add dsh-wordbox Headless(CLI)profile:
dsh plugin --profile headless add dsh-wordbox 包信息
npm:dsh-wordbox · 版本 — · 实测环境 dsh 0.1.0-rc.6
实测报告
端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。
使用场景
改变 dsh 的外观或交互方式——一套主题、皮肤或新面板,重塑工作区。
适合谁
在 web UI 里一待几小时、想让它按自己的习惯好看又好用的人。
二次开发建议
皮肤、面板和主题 token 是扩展点——写新皮肤、加面板,或与上游配色同步 token。