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

侧栏工作台 webkong/dsh-plugin-sidebar

DeepSeek Harness
webkong63 天前有提交已提供中文文档扫描:未发现敏感能力

按工作区管理会话,就地浏览文件与 Git 变更

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 63 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

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

展开查看检查明细 ↓

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

✗npm 包@webkong/dsh-plugin-sidebar(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/client.js:282
    response = await fetch("/dsp-sidebar/api/" + method, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

4 张 · 点击查看大图

功能亮点

  • 按工作区管理会话
  • 就地浏览文件
  • Git变更查看

🚀 为 DeepSeek Harness 而生的左右侧栏:左侧按工作区浏览会话(状态点/分组/搜索/移动到文件夹),右侧就地浏览文件 + Git 面板(状态/暂存/diff/提交/历史/分支)—— 会话管理像 IDE 一样顺手。

README

由 DeepSeek 最新模型翻译生成
🗂️ 为 DeepSeek Harness 而生的左右侧栏左侧 · 工作区/会话浏览 —— 右侧 · 文件 + Git 面板 功能亮点 ·安装 ·开发 ·架构 ·许可证 · 🌐 English:见 README.en.md · 简体中文见本文件 dsh-plugin-sidebar 让 DeepSeek Harness 的会话管理第一次像 IDE 一样顺手。 左侧栏按工作区浏览全部会话(状态点、分组、搜索、一键操作),右侧栏在会话内就地浏览文件、检视 Git 变更、提交、切分支——装完即用,风格跟随 DSH 主题自动适配浅色/深色。 ✨ 功能亮点 🧭 左侧栏 · 工作区/会话浏览 - 按工作区分组:组头可折叠(文件夹图标 + 标题 + 计数 + chevron),当前会话卡片高亮 - 会话状态一眼可见:运行中(绿色脉冲)/ 等待处理(琥珀)/ 完成 / 空闲,状态点 lane + 标题 chip - 卡片 hover 快捷操作:重命名(行内编辑)/ 复制 fork / 归档 / 移动到文件夹 - 顶部搜索:本地标题/cwd/工作区匹配 + 远端内容搜索合并(250ms 防抖),Esc 收起 - 组头 hover:在此新建会话 / 重命名工作区 / 删除工作区 - rail 窄栏模式:侧栏折叠为图标列,点搜索/新建自动展开
展开完整文档(README 剩余 1 节)
🗂️ 为 DeepSeek Harness 而生的左右侧栏左侧 · 工作区/会话浏览 —— 右侧 · 文件 + Git 面板

功能亮点 ·安装 ·开发 ·架构 ·许可证 ·

🌐 English:见 README.en.md · 简体中文见本文件

dsh-plugin-sidebar

让 DeepSeek Harness 的会话管理第一次像 IDE 一样顺手。

左侧栏按工作区浏览全部会话(状态点、分组、搜索、一键操作),右侧栏在会话内就地浏览文件、检视 Git 变更、提交、切分支——装完即用,风格跟随 DSH 主题自动适配浅色/深色。

✨ 功能亮点

🧭 左侧栏 · 工作区/会话浏览
- 按工作区分组:组头可折叠(文件夹图标 + 标题 + 计数 + chevron),当前会话卡片高亮
- 会话状态一眼可见:运行中(绿色脉冲)/ 等待处理(琥珀)/ 完成 / 空闲,状态点 lane + 标题 chip
- 卡片 hover 快捷操作:重命名(行内编辑)/ 复制 fork / 归档 / 移动到文件夹
- 顶部搜索:本地标题/cwd/工作区匹配 + 远端内容搜索合并(250ms 防抖),Esc 收起
- 组头 hover:在此新建会话 / 重命名工作区 / 删除工作区
- rail 窄栏模式:侧栏折叠为图标列,点搜索/新建自动展开

📁 右侧栏 · 文件浏览 + Git 面板
- 会话头部右上角开关(与会话日志下载并列),开关状态按会话记忆:某会话开过右栏,切走再切回仍保持打开
- 文件浏览器:懒加载目录树(展开才拉子列表)、按文件名搜索、按内容搜索(文件/行号/行内容)、目录 git 状态聚合徽标(子文件最高优先级 D>M>A>R>U)
- 文件预览 tab(CodeMirror 编辑):主区域「对话 / 轨迹」之后新增文件预览 tab,右侧栏点文件自动切换过去。文本文件用 CodeMirror 6 渲染——语法高亮(按扩展名自动选语言)+ 可编辑 + 保存写回磁盘(● 未保存标记 + 保存按钮,头部固定始终可见);二进制/大文件给出提示
- Git 面板:状态分「已暂存 / 更改」两段(--porcelain=v1 -z NUL 解析)、着色 diff、提交框、分支切换
- 批量操作(VSCode 源码控制风格,悬停在 section 头显示):暂存全部(+) / 取消暂存全部(−) / 放弃全部更改(撤销);单文件行 hover:diff(文件) + 暂存(+)/取消暂存(−) + 放弃(撤销)
- 提交历史(VSCode 源码控制风格):时间线圆点 + 竖线连接、提交信息单行截断,展开显示作者·日期 + 该提交改动文件列表(状态字母 M/A/D 着色),文件按需懒加载

右侧栏文件浏览器 + 文件预览 tab

文件预览:CodeMirror 编辑 README(语法高亮 + 保存)

右侧 Git 面板 + VSCode 风格提交历史

🔀 会话移动到文件夹
- 复制语义(fork):源会话保留,在目标工作区创建继承全部已完成历史的新会话,创建后自动打开
- 走官方 agents.create(seed + meta.cwd) 路径,新建的是 agent(生命周期归 agent 注册表,不随插件停止消失)
- 目标工作区选择浮层:createPortal 到 body + position: fixed 锚定,脱离列表 overflow 裁剪,靠近视口底部自动向上展开

🌏 为中文用户打磨
- 全中文界面 + English,跟随 DSH 语言偏好自动切换
- 全部使用 DSH 主题 token(--dsw-alias- / --ds-),浅色/深色自动适配

📦 安装

从 GitHub 或本地路径安装。建议先确认你的 dsh 版本,再按下方的「版本兼容」选择配套的插件版本:

从 GitHub 安装(推荐,按需指定版本)注意:pnpm 的 GitHub 版本锁定语法用 #tag,本文档旧写法 @0.3.2 会被 pnpm 误解析为不存在的仓库 null/0.3.2 而报错
dsh plugin --profile web add github:webkong/dsh-plugin-sidebar#v0.3.2

或安装最新主分支
dsh plugin --profile web add github:webkong/dsh-plugin-sidebar#main

或从本地路径安装(开发)
dsh plugin --profile web add /path/to/dsh-plugin-sidebar

重启 dsh web 后,左侧栏接管 sidebar.workspaces,右侧栏接管 details 列,会话头部出现右栏开关。

⚠️ 生效方式:安装 / 重启后生效;Host 改动需重启 dsh web,Client 改动(lib/client.js)刷新页面即可。

💡 安装建议:
- dsh ≥ 0.1.2(含 0.1.2-alpha.3):务必用 0.3.2,已适配 dsh 0.1.2 的客户端服务迁移与懒解析;
- dsh 0.1.1-rc.x:可用 0.3.2 或 0.3.1;
- 更旧的 dsh:回到 ≤ 0.2.x(但 dsh ≥ 0.1.2 上旧版 client 无法加载)。

🔖 版本兼容

速查:按你的 dsh 版本 → 推荐插件版本
| 你的 dsh 版本 | 兼容的插件版本 | 建议 |
| dsh ≥ 0.1.2(含 0.1.2-alpha.3) | 0.3.1 或更高 | 推荐 0.3.2:已适配 dsh 0.1.2 的 uiWorkspace 服务迁移与懒解析 |
| dsh 0.1.1-rc.x | 0.3.0 – 0.3.2 | 均可;0.3.0 已验证 0.1.1-rc.2 |
| dsh ≤ 0.1.1-rc.x | ≤ 0.2.x | 旧版;在 dsh ≥ 0.1.2 上 client 因等待已移除的 dsh-client-runtime 而无法加载 |

详表:按插件版本 → 兼容的 dsh 版本

| 插件版本 | 兼容的 dsh 版本 | 说明 |
| 0.3.2 | dsh ≥ 0.1.1-rc.2 | 左侧栏层级样式优化:会话标题左侧状态点右移缩进,突出「文件夹 → 会话」的从属层级;会话标题字号由 13px 调小至 12px |
| 0.3.1 | dsh ≥ 0.1.1-rc.2(已验证 0.1.1-rc.2、0.1.2-alpha.1、0.1.2-alpha.3) | 适配 dsh 0.1.2 客户端服务迁移:startSession / pickDirectory 改经 uiWorkspace 服务调用(原挂在 workspaces);layout / sessions / workspaces / uiWorkspace / timer 改为调用时懒解析(服务异步激活,不再在 apply 阶段缓存)。修复「右侧入口点击没反应」「左侧添加文件夹点击没反应」 |
| 0.3.0 | dsh ≥ 0.1.1-rc.2(已验证 0.1.1-rc.2、0.1.2-alpha.1) | client inject 移除 dsh-client-runtime(该包自 dsh 0.1.2 起被移除);未适配 0.1.2 的 uiWorkspace 服务迁移,在 0.1.2-alpha.3 上部分点击可能无响应 |
| ≤ 0.2.x | dsh ≤ 0.1.1-rc.x | 旧版;dsh ≥ 0.1.2 上 client 因等待已移除的 dsh-client-runtime 而无法加载 |

🔧 开发

npm install # 安装 esbuild / typescript(仅开发期)
npm run build # esbuild 打包 src/ → lib/(Host ESM + Client __ModuleLoader__ bundle)
npm run typecheck # tsc --noEmit 严格类型检查
npm test # node --test 纯函数单元测试(42 用例)
npm run check # typecheck + 产物语法检查 + 单元测试

结构(TypeScript 模块化)

源码为 TypeScript 模块化组织(参考官方 ui 插件结构),构建产物在 lib/:

dsh-plugin-sidebar/
├── package.json # dsh.bundle / dsh.client 声明,scripts ├── cordis.patch.yml # bundle patch:装载 dsp-sidebar 行 ├── build.mjs # esbuild 构建(Host ESM + Client __ModuleLoader__ bundle) ├── tsconfig.json # 严格类型检查(node + DOM/React) ├── lib/ # 构建产物(已 gitignore) │ ├── index.js # Host 单文件 ESM bundle │ └── client.js # Client __ModuleLoader__ bundle ├── src/ │ ├── host/ # Host 源码(Node 环境) │ │ ├── index.ts # 入口:name/inject/apply + webServer 路由注册 │ │ ├── session.ts # 会话复制(移动到文件夹):readSession → cut → agents.create(seed+meta.cwd) │ │ ├── git.ts # Git 操作:runGit + porcelain/NUL/log 解析 │ │ ├── fs.ts # 文件系统操作:列目录 / 读文本(512KB 截断) │ │ ├── search.ts # 搜索:文件名递归匹配 + 内容逐行匹配 │ │ └── http.ts # JSON 响应 / loopback 校验 / 请求体 / 参数转义 │ └── client/ # Client 源码(DOM + React 环境) │ ├── index.ts # apply 入口:注入样式 / 注册词典 / 注册席位 │ ├── api.ts # /dsp-sidebar/api fetch 封装 │ ├── i18n.ts # 中英双语词典(NS 与键类型) │ ├── types.ts # 契约:会话/工作区数据面 + Host API 面 + git wire 形状 │ ├── util.ts # 共享工具:相对时间 / basename / 状态推导 │ ├── icons.tsx # 图标(lucide 风格描边 + 右侧栏面板填充图标) │ ├── previewStore.ts # 文件预览共享 store(sessionId 隔离,useSyncExternalStore 订阅) │ ├── preview/ # 主区域「文件预览」view │ │ └── PreviewView.tsx # conversation.view 占用者:订阅 previewStore 渲染预览 │ ├── styles/ # 按组件域拆分 CSS + 聚合注入 │ │ ├── left.css # 左侧栏样式 │ │ ├── right.css # 右侧栏样式 │ │ ├── preview.css # 主区域预览 tab 样式(全局 dsw token) │ │ └── index.ts # injectStyles(幂等注入一个 style 标签) │ ├── left/ # 左侧栏(对齐官方 WorkspaceBrowser + rows/) │ │ ├── derive.ts # 数据推导:分组 / 搜索合并 │ │ ├── rows.tsx # 行组件:SessionCard / SearchRow / GroupSection(含移动浮层 portal) │ │ └── WorkspaceBrowser.tsx # 主组件:标题头 + 搜索 + 列表 + rail │ └── right/ # 右侧栏(对齐官方 RightSidebar + SourceControl + FileExplorer) │ ├── derive.ts # git 状态分类(badge / staged / unstaged / untracked / 目录聚合 dirBadge) │ ├── FilesPanel.tsx # 文件浏览器(懒加载树 + 搜索 + 预览 + git 徽标) │ ├── GitPanel.tsx # Git 面板(状态 / 暂存 / diff / 提交 / 时间线历史 / 分支) │ └── RightPanel.tsx # 面板外壳(活动条 + 标签切换)+ 头部开关 └── test/ # 纯函数单元测试(node --test)

📡 通信契约

Host 通过 webServer 前缀路由 /dsp-sidebar/api 提供 HTTP API(仅限本机 loopback,POST + 方法名在路径末段),客户端用浏览器 fetch 调用:

| 方法 | 说明 |
| fs.list | 列目录({path}) |
| fs.read | 读文本(512KB 截断,二进制返回 kind:'binary') |
| fs.search | 搜索({mode: 'name'\|'content', path, query}) |
| fs.gitStatus | 目录 git 状态映射(path → XY,供文件徽标) |
| git.status | git 状态({cwd}) |
| git.diff | diff({cwd, path?, staged?}) |
| git.stage / git.unstage | 暂存 / 取消暂存({cwd, path?}) |
| git.discard | 放弃更改({cwd, path}) |
| git.commit | 提交({cwd, message}) |
| git.log | 提交历史({cwd, count?}) |
| git.logFiles | 某次提交改动文件({cwd, hash},name-status 解析) |
| git.branches | 分支列表({cwd}) |
| git.checkout | 切换分支({cwd, branch}) |
| session.copyTo | 复制会话到目标工作区({srcId, targetPath})→ 返回 {sessionId} |

🏗 架构

- Host(src/host/):经 webServer 注册 /dsp-sidebar/api 前缀路由。文件操作走挂载的 fs 服务(resolve → listDir/stat/readText/readBytes,尊重沙箱与观测策略);Git 操作走挂载的 shell 服务(resolve + run,git -C + porcelain/NUL 解析,与官方 bash 工具同一执行通路)
- Client(src/client/):fetch('/dsp-sidebar/api/...') 调用 Host;注册席位(sidebar.workspaces / details / conversation.session.header.utilities);会话复制走 sessionQuery / workspaceRegistry / agents 等 Host 服务(懒解析——这些服务异步激活,调用时 ctx.get 而非 apply 阶段缓存)

📄 许可证

MIT
预览分享卡片长什么样 ↓webkong/dsh-plugin-sidebar
分享 · DeepSeek Harness Hub
webkong/dsh-plugin-sidebar

按工作区管理会话,就地浏览文件与 Git 变更

回到顶部