Side panel with file browser, terminal, and Git review for quick file previews.
- Language
- JavaScript
- License
- BSD-3-Clause
- Branch
- main
Install
$ dsh plugin --profile web add --allow-build=@dsh-external/dsh-side-panel github:ccq1/dsh-side-panelRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
Install via your agent
Install the DeepSeek Harness plugin ccq1/dsh-side-panel for me: review the repository at https://github.com/ccq1/dsh-side-panel first, then run the install command and verify the plugin loads successfully.
Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.
一句话定位
在 DSH Web 会话旁并排打开一个工作区面板,把 Git 改动、文件浏览和终端集成到同一界面,无需在多窗口间来回切换。
核心能力
- 在对话旁边浏览工作区文件、点击文件链接直接打开预览
- 用 CodeMirror 编辑文本文件,500 毫秒后自动保存,支持 Ctrl/Cmd+S 立即保存
- 打开 xterm.js 终端直接在工作区里跑命令,与对话并行
- 审查工作区或暂存区的 Git 改动,浏览最近 50 条提交和所有本地分支
- 单独查看「上轮会话修改」——只展示这一轮对话产生的代码差异
- 右键文件可一键在系统文件管理器、VS Code、Cursor 或默认应用中打开,并能复制绝对路径或把路径塞进对话输入框
技术实现
- 语言: TypeScript(ESM, "type": "module")
- 关键依赖: CodeMirror 6(多语言高亮)、@xterm/xterm(终端渲染)、marked + DOMPurify(Markdown 预览 + 净化)、React(用于渲染鲸鱼 Logo)
- 架构模式: 同时提供 server 与 client 两份 apply:服务端在
cordis.patch.yml注册一个/side-panel/api路由处理文件/Git/终端请求,客户端通过dsh.client.inject注入到 DSH Web 会话布局里,劫持对话中文件链接的点击事件跳到面板中预览 - 入口文件:
src/index.ts(服务端,导出apply与Config),src/client/index.ts(客户端,导出apply),cordis.patch.yml(注入声明)
适用场景
一边和 DSH 协作写代码,一边想在同一屏里查看或编辑会话里提到的文件、跑命令验证、或检查这一轮 AI 改动了哪些代码。适合需要经常回看 AI 改动、运行验证命令、对比提交历史的开发者;不需要在多个窗口或外部 IDE 之间频繁切换。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| Node | >=22.19(含 24+) | 源码 engines.node 声明 ^22.19 || >=24 |
| DSH | 未声明 | 客户端注入 @deepseek-ai/dsh-client-runtime,未显式声明 DSH 最低版本 |
| Git | 系统已装即可 | 终端命令与工作区扫描依赖系统 git(用于 diff/status/log/for-each-ref) |
| Bash + util-linux | 系统默认 | 终端基于 /bin/bash 与 script -qfec 启动 PTY(WSL 下亦可) |
| 平台 | macOS / Linux 原生支持,Windows 需 WSL | 终端 spawn Linux script;非 WSL 的 Windows 直接运行会失败 |
| 原生模块 | 无 | 全部依赖为纯 JS,未引入 node-gyp 模块 |
安装方式
dsh plugin --profile web add github:ccq1/dsh-side-panel
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| maxTextBytes | 数字 | 预览与编辑时允许读取的最大文本文件大小;超过会显示「文件过大」提示卡 | 2097152(2 MiB) |
| maxImageBytes | 数字 | 预览图片时允许的最大文件大小;超过同样提示「文件过大」 | 10485760(10 MiB) |
| searchMaxResults | 数字 | 文件搜索一次返回的最大结果数;超出时面板底部会提示「仅显示前 N 条」 | 200 |
这三项写在
cordis.patch.yml里作为默认配置;如需调整,编辑宿主安装目录下插件的cordis.patch.yml即可。
常见问题
Q: 安装后怎么打开面板?
A: 重启 dsh web,会话标签栏右侧会出现一个带跃动小鲸鱼图标的标签,点击即展开;用键盘 Ctrl/Cmd+Shift+E 可在任意位置快速唤出或隐藏。
Q: 「上轮会话修改」和普通的 Git 审查有什么区别?
A: 普通审查看的是当前工作区/暂存区/Git 历史的全量变更;「上轮会话修改」只看 AI 在上一轮对话里改过的文件 diff。第一次安装插件时这一项会显示「暂无上轮会话快照」,从下一轮对话开始自动开始记录。
Q: 文件编辑会立即保存到磁盘吗?
A: 默认有 500 毫秒去抖,编辑后停顿半秒就自动保存到原文件;想立即落盘可按 Ctrl/Cmd+S。Markdown 与图片不会被送进编辑器,分别走预览和缩略图展示。
Q: 终端支持 PowerShell 吗?
A: 不支持。终端固定启动 /bin/bash(或 $SHELL 环境变量指向的可执行文件),并通过 util-linux 的 script 命令模拟 PTY;macOS/Linux 原生可用,Windows 必须在 WSL 内运行 DSH 才能使用终端。
Q: 怎么跳回上轮 AI 改动的具体文件?
A: 切到「审查」标签,把模式切到「上轮会话修改」,文件列表里点击任一文件名,会自动滚动定位到该文件的 diff 区块并把标题高亮成蓝色。
Q: 项目还在维护吗?
A: 仓库 README 顶部已标注「已停止维护并归档」,并推荐迁移到功能更完整的 DSH-better-sidebar。本仓库保留现有代码与历史版本。
Q: 卸载会留下配置残留吗?
A: 服务端在 effect 析构时会撤销路由注册并向所有打开的 PTY 发送 SIGTERM,清理浏览器端 React root、事件监听器和样式表;卸载插件后重启一次 dsh web 即可彻底生效。
上手难度
入门 — 安装即用,面板会自动随会话出现;不需要改任何配置即可使用文件预览、Git 审查、终端三大功能。
已知问题与限制
- 项目已归档:README 顶部明确声明本仓库停止维护,新需求请迁移至 DSH-better-sidebar
- Windows 非 WSL 不可用:终端与
script命令在原生 Windows 上无法运行 terminal-resize实际是空操作:服务端terminal-resize动作只返回accepted: true,没有把新尺寸转发给script持有的 PTY,终端靠 xterm 客户端自动 reflow 已渲染输出来适配last-session差分有冷启动空窗:插件加载前发生的对话轮次不会有 diff 记录,新装插件的首轮对话也记不到- 请求体大小限制为 3 MiB:服务端
requestBody在超过 3 MiB 时会直接抛错,编辑大文件时请走流式 API 或调小单次粘贴量 - DSH 最低兼容版本未声明:
package.json没有peerDependencies或dshWorkshop字段,若宿主 DSH 变更了webServer.register或ctx.workspaces.openPath接口,可能需要更新插件
[!IMPORTANT] 本项目已停止维护并归档。推荐使用功能更完整、仍在持续维护的 DSH-better-sidebar。本仓库保留现有代码和历史版本,仅供参考。
DSH Web 的右侧工作区面板,在当前会话旁集中提供 Git 审查、终端和文件操作。 可以点击dsh会话区弹出的文件链接,会自动打开相应的文件以供审阅。

