前言¶
DeepSeek Harness(DSH)偏键盘驱动,但在 Web 对话里要对「当前工作区」执行 git pull、构建或自建脚本,往往得先离开输入上下文。社区插件 dsh-quick-actions(维护者 Sunshow,分类:客户端)把这类操作收到快捷键和分组菜单里:在空白新会话页或会话内 composer 中即可触发,工作区路径按你正在看的会话解析,并在 Host 侧校验目录后再执行。
这是什么¶
dsh-quick-actions 是带 Web 客户端能力的 DSH 插件(MIT 许可证,当前包版本 0.1.0)。它在浏览器侧注册捕获阶段的 keydown 监听:光标在 composer 里时,普通输入仍交给输入框,Mod / Ctrl / Alt 组合键当作命令;Host 侧提供动作目录与 /api/quick-actions/run 执行。快捷键与自定义命令保存在浏览器本地,改绑定无需重启 Host。
README 写明在 DSH 0.2.2-rc.1 上做过验证,所用 client slot 与 service 形状在 0.2.x 内相对稳定。需要已挂载 Web UI 的 Harness(dsh web、Desktop,或加载 @deepseek-ai/dsh-web-app 的 profile)。
核心功能¶
下面按 README 已列能力归纳,不做扩展承诺。
全局快捷键与默认拉取¶
- 默认绑定:⌘⇧P(非 macOS 为
Ctrl+Shift+P)→ 在当前工作区执行git pull --ff-only,结果以短暂通知展示(成功约 6 s 自动消失,无输出时约 3.2 s;失败保留 12 s,悬停可暂停倒计时以便选中输出)。 - 监听在 composer 获得焦点时生效,覆盖新会话页与会话内界面。
Composer 入口与分组菜单¶
- 输入框工具行上的键帽按钮可点开与快捷键相同的分组动作菜单,并显示本次运行将使用的目录。
- 设置页 Settings → Quick actions 按组维护:Git、Session & layout、Custom commands;每行支持录制快捷键、重置、编辑、删除。
自定义 Shell 命令¶
- 在 Custom commands → + Add a custom command 添加名称与一行 shell 命令后,立即出现在菜单中并可绑定组合键。
- 通过 login shell(
$SHELL -lc,Windows 为 PowerShell)在工作区目录执行,超时 120 s;便于nvm、Homebrew、pyenv等 PATH 生效。
内置动作(节选)¶
| 动作 | 默认快捷键 | 行为 |
|---|---|---|
| Pull latest code | ⌘⇧P / Ctrl+Shift+P | git pull --ff-only(Host) |
| Fetch remote updates | — | git fetch --all --prune |
| New session | — | 客户端侧 |
| Toggle sidebar | — | 客户端侧 |
工作区解析与全局偏好¶
目录解析顺序(README):当前屏会话的工作区(sessions.list → workspace sessionIds → path)→ 该会话 cwd → 配置的 fallback directory(仅在没有可识别工作区时使用)→ 本浏览器上次解析的工作区 → DSH 默认目录。
自检与界面¶
- 设置页显示页面实际收到的末次按键(含
key/code/ 修饰键),便于发现被系统或浏览器吞掉的组合键。 - UI 随 Harness 语言在英文与简体中文间切换。
安装与启用¶
依赖:DeepSeek Harness + Web UI。下面步骤与 GitHub README 安装一节一致。
1、取得插件目录(README 示例为克隆仓库到本机绝对路径,具体以你获取源码的方式为准)。
2、在当前 profile 中安装 bundle。在 DSH 会话内:
plugin_manager action=install_bundle target=/absolute/path/to/dsh-quick-actions
或在 shell 中(profile 的 dsh 已在 PATH):通过 Settings → Plugins 的 Local bundle 页面指向同一目录。目录安装为链接,对目录执行 git pull 可更新代码而无需重装。
3、安装后刷新页面一次(Client 半在启动时加载),再按 ⌘⇧P(或 Ctrl+Shift+P)验证。
社区目录页:https://www.skillhub.cn/plugins/Sunshow/dsh-quick-actions(与 DeepSeek / 幻方无官方从属关系,仅为社区收录)。
典型用法¶
快捷键拉代码¶
在任意界面(含新会话页),焦点在 composer 时按下默认组合键,即对当前会话对应工作区执行 fast-forward only 拉取;输出出现在通知中。
从菜单选动作¶
点击 composer 工具行键帽按钮 → 选择分组内的动作;菜单会标明运行目录。
录制快捷键¶
进入 Settings → Quick actions,点击某一行的快捷键 chip,按下目标组合(Esc 取消,Backspace 清除)。若组合已被其他动作占用,会接管并提示原绑定已解除。
添加自定义命令¶
Settings → Quick actions → Custom commands → + Add a custom command,例如 README 示例:
Name Update dependencies
Command npm install && npm run build
保存后为该条录制组合键;命令在当前工作区通过 login shell 执行, stdout/stderr 进通知。
架构与安全(使用时心里有数)¶
- Host(
index.js):动作目录、/api/quick-actions/catalog、/api/quick-actions/run、目录守卫、git 与自定义命令执行。 - Client(
client.js):监听、按钮与菜单、设置页、按键探测、通知。 - 两半通过
ctx.webServer.register({ kind: 'exact' })路由通信,而非 package RPC。
安全相关(README):
- 仅在已注册工作区目录内运行;否则拒绝。
- 路由校验 HTTP 方法并拒绝跨域;请求体有大小上限。
- 内置动作为固定命令表;自定义命令做形状与长度校验后以用户权限执行——只添加你信任的命令。
- 绑定与自定义命令不离开浏览器(localStorage)。
自定义命令与内置 git 操作均以当前 DSH Host 进程的用户权限在服务器侧 shell 中运行;安装前建议阅读源码与 MIT 许可证,确认命令符合你的安全策略。
适用场景与注意¶
适合:长期在 DSH Web / Desktop 里写代码、需要不离开对话就 pull/fetch、或要把常用构建/deploy 收成快捷键的开发者。
注意:
- 插件在客户端分类,必须刷新页面后 Client 半才会加载。
- 无当前工作区时依赖 fallback 目录等回退链;可在全局偏好中配置 fallback。
- 社区插件,非 DeepSeek 官方产品;问题可走 GitHub Issues。
结尾¶
dsh-quick-actions 把「针对当前工作区的一键 shell / git」放进 composer 快捷键与分组菜单,并把配置留在浏览器本地。若你已在用 DSH Web 或 Desktop,可按 README 用 install_bundle 或 Local bundle 安装目录后刷新验证。