dsh-plugin-chat-menu

前言

DeepSeek Harness (DSH) 采用插件化架构,支持将各种功能挂载到原生交互管线中。在开发或使用 DSH 进行会话时,引用本地文件路径通常需要切换上下文或手动输入。dsh-plugin-chat-menu 插件通过将工作目录的文件浏览功能直接注册进 DSH 内置的 @ 触发菜单,让用户无需离开输入框即可完成文件路径的引用、输入与跳转。

功能

该插件的核心价值在于对 DSH 原生菜单的扩展与键盘操作的深度适配。

  • 原生整合:插件注册进 DSH 内置的 @ 触发菜单,与“子智能体”和“插件”分组并列显示,文件分组位于菜单最前方。
  • 名称搜索:输入字符时即时按文件名或目录名过滤当前层级;若当前层级无匹配项,会自动在当前工作目录内递归搜索。
  • 逐级深入:点击目录项可写入 @目录/ 进入下一层级,随后继续输入字符即可列出该层内容。
  • 原生键盘:支持使用 ↑ 和 ↓ 移动高亮,Enter 或点击鼠标选中,ESC 取消菜单,所有操作均由 DSH 内置管线处理。
  • 防误发:当整行仅为 @目录路径/ 时按 Enter 不会发送消息;在目录名后按空格会自动补全为 @目录/ 并展开该层内容。
  • 会话感知:菜单内容基于当前会话的 header.cwd(工作目录)生成,确保上下文一致。

安装与启用

安装前请确保 DSH (dsh web) 已正常运行,环境需满足 Node.js ≥ 20。

  1. 执行安装命令
    使用 DSH 官方 CLI 进行安装。该命令会自动处理依赖登记,并识别包内的 dsh.bundle.patch 配置,将其写入 dsh.profile.bundles 完成挂载。
    dsh plugin --profile web add dsh-plugin-chat-menu
或使用 npx 方式(无需全局安装 dsh):
    npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-chat-menu
  1. 重启服务
    安装完成后,需要重启 DSH 进程并硬刷新浏览器(Mac 使用 Cmd/Ctrl + Shift + R),插件才能生效。

典型用法

安装并重启后,在 DSH 会话输入框输入 @ 即可调用文件菜单。

  • 呼出菜单:输入 @,原生菜单中的“文件”分组会列出当前目录结构。
  • 搜索过滤:在菜单中直接输入字符,列表会实时过滤当前层级或进行递归搜索。
  • 进入目录:点击目录项,输入框会写入 @目录/,再次输入字符可继续浏览子目录。
  • 自动补全:在目录名后按下空格,会自动补全为 @目录/ 并展开该层内容。
  • 取消操作:按下 ESC 键可取消菜单。

注意事项

  • 重启生效:动态插件形态随 DSH 进程重启而清空,重启后需重新装载。
  • 形态冲突:同一时间只应安装一种形态(bundle 版或动态版)。两者都会注册 @ 文件菜单,同时运行会导致出现两个菜单,建议优先使用 bundle 版。
  • 源码审查:插件采用 MIT 许可证,安装前建议检查源码逻辑,确保符合个人开发环境的安全要求。

总结

dsh-plugin-chat-menu 通过原生菜单集成与键盘流式操作,解决了在 DSH 会话中引用本地文件路径繁琐的问题。它保持了 DSH 插件轻量、模块化的特点,适合需要在开发调试中频繁引用文件路径的开发者使用。

更多细节与源码可参考:
* GitHub 仓库
* DSH 插件目录

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

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

小夜