Back to home@weekitmo

oh-my-dsh-plugins

No description

Stars
0
Language
TypeScript
Created
Sep 8, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

oh-my-dsh-plugins

自用的 DeepSeek Harness 插件集合,使用 pnpm workspace 统一管理。

插件

插件包名功能
通知@weekit/dsh-notify桌面、浏览器标题和侧边栏任务完成通知
请求追踪@weekit/dsh-trace检查脱敏后的 LLM HTTP 请求与响应
快捷键与终端@weekit/dsh-keybindingWeb 快捷键管理和本地交互终端
Agent 委派@weekit/dsh-delegate-agent在 DSH Web 中调度本机 Pi、Codex 和 Grok CLI

安装

环境要求:已安装 DeepSeek Harness,且 dshpnpm 位于 PATH。安装器支持 curlwget,并使用系统中的 sha256sumshasumopenssl 校验下载内容。

一键安装全部插件

直接执行 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.1/install.sh | sh -s -- all --version v0.1.1

安装器从对应 GitHub Release 下载 dsh-notify.tgzdsh-trace.tgzdsh-keybinding.tgzdsh-delegate-agent.tgz,按 SHA256SUMS 校验后缓存到 ${DSH_HOME:-~/.dsh}/plugins-cache/oh-my-dsh-plugins/<tag>/,再加入指定 DSH profile。可以通过 DSH_PLUGIN_CACHE 改变缓存根目录。

从旧独立仓库版本迁移时,如果 profile 中已经安装过未 scoped 的 dsh-notifydsh-tracedsh-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>,并提供 buildtesttypecheckcheck 脚本。根 workspace 会自动发现 plugins/*;同时需要把包名加入 CI 插件矩阵,并把目录加入根 install.sh 的目标列表。