在聊天输入框旁添加可自定义的斜杠命令快捷按钮
28.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/weimingyu9312/DSHSwitch.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 49 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cosmokit@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 聊天框旁添加快捷按钮
- 自定义斜杠命令
DSH 插件 — 在 DSH Web GUI 聊天输入框左侧添加可自定义的 switch 快捷按钮。
README
由 DeepSeek 最新模型翻译生成dsh-switch
DSH 插件 — 在 DSH Web GUI 聊天输入框左侧添加可自定义的快捷按钮。点击按钮把斜杠命令插入输入框,补充参数后手动发送。
功能
按钮只有一种行为(mode: "insert",单次插入):每次点击把 /命令 插入到输入框已有内容之前(内容为空时就是开头),再点再插。不执行任何宿主命令、没有常驻状态,视觉上是纯蓝色文字标签(无图标)。
- 设置面板:Settings → "Switch Buttons",可添加、编辑、删除、启用/禁用按钮;底部动态展示当前会话可用的斜杠命令参考(中英双语)
- 配置持久化:保存在 Host 端 settings.yaml 的 dsh-switch 命名空间,清浏览器缓存不丢;localStorage 仅作首屏缓存
- 旧配置自动迁移:早期版本的 toggle(开关命令)、persistent(持久插入)类型已移除,存量按钮读取时自动降级为单次插入(保留 command,丢弃 commandOff/projection),不会消失
安装
⚠️ profile 里已有 git 依赖(如 aegis)时不要跑 dsh plugin add:该 CLI 转调 pnpm,pnpm 解析 git 依赖时可能静默永久挂起。请用下面的路径 ②——不依赖 pnpm、无需联网。
展开完整文档(README 剩余 1 节)
dsh-switch
DSH 插件 — 在 DSH Web GUI 聊天输入框左侧添加可自定义的快捷按钮。点击按钮把斜杠命令插入输入框,补充参数后手动发送。
功能
按钮只有一种行为(mode: "insert",单次插入):每次点击把 /命令 插入到输入框已有内容之前(内容为空时就是开头),再点再插。不执行任何宿主命令、没有常驻状态,视觉上是纯蓝色文字标签(无图标)。
- 设置面板:Settings → "Switch Buttons",可添加、编辑、删除、启用/禁用按钮;底部动态展示当前会话可用的斜杠命令参考(中英双语)
- 配置持久化:保存在 Host 端 settings.yaml 的 dsh-switch 命名空间,清浏览器缓存不丢;localStorage 仅作首屏缓存
- 旧配置自动迁移:早期版本的 toggle(开关命令)、persistent(持久插入)类型已移除,存量按钮读取时自动降级为单次插入(保留 command,丢弃 commandOff/projection),不会消失
安装
⚠️ profile 里已有 git 依赖(如 aegis)时不要跑 dsh plugin add:该 CLI 转调 pnpm,pnpm 解析 git 依赖时可能静默永久挂起。请用下面的路径 ②——不依赖 pnpm、无需联网。
① 桌面市场(发布到 npm 后可用)
dsh-switch 上 npm registry 后,直接在 DSH Desktop 插件市场安装/更新——走宿主 generation 机制,自动更新可用。
② 一键安装脚本(免 pnpm、可离线)
git clone https://github.com/weimingyu9312/DSHSwitch.git
cd DSHSwitch
node install.mjs # 自动探测 DSH_HOME 与 web profile
node install.mjs --profile web --home <DSH_HOME> --dry-run # 只预览不落盘
脚本定位 DSH_HOME(环境变量优先;否则按 %APPDATA%\dsh-desktop\harness / ~/Library/Application Support/dsh-desktop/harness / ~/.config/dsh-desktop/harness / ~/.dsh 顺序探测),把包体(含 vendored 依赖)复制进 <profile>/node_modules/dsh-switch/,并在 profile manifest 的两处登记(dependencies["dsh-switch"] 与 dsh.profile.bundles),写回一律 UTF-8 无 BOM。脚本幂等,且绝不触碰 dsh.desktop.generationProjection(那是市场 staging 私有层)。装完重启 DSH Desktop 让 host 半加载。
③ 手工合并(附录)
把仓库(连同 node_modules/ vendor 树)复制到 <DSH_HOME>/profiles/web/node_modules/dsh-switch/,再编辑 <DSH_HOME>/profiles/web/package.json:在 dependencies 加 "dsh-switch": "file:./node_modules/dsh-switch",并在 dsh.profile.bundles 数组追加 "dsh-switch"。保存为无 BOM UTF-8(PowerShell Set-Content -Encoding UTF8 会带 BOM 打断宿主 JSON 解析——用 [IO.File]::WriteAllText 或无 BOM 编辑器)。两处登记缺一不可,缺了宿主 reconcile 会跳过该 bundle。之后重启 DSH Desktop。
Host 运行依赖 @deepseek-ai/schemastery(连同传递依赖 @deepseek-ai/cosmokit 与纯类型的 @standard-schema/spec)既随 git 仓库入库(vendored 在 node_modules/ 下,clone 即用),又以正式 npm dependencies 声明(exact 锁版本,所以 registry 的 npm install dsh-switch 会自动带上)。vendored/锁定的版本必须与目标宿主发行版一致(当前 schemastery 3.18.2 / cosmokit 1.8.3 = DSH Desktop 0.8.2),升级时三个包要同步刷新。junction/git 安装形态下插件靠 vendored 树解析依赖——保留它,且不要换成符号链接(会产生 reparse 链导致启动失败,完整论证见 lib/index.js 头注释)。
registry 安装已自足:npm 会强制把一切 node_modules/ 路径剔出发布 tarball,所以 registry 副本没有 vendored 树;但自 v1.7.0 起三个包已声明为 dependencies,npm install dsh-switch 会把精确锁定的版本装进 profile 的 node_modules,Node 查找即可命中。一键安装脚本能识别这种布局并跳过 vendoring。
registry 安装注意已合并进上方依赖段,见「registry 安装已自足」。
兼容性
| 契约 | 已验证宿主 |
| 插槽 conversation.input.left + settings.section;composer face inputActions.setDraft | DSH Desktop 0.8.2(web profile) |
| 降级形态:插槽未下发 inputActions(faces: []) | 退回 execCommand('insertText') DOM 兜底通道——可靠性下降但仍可用 |
最低支持:提供 inputActions face 的 dsh-web-app 构建(0.8.x 系)。更早、没有这两个插槽的宿主构建不渲染任何按钮(静默、无害)。
使用
配置按钮
1. 打开 DSH Web GUI → Settings → Switch Buttons
2. 点击 "+ 添加按钮"
3. 每张卡片两个字段:
- 名称:按钮显示文本(如 "Plan Off")
- 斜杠命令:要插入的命令(如 /plan off)
4. 拨动开关启用/禁用;点击 × 删除
默认配置
{
"buttons": [
{ "id": "plan", "label": "Plan", "command": "/plan", "mode": "insert", "enabled": true },
{ "id": "plan-off", "label": "Plan Off", "command": "/plan off", "mode": "insert", "enabled": true }
]
}
默认值只在 Host 配置里还没有 buttons 键时生效;用户改过一次后以存储为准。想恢复默认,删掉 settings.yaml 中 dsh-switch: 段并清除浏览器 localStorage 后重启。
配置字段
| 字段 | 类型 | 说明 |
| id | string | 按钮唯一标识 |
| label | string | 按钮显示文本 |
| command | string | 要插入的斜杠命令 |
| mode | string | 固定 insert;旧值(toggle/persistent/无)读取时自动迁移 |
| enabled | boolean | 是否启用 |
验证
1. 输入框左侧出现 switch 按钮
2. 点击 Plan 按钮:输入框为空 → /plan 出现在开头;已有内容(如 research pricing)→ 变成 /plan research pricing;按 Enter 正常发送
3. 设置面板底部显示斜杠命令参考列表
命令没插进输入框时怎么查
浏览器控制台(F12)直接问插件它自己看到了什么:
__dshSwitch.state() // scopeBound / buttons / faces / draft / editorFound / editorPhase
__dshSwitch.log() // 最近 40 次插入:kind(setDraft|dom|no-editor|skip:stale-snapshot|…)/text/before/after
__dshSwitch.insert("/plan") // 手动跑一次插入,看草稿有没有出现命令
常见现象:faces: [] = 宿主插槽没下发 inputActions(老宿主版本),插入退回 DOM 兜底通道、可靠性下降;editorFound: false = 输入框 DOM 变了,两条通道都写不进;明细日志用 localStorage.setItem("dsh-switch-debug","1") 打开。
架构速览
| 文件 | 职责 |
| lib/index.js | Host 半:注册 dsh-switch settings 命名空间(仅 buttons 一个键) |
| lib/client.js | Client 半:按钮栏(注入 conversation.input.left 槽)、设置面板(注入 settings.section 槽)、配置读写与迁移 |
插入的唯一行为是草稿写入(不执行命令):首选走宿主 composer face 的 inputActions.setDraft(命令 + 原草稿) —— 经编辑器自身 state 提交,不会被 Lexical 调和抹掉;草稿含引用 chip、提交机锁定、或该会话无 face 时退回 execCommand('insertText') 兜底。配置改动乐观渲染 + 写 localStorage 镜像 + scope.set("buttons") 落 Host。
开发
本仓库以 junction 链接装进 profile,改工作区文件即生效。插件分宿主/客户端两半,热更新不对称——判断"改了没生效"前先确认动了哪一半:
| 改动文件 | 需要的动作 |
| lib/client.js(按钮栏、设置面板、插入逻辑) | 刷新浏览器页面即可 |
| lib/index.js、package.json、cordis.patch.yml(host 半) | 完全重启宿主进程(dsh web Ctrl+C 重跑 / 彻底退出 DSH Desktop) |
| 按钮配置(设置面板里改) | 无需任何动作——落 Host settings.yaml 后即时生效 |
node test/client.test.cjs # 或 npm test — 32 项 jsdom 行为测试(迁移规则、face 路由、chip/相位闸、退役符号回归)
node test/preview.cjs # 离线渲染设置面板到 .preview/preview-{dark,light}.html 核对布局
node install.mjs --dry-run # 发版前用假 DSH_HOME 验证安装脚本
发布历史见 CHANGELOG.md。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
weimingyu9312/DSHSwitch
在聊天输入框旁添加可自定义的斜杠命令快捷按钮
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1
这是你的仓库?认领条目