dsh-quick-actions:在对话界面用快捷键操作当前工作区

前言

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 安装目录后刷新验证。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye