跳到主内容

DSH-better-sidebar 使用指南

为 DSH 提供类 VS Code 的右侧栏+底部双工作台:文件编辑、真实终端、Git、嵌入浏览器与后台任务;按会话隔离,并向其他插件开放页面与文件预览器注册。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

DSH-better-sidebar

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add dsh-better-sidebar

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

  • 🗂️ 文件工作台:资源管理器(懒加载目录树;软链接按目标类型展示——目录软链接可展开、失效链接标红)+ CodeMirror 编辑器;图片 / Markdown(含 Mermaid 图表,strict 安全渲染 + 点击放大)/ HTML / PDF / Office 内联预览
  • 🌐 内嵌浏览器:多开网页 tab,后退 / 前进 / 刷新;内容运行在沙箱 iframe;外链默认按协议分流——HTTP 在侧边栏打开、HTTPS 走系统浏览器(设置页可分别调整)
  • 💻 真实终端:xterm.js + node-pty 真实 shell,断线重连回放;可选为模型注入 terminal_* 工具
  • 🌿 Git 面板:真 diff + VSCode 式 diff tab、历史、右键暂存 / 提交 / 还原
  • 🧩 后台任务页:subagent 拓扑 + 后台任务(退出码 / 实时输出 / 强制终止)

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

安装后页面上出现两个侧边栏怎么办?

这是双挂载。常见原因是 ~/.dsh/profiles/web/cordis.patch.yml 里仍保留着手写的 - insert: ... better-sidebar ... 行;通过 npm bundle 通道挂载时,把它删掉即可(见 README_EN.md:119)。

终端提示"node-pty failed to load"或干脆打不开怎么办?

node-pty 依赖预编译二进制,pnpm 11 会拦截其 build 脚本。修复命令:在 ~/.dsh/profiles/web 目录里运行 pnpm approve-builds --all && pnpm rebuild node-pty,然后重启 DSH 并在终端页点 Retry。0.12.3 起 node-pty 加载失败不再拖垮服务(issue #140),banner 会显示这条可复制的命令。

这个插件要求什么 Node 和 DSH 版本?

package.json 声明 engines.node ">=20",与 DSH 的全部 peerDependencies 锁在 ^0.1.0-rc.6;不能用更老的 Node 或未对齐的 DSH pre-release。

我怎么让我的插件向它的侧边栏注册新页面或新文件预览器?

在你的插件 client half 用 ctx.betterSidebar.registerTab({...}) / registerFileViewer({...}),整个套用同一个 Cordis 服务;用 ctx.effect(() => register(...)) 包一下以跟随 HMR(详见 AGENTS.md / docs/external-plugin-guide.md)。

我的数据存在哪里?会话之间会串吗?

布局/tab/面板状态持久化在 localStorage 并按会话 id 隔离(README 中"Session Isolation"项);宿主文件操作(读写、Git、终端、媒体)完全限定在当前会话的工作目录下,不会跨会话泄漏。

如何彻底卸载?

在 ~/.dsh/profiles/web/package.json 的 dependencies 里删掉 "dsh-better-sidebar" 行,再 pnpm install 重启 DSH 即可;该插件不写 home 目录、不依赖后台进程。

我能在浏览器里直接看 GitHub / 论文网页吗?

内置浏览器 tab 支持,HTTP 外链默认在侧边栏打开、HTTPS(GitHub 等多数站点)默认走系统浏览器,两种协议各自有独立开关("拦截 HTTP"/"拦截 HTTPS",见配置项)。不少站点(arxiv.org 等)会通过 X-Frame-Options/CSP 拒绝嵌入,侧边栏会显示原因面板并提供"在浏览器打开"按钮。

移动端能用吗?

右栏侧边栏在窄屏(<768px)自动合并为全宽抽屉;底部面板在窄屏不可用,且自动合并到右栏后,迁回宽屏会保留在右栏,不会自动复原——这是 README 已记录的已知限制(README_EN.md:226)。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: 0.1.0-rc.6+
  • Node: >=20
  • Platforms: macOS, Windows, Linux
  • Native modules: node-pty

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则