在侧栏新增「主页」面板用于选择工作区;进入专注后侧栏只显示该工作区的会话,其他工作区折叠在底部,退出专注即恢复原生侧栏。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:fu-silent/dsh-sidebar-home
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 简体中文
给 DeepSeek Harness(DSH)用的社区插件:左侧栏新增「主页」入口,选择一个工作区后,侧栏切换为只显示该工作区 会话的专注模式,其他工作区折叠到底部;退出专注后官方侧栏原样恢复。
独立社区项目,与 DeepSeek 无隶属、背书或支持关系。DSH 仍处于预发布阶段,本插件通过 Client Slot 扩展; 请阅读「专注模式的限制」与「兼容性与失效方式」。
功能
- 主页入口:左侧栏面板图标行新增房子图标,点击打开主页;主页列出所有工作区,显示名称、路径、 活动/已归档会话数和最近活动时间;专注时主页顶部显示专注横幅与退出操作。
- 两种主页布局:卡片网格或紧凑列表,选择会被记住。
- 添加工作区:通过宿主目录选择器选择文件夹,注册后直接进入。
- 专注模式:侧栏只显示当前工作区:
- 按标题搜索会话并显示匹配数量;
- 需要关注的标记:进行中、待审批、计划待审、待回答,以及未读完成时的已完成;
- 置顶会话排在最前,并显示置顶标记;
- 当前会话始终可见并自动滚动到可视区域;其余会话通过「展开更多」查看;
- 已归档会话开关;
- 「+ 新会话」行,直接在当前工作区开始聊天;
- 标题栏显示「专注」标记和带文字的「退出专注」按钮。
- 其他工作区折叠:侧栏底部的「其他工作区 (N)」折叠区,可展开单个工作区查看会话、直接进入某个 工作区,并提供「查看全部工作区」。
- 窄轨模式:侧栏收起时只显示一个「主页」按钮,点击展开侧栏。
- 可逆:退出专注即释放槽替换,官方工作区浏览区(含搜索、拖拽排序、菜单和视图选项)原样恢复。
- 中英双语、安静:界面与元数据支持英文和简体中文;无构建步骤、无依赖、无网络请求、无遥测; 界面状态只保存在浏览器 localStorage。
安装
本版本仅通过 GitHub 分发——没有 npm 包,也不需要构建。需要可用的 DSH 环境;本版本在 DSH Desktop 0.2.1-rc.5(macOS) 上测试。
git clone https://github.com/fu-silent/dsh-sidebar-home.git
DSH Desktop(推荐)
- 打开 DeepSeek Harness Desktop,进入 Plugins 页面。
- 点击 Add plugin,填入本地克隆目录的绝对路径(例如
/Users/you/dsh-sidebar-home)或 git 地址github:fu-silent/dsh-sidebar-home。 - 安装后点击 Enable now 启用,然后刷新页面(
Cmd+R/Ctrl+R)。主页图标会出现在左侧栏的 面板图标行。
若刷新后仍未出现图标,请完全退出并重新打开一次应用,以便 DSH 加载新的客户端模块。
让 Agent 安装(工具安装)
有 DSH 插件管理权限的 Agent 可调用 plugin_manager,使用 action: "install_bundle" 与
target: "/absolute/path/to/dsh-sidebar-home"(也接受 git URL);该操作需要审批,完成后刷新页面。
卸载时调用 remove_bundle,target 为 dsh-sidebar-home。
dsh web(可选 CLI)
本地 dsh web profile:dsh plugin --profile web add /absolute/path/to/dsh-sidebar-home,然后重启
dsh web 并刷新页面。desktop profile 由 Desktop 应用保留,请使用 Plugins 页面管理,不要用 CLI。
更新与卸载
更新即先移除再安装,因为 DSH 需要为每个已安装包加载新的客户端模块:在 Plugins 页面移除该 bundle, 拉取新的代码,再按路径重新添加,然后刷新页面(若仍显示旧模块,请完全重启应用)。
卸载后主页入口与两处注册都会消失,侧栏恢复官方浏览区;工作区与会话数据不受影响。插件自身记住的状态
仍保存在 localStorage 的 dsh-sidebar-home:state:v1 下,如需清除请删除该键。
兼容性
| DSH 版本 | 状态 |
|---|---|
| 0.2.1-rc.5(macOS Desktop) | 已测试——本版本据此构建并验证 |
| 0.2.1-rc.6 及更新的 0.2.x | 预期可用;未测试 |
| 0.2.1-rc.4 及更早 | 被声明的版本范围拒绝;不支持 |
| 0.3.x 及更新 | 被声明的版本范围拒绝;不支持 |
插件声明 "engines": { "dsh": ">=0.2.1-rc.5 <0.3.0-0" }。DSH 会在安装和激活前检查该范围,版本不匹配时
会拒绝安装,而不是渲染出损坏的侧栏。如确实要在被拒绝的版本上尝试,可在 Plugins 页面授予该运行时的
精确版本豁免——这是接受风险,不代表支持。Windows 与 Linux 未验证:客户端 bundle 与平台无关,但仅在
macOS Desktop 0.2.1-rc.5 上验证过。
专注模式的限制
专注模式替换了官方工作区浏览区,因此官方浏览区自身的能力在退出专注前不可用:会话/工作区的右键菜单 (重命名、置顶、归档、分叉、复制 ID)、拖拽排序、视图/排序/筛选选项、全局内容搜索(专注模式的搜索只按 会话标题过滤,不搜索消息正文),以及其他插件注入官方浏览区行内的控件——退出专注后都会恢复。
专注列表默认显示最近 8 条会话,并始终保留当前会话与需要关注的会话,其余通过「展开更多」查看。 已归档会话会列出但无法打开,需先在官方浏览区取消归档。专注模式不会重排或写入官方的工作区/会话状态。
工作原理
bundle 的 Host 半边为空(index.js),全部逻辑在一个零依赖的浏览器模块 client.js 中;无需构建,
宿主侧无逻辑。
| 扩展点 | 类型 | 用途 |
|---|---|---|
sidebar.panellist |
列表项 sidebar-home,order -10 |
左侧栏面板行的主页图标 |
main |
keyed 面板,key sidebar-home |
主页页面 |
sidebar.workspaces |
单槽替换,负 priority | 专注模式的会话浏览区;仅在进入专注时注册,退出时释放 |
- 数据来自 slot 标准 props(
useWorkspaces、useSessions、useSessionStatus、usePanelInfo); 不扫描其他插件或 DOM,不订阅会话事件,不写宿主文件。 - 插件唯一的硬服务依赖是
slots。渲染所需的可选服务(locale、layout、uiWorkspace、workspaces) 通过嵌套ctx.inject作用域激活,因此未来 DSH 若重命名或移除其中某个服务,插件只会保持未激活, 而不会导致 Web 启动失败。 - 专注目标、主页布局、已归档开关与折叠状态保存在
localStorage的dsh-sidebar-home:state:v1下。 Desktop 窗口的 origin 稳定;浏览器标签页若 port 变化则可能不保留,届时回退到默认值。 - 只有一条自动规则:专注模式开启时,专注目标跟随主面板中可见的会话(刷新后恢复;从其他界面打开会话时 同步更新)。主页本身从不改变专注目标;从主页进入工作区会打开该工作区的空白会话。
- 界面文案通过 Client locale 服务注册(命名空间
sidebar-home,英文与简体中文);样式统一使用dshsh-类名前缀与--dsw-alias-*主题 token,而非硬编码颜色。
兼容性与失效方式
插件不修改 DSH 文件,只在专注模式开启时遮蔽一个官方槽条目。Slot 是官方扩展点,但具体的槽名、props 和 hooks 属于 DSH Client 内部接口,可能在未来版本中无废弃周期地变化。出问题时的表现:
- 渲染异常不会让侧栏空白。 专注浏览区抛错时,渲染器会弃用该槽条目并回退到官方浏览区
(控制台:
slot entry crashed in 'sidebar.workspaces')。 - 缺少槽声明时保持惰性。 注册会等待声明;若某个 DSH 版本重命名或移除了槽,该界面不会挂载, 其他功能不受影响。
- Client 服务被重命名或移除时插件不激活,而不是应用损坏:只有
slots是硬依赖,功能作用域通过 嵌套 inject 激活。 - 退出专注会恢复官方浏览区,除非另一个插件替换或禁用了官方的
ui-workspace浏览区——这种情况下 可能没有可恢复的内容。不要同时使用两个完整的侧栏浏览区替换插件,或做好禁用其中一个的准备。 - 数据留在本地。 无网络请求、无遥测、不写宿主文件;工作区路径与会话标题来自 slot props, 仅插件自身的界面状态写入 localStorage。
- 测试范围有限: 仅在 macOS 上的 DSH Desktop 0.2.1-rc.5 验证。
engines.dsh用于避免在未验证的 运行时上误装。
开发
仓库即包:纯 JS,无构建步骤,无依赖。
node --check client.js # 浏览器半边语法
node --check index.js # Host 半边语法
node test/render-smoke.cjs # 零依赖渲染冒烟测试
node scripts/validate-manifest.mjs # bundle 身份与文件一致性
冒烟测试用最小 React 替身与假 Cordis client ctx 在 Node vm 中渲染所有组件,断言注册契约;它是零依赖的
底线,不是集成测试。校验脚本检查手工编辑最容易破坏的不变量:package.json、浏览器模块 id 与 Loader
patch 行共用同一个包名,以及 exports/files 中的运行时文件、locale 元数据、图标大小与冒烟测试存在。
GitHub Actions 在每次 push 和 PR 时用 Node 20 / 22 运行同样的检查(另含 JSON 与 YAML 解析检查);
真实界面验证需手动完成:在 DSH Desktop 中安装本 bundle,检查主页(卡片/列表)、专注模式与搜索、
已归档开关、其他工作区折叠、退出专注以及亮/暗主题。
截图
本版本不包含截图。欢迎后续贡献——社区插件目录的上架将等到有截图后再进行;当前已可直接从本仓库安装。
许可证
MIT © 2026 fu-silent
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 9925
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 9925
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6712
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 6538
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4808
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1672
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。