oh-my-dsh-plugins
自 v0.1.4 起,本仓库发布物面向 DeepSeek Harness >=0.1.5-rc.2。如果你的 DSH 版本低于 0.1.5-rc.2,请使用旧版发布物 v0.1.3,不要把当前 release 的 tarball 安装到旧 profile。
v0.1.5 修复了 @weekit/dsh-trace 与 @weekit/dsh-delegate-agent 在 0.1.5-rc.2 下 RPC 通道无法注册、浏览器侧始终 HTTP 405 的问题(两个插件改用受鉴权的共享 /api 通道);0.1.5-rc.2 用户建议升级。
v0.1.6 修复了 @weekit/dsh-notify 浏览器通知完全不出现在 0.1.5-rc.2 + 源码树运行环境下的问题(根因是客户端收敛窗口把裸 setTimeout 当方法调用,浏览器抛 TypeError: Illegal invocation,Node 测试无法发现),并新增等待授权通知与按结果区分的音效。
插件
| 插件 |
包名 |
功能 |
| 通知 |
@weekit/dsh-notify |
桌面、浏览器标题、侧边栏任务状态通知,等待授权提醒与结果音效 |
| 请求追踪 |
@weekit/dsh-trace |
检查脱敏后的 LLM HTTP 请求与响应 |
| 快捷键与终端 |
@weekit/dsh-keybinding |
Web 快捷键管理和本地交互终端 |
| Agent 委派 |
@weekit/dsh-delegate-agent |
在 DSH Web 中调度本机 Pi、Codex 和 Grok CLI |
安装
环境要求:已安装 DeepSeek Harness,且 dsh 和 pnpm 位于 PATH。安装器支持 curl 或 wget,并使用系统中的 sha256sum、shasum 或 openssl 校验下载内容。
一键安装全部插件
直接执行 GitHub 最新 Release 中的安装器。不指定插件时,默认安装全部四个插件到 web profile:
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh
使用 wget:
wget -qO- https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh
单独安装
通过 sh -s -- 把 scoped 包名传给安装器:
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- @weekit/dsh-notify
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- @weekit/dsh-trace
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- @weekit/dsh-keybinding
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- @weekit/dsh-delegate-agent
指定 Profile
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- all --profile my-profile
也可以组合单插件与 profile:
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/latest/download/install.sh | sh -s -- @weekit/dsh-trace --profile my-profile
固定 Release 版本
固定版本时,安装器和插件产物应来自同一个 tag:
curl -fsSL https://github.com/weekitmo/oh-my-dsh-plugins/releases/download/v0.1.4/install.sh | sh -s -- all --version v0.1.4
安装器从对应 GitHub Release 下载 dsh-notify.tgz、dsh-trace.tgz、dsh-keybinding.tgz 和 dsh-delegate-agent.tgz,按 SHA256SUMS 校验后缓存到 ${DSH_HOME:-~/.dsh}/plugins-cache/oh-my-dsh-plugins/<tag>/,再加入指定 DSH profile。可以通过 DSH_PLUGIN_CACHE 改变缓存根目录。
从旧独立仓库版本迁移时,如果 profile 中已经安装过未 scoped 的 dsh-notify、dsh-trace 或 dsh-delegate-agent,先按实际存在的旧包执行:
dsh plugin --profile web remove dsh-notify
dsh plugin --profile web remove dsh-trace
dsh plugin --profile web remove dsh-delegate-agent
然后再运行新的 Release 安装命令。新版本在 profile 中统一使用 @weekit/ scoped 包名。
从源码安装
开发 checkout 可以直接构建并安装本地目录:
pnpm install --frozen-lockfile
pnpm --filter @weekit/dsh-trace build
dsh plugin --profile web add ./plugins/dsh-trace
每个插件的功能和配置细节见对应目录中的 README。
开发
环境要求:Node.js ^22.19.0 || >=24.0.0、pnpm 11.7.0。
pnpm install --frozen-lockfile
pnpm check
常用命令:
pnpm build # 构建全部插件
pnpm test # 测试全部插件
pnpm typecheck # 类型检查全部插件
pnpm clean # 删除全部插件生成的 lib 和 tsbuildinfo
也可以只操作一个插件:
pnpm --filter @weekit/dsh-trace check
pnpm --filter @weekit/dsh-keybinding build
pnpm --filter @weekit/dsh-delegate-agent check
构建产物统一写入各插件的 lib/。lib/ 仅用于本地运行和打包,由 Git 忽略,CI 会从源码重新构建。
发布
推送集合级 SemVer tag 会触发 Release workflow:
git tag -a v0.1.0 -m "oh-my-dsh-plugins v0.1.0"
git push origin v0.1.0
workflow 会完成全量检查,构建并打包四个插件,然后发布以下 GitHub Release 资产:
install.sh
SHA256SUMS
dsh-notify.tgz
dsh-trace.tgz
dsh-keybinding.tgz
dsh-delegate-agent.tgz
四个 tarball 内包含对应插件的 lib/,但 lib/ 和根 release/ 均不会提交到 Git。
扩展插件
新插件放入 plugins/<plugin-name>,并提供 build、test、typecheck 和 check 脚本。根 workspace 会自动发现 plugins/*;同时需要把包名加入 CI 插件矩阵,并把目录加入根 install.sh 的目标列表。