🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Git 浏览与终端 SSSSSSSan/dsh-bs-better-git-viewer

DeepSeek Harness
SSSSSSSan74 天前有提交已提供中文文档扫描:含敏感能力

在侧边栏浏览多仓库提交图并打开交互终端

32/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SSSSSSSan/dsh-bs-better-git-viewer
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · browser
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-bs-better-git-viewer(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 06:56:51

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    src/client/api.ts:52
    response = await fetch(`/bsgit/api/${method}`, {
  • 执行外部命令固定命令
    src/git.ts:113
    const child = spawn('git', full, {
  • 读取本地文件
    src/git.ts:140
    const info = await stat(join(dir, '.git'))
  • 读取本地文件
    src/git.ts:186
    entries = await readdir(dir, { withFileTypes: true }).then(list =>
  • 读取本地文件
    src/index.ts:98
    const text = await readFile(join(cwd, EXCLUDES_FILE), 'utf8')
  • 写入本地文件
    src/index.ts:142
    await writeFile(join(cwd, EXCLUDES_FILE), EXCLUDES_DEFAULT + names.join('\n') + (names.length > 0 ? '\n' : ''), 'utf8')
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 侧边栏浏览多仓库提交图
  • 打开交互终端

依赖DSH-better-sidebar的更好的git浏览器

README

由 DeepSeek 最新模型翻译生成
dsh-bs-better-git-viewer DSH(DeepSeek Harness)Web 插件:多仓库只读 Git 浏览器 + 交互终端,作为 [dsh-better-sidebar] 的消费插件运行,为其侧边栏注册「Git 浏览」与「终端」两个标签页。 ⚠️ 运行时依赖 [dsh-better-sidebar](声明为 peerDependency):本插件通过 ctx.betterSidebar.registerTab 注册标签页,终端复用其 /sidebar/ws/terminal pty 端点,不包含自己的终端服务端。 请先安装 dsh-better-sidebar,并在其设置中关闭内置 Git 标签页以避免重复。
展开完整文档(README 剩余 1 节)
dsh-bs-better-git-viewer

DSH(DeepSeek Harness)Web 插件:多仓库只读 Git 浏览器 + 交互终端,作为 [dsh-better-sidebar] 的消费插件运行,为其侧边栏注册「Git 浏览」与「终端」两个标签页。

⚠️ 运行时依赖 [dsh-better-sidebar](声明为 peerDependency):本插件通过 ctx.betterSidebar.registerTab 注册标签页,终端复用其 /sidebar/ws/terminal pty 端点,不包含自己的终端服务端。
请先安装 dsh-better-sidebar,并在其设置中关闭内置 Git 标签页以避免重复。

功能特性

多仓库 Git 浏览器(只读预览)

- 多仓库自动发现:向上查找当前工作区所属仓库 + 子目录广度优先扫描(深度有界,node_modules 与隐藏目录剪枝)
- 排除列表:目录名可在设置面板编辑(每行一个,持久化在工作区根 .dsh-bs-git-excludes)
- 仓库选择记忆:按会话 + 工作区记住上次选择的仓库,仓库消失自动回退默认
- 状态预览:已暂存 / 未暂存分区(各自限高 240px、内部滚动,海量变更也不会撑爆面板);中文文件名正常显示(core.quotepath=false,无 \ooo 八进制转义)
- VSCode 式提交图:分支泳道、节点、合并圆角连接线、分支流同色、@ 标记当前分支/HEAD;分支/标签胶囊纵向堆叠,一个提交挂多个引用时完整显示(行高自适应,车道线保持连续);基于 git log --all --topo-order,未合并分支与远端分支同样入图
- 文件级 diff:单击提交 → 内联展开变更文件列表(限高 320px、拖拽调高、内部滚动)→ 单击文件查看该提交的单文件 diff;diff 行级 +绿/−红底色、拖拽调高、长行自动换行、sticky 文件头、新增/删除/重命名/二进制徽标
- 自动刷新:插件自有 WebSocket(/bsgit/ws/changes)+ host 侧 fs.watch 监视 .git 元数据(提交 / 暂存 / 检出 / 分支变化),250ms 防抖推送——完全绕开 DSH 会话事件管道
- 纯预览定位:提交 / 暂存 / 丢弃等写操作刻意交给智能体在会话中执行(host 保留写路由,UI 不提供)

交互终端(san-terminal)

- xterm.js 交互终端:光标闪烁、长行自动换行、右键复制选中(Windows 终端风格)
- 连接 dsh-better-sidebar 的 pty 端点:断线自动重连、服务端拒绝显示原因并提供手动重试
- 每会话最多 3 个终端标签页

依赖

| 依赖 | 版本 | 说明 |
| [dsh-better-sidebar] | ^0.12.x(peerDependency;可选声明,运行时必需) | 标签页注册 + 终端 pty 端点 |
| DSH(DeepSeek Harness) | Web 平台 | 宿主 |
| React | ^18.2 | |
| 系统 git 二进制 | 任意现代版本 | host 半经 spawn 调用,不依赖任何 git 库 |

安装

pnpm install
pnpm build # tsdown → out/index.js(host 半)+ out/client.js(client 半)
pnpm typecheck
pnpm test

按 DSH 插件机制把本目录挂载为插件(如 dsh plugin --profile <profile> add <本目录>,详见 [dsh-better-sidebar] 的插件接入文档与 DSH 官方文档),并确保 dsh-better-sidebar 已安装、其内置 Git 标签页已关闭。

也可以直接运行仓库自带的安装脚本(构建 + 官方 CLI 安装 + 层验证):

node scripts/install.mjs # 默认 profile=web,走 npx 拉取官方 CLI
node scripts/install.mjs --profile demo # 指定 profile
node scripts/install.mjs --dsh-dir <路径> # 本地 DSH 源码构建模式(pnpm dsh,从指定目录执行)

安装脚本(scripts/install.mjs)设计说明:

- 只依赖官方 DSH CLI:脚本不做任何手工操作,唯一入口是 dsh plugin --profile <name> add <本目录>,与手动安装完全等价;流程为「构建(--skip-build 可跳过)→ 安装 → 用 --dump-config 验证 # == dsh-bs-better-git-viewer 层出现」。
- 两种 CLI 获取方式:
- 默认(npx):按需拉取 @deepseek-ai/dsh 执行,不需要本地 DSH checkout、不需要全局安装,任何机器可用,适合普通用户。
- 本地源码构建(--dsh-dir <路径> 或环境变量 DSH_REPO_DIR):从指定目录执行 pnpm dsh ...,适合 dsh 采用「拉取源码自行构建运行」的开发者;路径只在运行时传入,不写入仓库。
- 脚本不包含任何机器相关的硬编码路径,可安全提交到公开仓库。

使用

- 侧边栏「+」菜单 → Git:切换仓库、浏览状态、展开提交、查看文件级 diff
- 侧边栏「+」菜单 → 终端:交互 shell
- 设置面板(侧边卡片 → Git 齿轮):编辑排除列表

架构

src/index.ts host 半:/bsgit/api 路由(repos.list / excludes / git.status|branch|log|showFiles|showFile|diff)
+ 自有 WebSocket /bsgit/ws/changes(git 变更推送) src/git.ts git 命令封装:spawn 系统 git、porcelain -z 解析、core.quotepath=false、仓库发现 src/trust-fence.ts 浏览器信任围栏(与 DSH /api 网关同模型) src/git-watch.ts fs.watch 监视 .git 元数据 → WebSocket 推送 src/client/index.tsx 经 ctx.betterSidebar.registerTab 注册 bs-git-viewer + san-terminal src/client/GitView.tsx 面板 UI:仓库下拉、状态预览、提交图、内联 diff、懒加载历史 src/client/graph.ts 提交图泳道布局(纯函数,独立单测) src/client/DiffBlock.tsx 彩色可调高 diff 视图(unified diff 解析渲染) src/client/TerminalView.tsx 终端(xterm + WS 到 better-sidebar pty 端点)

- 数据层自持:/bsgit/api 走系统 git 二进制 + 信任围栏,不依赖 dsh-better-sidebar 的 git 路由(仅依赖其标签页注册与终端端点)
- 自动刷新绕开会话事件管道:变更通知经插件自有 WebSocket,不触碰 DSH 的会话事件流

许可

MIT

[dsh-better-sidebar]: https://github.com/omdsh-dev/DSH-better-sidebar
预览分享卡片长什么样 ↓SSSSSSSan/dsh-bs-better-git-viewer
分享 · DeepSeek Harness Hub
SSSSSSSan/dsh-bs-better-git-viewer

在侧边栏浏览多仓库提交图并打开交互终端

这是你的仓库?认领条目

回到顶部