在侧栏列表上方加「工作区 / 最新会话」切换条,含固定会话分组、行级菜单(固定/取消固定、复制 Session ID)、标题过滤;pin 存于浏览器 localStorage,并对 dsh-plugin-pin-session 做一次性迁移与过渡双写。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:NattoCB/dsh-plugin-sidebar-views
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
该插件的 README 只有英文版本。
A DeepSeek Harness client-side plugin that upgrades the sidebar session list:
- Two views with a switcher above the sidebar list — Workspaces (the native grouping) and Recent sessions (every session in one recency-sorted flat list, with relative timestamps, running/completed/pending state dots, and the owning workspace as a tag).
- Pinned sessions group that stays above the list in both views, with a live count, collapse memory, and dimmed rows for sessions that no longer exist.
- Per-row "⋯" menu on every row (pinned and flat): pin/unpin the session, and copy its session id.
- Title filter box in the Recent view.
Everything is plain DOM — no React rendering, no portals, no slot takeover. The widget is planted as the first child of the native sidebar list container, hides the native list via a CSS class while in Recent mode, and survives re-renders with a keep-alive interval. A ResizeObserver hides it entirely when the sidebar rail is collapsed.
Install
dsh plugin --profile web add github:NattoCB/dsh-plugin-sidebar-views
Or add it by hand: in the profile's package.json, add the package to dependencies and the plugin name to dsh.profile.bundles, then run pnpm install inside the profile directory. Restart the DSH web process — client bundles only join the boot graph at process start.
Pin storage & migration
Pins live in the browser's localStorage under dsx2-pins (oldest-first [{ id, title?, pinnedAt }]); collapse state sits next to it in dsx2-pins-collapsed. Because storage is browser-local, pins follow the browser profile, not the DSH host.
If the older dsh-plugin-pin-session plugin is still installed, this plugin:
- merges its pin list once at startup via
GET /pin-session/pins(id-deduplicated, result stays oldest-first), and - dual-writes every pin/unpin to its
POST /pin-session/pin|unpinendpoints during the transition.
Both calls are silent no-ops once the legacy plugin is gone.
Uninstalling safely
Remove the plugin from both dependencies and dsh.profile.bundles in the profile package.json, then restart DSH. Deleting the package from node_modules while leaving the bundles entry in place makes the boot graph request a client.js that no longer exists — the module loader treats that as fatal and the whole web GUI fails to mount.
Development
npm test # node --test: package contract + pin merge logic
client/client.js is a window.__ModuleLoader__.load({ id, factory }) bundle in the same shape as DSH's own client bundles. The pin-merge logic is exported as exports._mergePins so tests exercise the real code, not a copy.
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 6815
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 6815
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3318
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 2823
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 1695
右下角常驻的小鲸鱼余额挂件:显示余额、今日已用、每轮对话消耗与随机台词,带音效与设置菜单。
Devin-AXIS/deepseek-design#deepseek-idesign★ 720
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。