前言¶
DeepSeek Harness (DSH) 采用了“一切皆插件”的架构,方便开发者扩展功能。在开发或调试过程中,开发者经常需要在对话窗口内直接查看 GitHub 仓库或讨论区的内容。原生 DSH 并未提供此类视图,需要频繁切换窗口或手动复制链接。
dsh-github-sidebar 是一个 DSH 客户端插件,它将 GitHub 的信息面板直接注入到聊天窗口的右侧 details 列中。该插件使用双面板布局,分别展示主题仓库列表和仓库讨论列表,减少了上下文切换的时间成本。
功能概览¶
该插件在 DSH 的右侧 details 列中增加了一个 GitHub 侧边栏,包含两个堆叠的面板:
- 上方面板(主题仓库):列出指定 GitHub Topic 下的仓库(默认为
dsh-plugin),按星标数量降序排列,支持分页浏览。该部分使用 GitHub 公共 REST 搜索 API,无需认证。 - 下方面板(讨论):列出指定仓库的讨论(默认为
deepseek-ai/deepseek-harness)。支持三种排序维度:最新(Newest)、评论最多(Most comments)、置顶优先(Pinned first),同样支持分页。该部分使用 GitHub GraphQL API,需要 Token 认证。 - 令牌管理:Token 在面板中输入并存储在
localStorage中,仅发送给api.github.com。
安装与启用¶
安装此插件需要通过 DSH 的命令行工具进行。插件会同时安装主机端包和注册客户端插件。
dsh plugin --profile web add dsh-github-sidebar
安装完成后,需要重启 dsh web 进程并刷新页面,客户端插件集合会在启动时扫描并加载。
使用步骤¶
- 打开会话:启动 DSH Web 会话。
- 查看侧边栏:右侧的
details列会自动展开,显示 GitHub Sidebar。 - 浏览仓库:在上方面板浏览按星标排序的主题仓库,使用分页按钮翻页。
- 管理讨论:
- 在下方面板切换排序方式(最新/评论/置顶)。
- 如果需要使用 GraphQL API 访问讨论,在面板中粘贴 GitHub Token 并点击 Save。
配置与限制¶
目前该插件的所有默认参数(主题、仓库、分页大小)在面板中是硬编码的。虽然 DSH 主机端在 cordis.yml 中暴露了 Config schema(包含 topic、owner、repo、pageSize),但浏览器端尚未读取此配置,因此无法通过配置文件动态修改默认值。
需要注意以下限制:
- 详情列独占:右侧
details列是单槽位设计,GitHub 侧边栏会替换掉默认的调用/轨迹详情。目前无法与默认详情共存。 - API 请求量:讨论列表按评论数或置顶排序时,会先获取完整列表再在客户端排序,这会产生更多的 GraphQL 请求。在浏览大型仓库时,请注意 GitHub 的速率限制。
- 安全性:Token 以明文形式存储在浏览器的
localStorage中。如果通过浏览器访问,Token 暴露在源码中。目前未实现服务端代理来隔离 Token。 - 状态切换:详情列的可见性由插件自动管理。在某些布局切换(如会话切换)时,详情列可能会短暂关闭,随后由插件重新打开。
结语¶
dsh-github-sidebar 通过在 DSH 聊天窗口中直接嵌入 GitHub 浏览器,为开发者提供了一种轻量级的上下文查阅方式。适合需要在对话中频繁查看特定主题仓库或讨论区的 DSH 用户。
插件详情与源码:Olympianz/dsh-github-sidebar