功能
- Git审查,可以查看工作区和暂存区的文件,以及dsh每轮修改的代码,后续会增加回退。
- 文件浏览器, 可以在会话区点击文件跳转到文件浏览器浏览文件。
- 终端,在当前工作区直接运行命令,无需离开工作区,专注你的任务。
安装
从 github-dsh-external仓库安装
dsh plugin --profile web add github:dsh-external/dsh-side-panel
dsh web
或者可以先从git clone 到本地,然后从本地目录安装
git clone [email protected]:dsh-external/dsh-side-panel.git
cd dsh-side-panel
npm install
npm run build
dsh plugin --profile web add .
配置
组合包默认启用以下配置:
- insert:
- id: side-panel
name: '@dsh-external/dsh-side-panel'
config:
maxTextBytes: 2097152
maxImageBytes: 10485760
searchMaxResults: 200
| 配置项 | 默认值 | 说明 |
|---|---|---|
maxTextBytes | 2 MiB | 可读取和编辑的单个文本文件大小上限 |
maxImageBytes | 10 MiB | 可预览的单个图片大小上限 |
searchMaxResults | 200 | 文件筛选返回的最大结果数 |
许可
Read the usage guide →
Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.
Listing badge
[](https://deepseek-plugin.org/plugins/ccq1/dsh-side-panel)Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.