dsh-github-hub:在 DSH 里登录 GitHub、搜插件并一键安装

前言

DeepSeek Harness(DSH)把能力拆成可安装的插件与 bundle,日常仍要自己去 GitHub 或 npm 找 dsh-plugin、核对 package.json 是否可装,再用 dsh plugin add 或设置里的插件页装到当前 profile。步骤分散,私有源和本地加速器还容易在 TLS 或 git/pnpm 上踩坑。

下面介绍维护者 GuaPiaaaaa 发布的客户端插件 dsh-github-hub(仓库 GuaPiaaaaa/DSHplugin)。它在 DSH 桌面端提供原生面板(宿主侧 + 浏览器侧),用与 Settings → Plugins、dsh plugin add 相同的路径,完成发现、预检和安装。

这是什么

dsh-github-hub 是面向当前 DSH profile 的 GitHub 插件中心:登录 GitHub、保留登录记录,搜索 GitHub / npm 上的 deepseek-harness(dsh-plugin)包,并一键安装。package.json 中声明了 dsh.bundle.patch 与 dsh.client(platform: web),属于带 Web 客户端的 bundle 插件。许可证为 MIT。

社区目录页:SkillHub — GuaPiaaaaa/DSHplugin(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

发现(Discover)

  • 在 GitHub 上按 topic、名称/描述/README 等条件搜仓库;在 npm 上按 keywords:dsh-plugin 搜包。
  • Inspect:读取仓库 package.json,判断是否真是可安装的 DSH 插件(是否声明 dsh.bundle.patch、是否包含 dsh.client 半部)。
  • Install:用当前 profile 自带的 pnpm 路径安装,带实时日志、可取消;若 pnpm 拦截生命周期脚本,面板提供「允许被拦截的构建脚本并重试」。

已安装(Installed)

展示当前 profile 的 bundle 与插件行,支持启用 / 禁用 / 移除,并显示加载错误与只读原因。

账号(Account)

  • Personal Access Token(推荐):在 GitHub Token 设置 创建,建议 scope 含 read:user;访问私有仓库需加 repo。令牌存入 DSH 凭据服务(记录名 dsh-github-hub/github,类型 grant),不会下发到页面;界面仅显示登录态、头像、scope 与令牌末四位。
  • OAuth Device Flow:自备 OAuth App 的 client_id(无需 client secret),在面板发起流程后到 https://github.com/login/device 输入一次性码。

登录 / 登出历史会持久化,可清空。

诊断(Diagnostics)

输出 GitHub API、npm、DNS、hosts 文件、git 与 pnpm 的连通性报告,以及当前请求使用的 TLS 信任阶梯。

宿主只读接口(排障)

均在 ctx.webServer 的 /dsh-github/* 下,需浏览器会话 cookie;受 loopback(或显式信任的 Host)、禁止跨站、写请求仅本机等约束。

端点 作用
GET /dsh-github/state 账号、设置、登录历史、信任阶梯、客户端 bundle 图状态
GET /dsh-github/health 连通性检查与说明
GET /dsh-github/client 客户端图 rev 与真实 URL,对比磁盘文件计算的 rev(不一致表示改动尚未加载)
GET /dsh-github/search?source=github\|npm&q=… 搜索
POST /dsh-github/repo/package 读仓库 package.json 并判定
POST /dsh-github/inspect 经真实插件管理器预检 spec(含 GitHub 连接检查,不安装)

安装与启用

在目标 profile 执行官方安装命令(以 README 为准):

dsh plugin --profile desktop add dsh-github-hub

本地开发可链接目录:

dsh plugin --profile desktop add link:/absolute/path/to/dsh-github-hub

安装后必须重启桌面应用(仅刷新页面不够):DSH 在宿主启动时收集一次启动注入表,新插件的 client bundle 要到下次启动才进入 manifest;Web profile 同理需重启 dsh web 进程。重启后左侧栏会出现 git 分支图标,点击在中央区域打开面板。

典型用法

  1. 安装并重启桌面端,打开侧栏 git 分支图标进入面板。
  2. 在 Account 用 PAT 或 Device Flow 登录 GitHub。
  3. 在 Discover 选择 GitHub 或 npm 源搜索,对候选仓库执行 Inspect,确认 package.json 判定通过后再 Install。
  4. 安装过程在面板查看 pnpm 日志;若被生命周期脚本策略拦住,按提示允许并重试。
  5. 在 Installed 管理已装 bundle / 插件的启用与移除。
  6. 网络异常时打开 Diagnostics,或访问 GET /dsh-github/health 对照 GitHub、npm、git、pnpm 与 TLS 阶梯说明。

从 GitHub 安装走 pnpm 的 github:owner/repo(git)传输,git 须在 PATH 上;插件管理器会在启动 pnpm 前做有界连接检查。

数据与本地代理

项 位置
GitHub token DSH 凭据服务(dsh-github-hub/github)
设置与登录历史(不含 token,最多 200 条) $DSH_HOME/.dsh-github-hub.json
安装日志 $DSH_PROFILE_DIR/.plugin-manager/logs/operation-*/pnpm.log

若使用 Watt Toolkit / Steam++ 等把 github.com、api.github.com、raw.githubusercontent.com 指到本机反向代理,Node 可能不信任其 CA。插件会按阶梯尝试:默认信任链 → 默认根 + 系统根存储(类似 node --use-system-ca)→ 在对端确实解析到 loopback 且开启设置时信任本地拦截器(界面会标明 tls: local-interceptor)。

适用场景与注意

适合经常在 GitHub / npm 上找 DSH 插件、希望与官方插件管理路径一致、并需要在同一界面处理登录与连通性问题的桌面 profile 用户。

请注意:

  • 新装插件侧栏图标也常需应用重启后才出现(与 DSH 启动时收集注入表的行为一致)。
  • 安装第三方插件会在当前 DSH 进程内执行第三方宿主代码;面板展示仓库元数据与 package.json 判定,不做源码审计。安装前应自行查看仓库、许可证与风险。
  • 移除 bundle 不会删除第三方插件写在 $DSH_HOME 下的数据文件。

结尾

dsh-github-hub 把「搜插件 → 预检 → 安装 → 管理已装项」收进 DSH 客户端,并与 PAT / Device Flow、诊断和只读 HTTP 接口对齐官方插件管理行为。需要细节时可查阅仓库 README 与中文版 README.zh.md。

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

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

小夜