- Accueil
- Plugins
- Améliorations UI
- dsh-quick-keys
dsh-quick-keys
alone-show/dsh-quick-keys
Two composer actions for the DSH Web UI: /new in the slash-command menu starts a new conversation without sending anything to the model, and Shift+Tab toggles plan mode while the conversation has focus.
Installer
dsh plugin --profile web add github:alone-show/dsh-quick-keysREADME
dsh-quick-keys
给 DeepSeek Harness(DSH)的输入框加两个操作:
/new—— 敲/打开命令菜单,选「新建对话」(或直接输入/new回车)即可开一个新会话。 等价于侧边栏「新建会话」/ 桌面端Ctrl+N:不给模型发任何东西、不产生对话轮次、不进会话日志, 也不碰原会话的草稿和附件。Shift+Tab—— 在对话区按一下开关计划模式,效果等同输入/plan、或点输入框上方 「计划」chip 上的关闭按钮。
在 DSH 0.2.1-rc.2 的 Web 客户端上开发和验证。
安装
推荐用 DSH 自带的插件管理器装,它会同时写 dependencies 与 dsh.profile.bundles,装完热激活。
图形界面(推荐)
-
打开 DSH Web GUI;
-
侧边栏点「插件」;
-
点「安装」,把仓库地址粘进输入框:
git+ssh://git@github.com/Alone-show/dsh-quick-keys.git -
点安装,装完刷新一次页面。
本机没配 GitHub SSH key 的话,用 HTTPS 形式,效果一样:
git+https://github.com/Alone-show/dsh-quick-keys.git
也可以直接写短形式 github:Alone-show/dsh-quick-keys。
想锁版本就在末尾加标签,例如
git+ssh://git@github.com/Alone-show/dsh-quick-keys.git#v1.0.2。
本仓库的插件就在
main根目录,所以地址后面不需要带#分支或子目录后缀; 要锁版本时再带#标签即可。
让 agent 装 / CLI
- 让 agent 装:
plugin_manager工具install_bundle,target 同上; - CLI:
dsh plugin --profile web add github:Alone-show/dsh-quick-keys(只写依赖,需要自己补dsh.profile.bundles,见下)
dsh plugin --profile web ...只是把参数原样转发给 pnpm,不会写dsh.profile.bundles;所以推荐用 GUI / 插件管理器安装,或按下面手工补全。
手工等价操作:
- profile(
$DSH_HOME/profiles/web/package.json)的dependencies加"dsh-quick-keys": "github:Alone-show/dsh-quick-keys"; - 同文件的
dsh.profile.bundles里追加"dsh-quick-keys"; - 在 profile 目录执行
pnpm install; - 刷新 GUI(若宿主提示
restart-required,重启dsh web后再刷新)。
用法
| 操作 | 效果 |
|---|---|
/ 菜单选「新建对话」,或输入 /new + 回车 | 开一个新会话 |
对话输入框里按 Shift+Tab | 计划模式开 / 关(输入框上方出现或消失「计划」chip) |
Shift+Tab 只在对话区生效:弹窗、终端、侧边栏、对话区外的输入框(比如重命名框)里,
它仍然是浏览器原本的「反向聚焦」,插件不会拦。
排错
Shift+Tab 没反应时,在浏览器控制台执行下面这行,把输出贴进 issue 即可:
__DSH_QUICK_KEYS__.report() // 先按两下 Shift+Tab 再执行,报告才有内容
它包含当前加载的插件版本、最近几次按键是否被接管、以及实际发出的命令和宿主返回结果。 字段含义与排查思路见 docs/DEVELOPMENT.md。
如果 __DSH_QUICK_KEYS__ 是 undefined,说明页面还是旧 bundle —— 硬刷新一次。
卸载
- GUI:设置 → 插件 → 找到「快捷按键」→ 卸载(等价于
plugin_manager的remove_bundle); - 手工:从 profile 的
dependencies与dsh.profile.bundles里删掉dsh-quick-keys,pnpm install,刷新页面。
开发
node smoke.mjs # 离线冒烟,不需要浏览器、不联网
浏览器半侧是手写的 __ModuleLoader__ 包(client.js),没有构建步骤;宿主半侧 index.js
是空壳,只为让本包成为 Loader 条目并暴露客户端 bundle。
index.js 宿主空壳 apply()
cordis.patch.yml 把插件插入 profile 的 Loader
client.js 浏览器半侧:/new 命令贡献 + Shift+Tab 按键监听
locale/*.json 插件管理页显示的标题与说明
icon.svg 插件图标(设计源,viewBox 512)
assets/ catalog 用的位图图标(GitHub 托管,市场卡片取这一张)
scripts/ 图标生成脚本
smoke.mjs 离线冒烟
docs/ 实现说明(为什么这么写、怎么改键、诊断字段)
改图标:编辑 icon.svg,再跑 python3 scripts/make-icon.py 重新生成
assets/icon-{512,180,64}.png。脚本会自动找本机的 SVG 渲染器(cairosvg /
resvg / rsvg-convert / inkscape 任一),再用 Pillow 缩放;仓库里已提交生成好的
PNG,不改图标就不用跑。
实现细节都写在 docs/DEVELOPMENT.md ——包括按键为什么这么处理、按键判定的范围、怎么改绑按键,以及诊断字段的含义。 改代码前建议先看一遍,那里记着三个踩过的坑。
License
MIT
Plugins associés
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui
dsh-TUI
ccch1mneyyy/dsh-tui