Skip to main content

dsh-side-panel

16Stars3Forks1Issues0Watchers

Side panel with file browser, terminal, and Git review for quick file previews.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
License
BSD-3-Clause
Branch
main
dshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add --allow-build=@dsh-external/dsh-side-panel github:ccq1/dsh-side-panel

Run 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 接口,可能需要更新插件

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](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.

← Back to plugin directory