← 返回列表
未验证
⌘K 模糊搜索工作区,软归档旧项目随时恢复
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/14 · 已提供中文文档
dsh(DeepSeek Harness)工作区套件:⌘K 聚焦搜索、软工作区归档/恢复、按工作区设置图标/颜色、增强型侧边栏支持拖拽排序——Cordis 捆绑插件(宿主工具 + 浏览器客户端)。
综合分
29.8
GitHub 分
29.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ice5kysl/dsh-workspace-kit该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-store@deepseek-ai/dsh-commands@deepseek-ai/dsh-session@deepseek-ai/dsh-storage-domain@deepseek-ai/dsh-tools@deepseek-ai/dsh-workspace用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-workspace-kit
DSH Insights health
GitHub: | MIT License | 目标 dsh:@deepseek-ai/dsh ≥ 0.1.1-rc.2 | 简体中文 · English
按官方规范编写的 dsh(DeepSeek Harness)插件(Cordis bundle 形态),解决两个痛点:
1. 工作区太多、难找 → ⌘K / Ctrl+K Spotlight 搜索:模糊搜索全部工作区与会话(含未归组、已归档),↑↓ 选择、回车直接打开/跳转。
2. 想归档旧工作区 → 软归档(隐藏 + 可恢复,不删任何数据):
- 内置侧栏:插件以 sidebar.workspaces 槽位低优先级(-1)替换内置工作区浏览器——归档后的工作区从「工作区」列表消失,收进可折叠的「已归档 (N)」分区,展开后可「恢复 / 打开 / 新建会话」;未归组会话也在独立分区。
- Spotlight:空闲列表不显示已归档;输入关键词时命中项带「已归档」标记出现,方便定位与恢复。
- 归档/恢复同样可从侧栏每行与 Spotlight 结果行操作。
插件分两个 face,由同一个 Loader 入口(dsh-workspace-kit)携带:
| Face | 文件 | 职责 |
|---|---|---|
| 宿主(node) | lib/index.js | workspace_find / workspace_list 模型工具;/workspace-find、/workspace-list 斜杠命令(只读定位,写动作留在 GUI) |
| 浏览器(client) | lib/client.js | Spotlight 面板(注册进官方空置的 shell.overlay 槽)+ 软归档 store(localStorage 持久化)+ 增强侧栏浏览器 |
设计取舍:dsh 官方模型只有会话级归档(不可逆)且内置侧栏浏览器无行级隐藏接缝,所以本插件采用「视图层软归档 + shadow 替换侧栏浏览器」:归档状态由插件管理(浏览器持久化),并通过把 sidebar.workspaces 替换成自带「已归档」折叠分区的浏览器让归档真正从侧栏主列表消失。替换式浏览器 v1 的能力边界见 known-limitations.zh-CN.md。
除归档/恢复外,增强侧栏(启用时)还提供:
- 新建工作区(搜索按钮旁的加号按钮)——系统目录选择器 → 注册 → 打开。
- 侧栏搜索(展开输入框)——按工作区标题/路径与会话标题过滤,另有 会话内容全文搜索(≥2 字符防抖调官方 host 内容索引,结果按「会话内容命中」列出)。
- 每工作区图标 + 强调色——hover 工作区行点调色板按钮(或直接点图标):32 个 SVG 图标 + 9 色可选,「清除」还原;Spotlight 结果同步显示(浏览器持久化)。
- 拖拽排序——工作区行拖动 → 官方 insertBefore 持久化;工作区内会话拖动 → insertSessionBefore;某工作区一旦手动拖过,其会话改按手动(账户)顺序展示(对齐内置 Manual 语义)。
- 内置风格对话框——重命名/删除/归档确认统一走插件样式化弹窗。
- 侧栏一键切换——底部常驻按钮在「增强侧栏 / 官方侧栏」间即时互切,选择持久化、重启保持。
会话里可直接说「用 workspace_find 找一下 pms 工作区」,或输入 /workspace-find pms。
截图
| 增强侧栏 | 每工作区图标与颜色选择器 | ⌘K Spotlight 搜索 |
| :---: | :---: | :---: |
| | | |
多语言(i18n)
所有面向用户的文案均为中英双语(简体中文 / English):
- 浏览器(client):优先读取 localStorage 键 dsh.workspace-kit.locale(zh | en),否则按 navigator.language(s) 判定(zh → 中文,其它 → 英文)。
- 宿主(node):优先读取环境变量 WSKIT_LOCALE(zh | en),否则按 LC_ALL / LANG 判定(zh → 中文),默认英文。
- 双语文案在调用点以 L('中文', 'English', vars?) 形式就地书写,基础设施在 src/shared/i18n.ts,语言探测分别在 src/client/locale.ts 与 src/host/locale.ts。
快速安装(本机个人 dsh)
已发布到 npm —— 如果你已在本机跑 dsh Web,一行即可安装:
dsh plugin --profile web add dsh-workspace-kit
下面的 git 方式用于开发 / 尝鲜最新源码。
前置:dsh 在 PATH(@deepseek-ai/dsh ≥ 0.1.1-rc.2),Node 20+。
0. 获取源码(或直接使用本地目录)
git clone https://github.com/ice5kysl/dsh-workspace-kit && cd dsh-workspace-kit
1. 构建(产出 lib/index.js + lib/client.js;npm install 的 prepare 钩子会自动构建)
npm install # 安装构建期依赖(typescript/esbuild/@types 等)
npm run build
2. 安装进你的 web profile(等价于官方 dsh plugin add 组合包)
bash scripts/install-personal.sh
脚本会自动定位本目录,实际执行 dsh plugin --profile web add .,
把这个包加入 ~/.dsh/profiles/web 的 dsh.profile.bundles(追加在
dsh-web-app 之后),包内 cordis.patch.yml 自动插入唯一 Loader 行。
3. 验证组合(无需重启)
dsh --profile web --dump-config | grep -n "workspace-kit"
4. 重启 GUI 生效
退出当前 dsh web(Ctrl+C 或 kill 进程)后重新运行 dsh web;
浏览器刷新 http://127.0.0.1:3080
也支持作为 monorepo 子目录使用(如 plugins/dsh-workspace-kit):
安装脚本按 package.json 自动向上定位插件目录,两种布局都无需改命令。
打包 / 分发(可选)
npm pack # 产出 dsh-workspace-kit-0.1.0.tgz(含预构建 lib/,prepack 自动 build)
其他机器:dsh plugin --profile web add ./dsh-workspace-kit-0.1.0.tgz
开发
npm run typecheck # tsc --noEmit(宿主 + 浏览器两侧源码)
npm run build # esbuild:src/host → lib/index.js;src/client → lib/client.js
npm test # 宿主 workspace 工具/斜杠命令独立冒烟测试
源码布局:
src/host/ 宿主侧:locale.ts(env 语言探测)、util.ts(搜索/列表纯函数)、
tools.ts(模型工具)、commands.ts(斜杠命令)、index.ts(apply:
按服务可用性注册)
src/client/ 浏览器侧:locale.ts(navigator 语言探测)、archive-store.ts
(defineStore 软归档集 + 外观,persist localStorage)、dialogs.tsx、
SidebarToggle.tsx、Spotlight.tsx(⌘K 面板)、WorkspaceSidebar.tsx、
index.ts(apply:槽位注册 + 动作闭包)
src/shared/ i18n.ts(两侧共享的纯 i18n 工具)
cordis.patch.yml bundle 层:插入唯一 Loader 入口 dsh-workspace-kit
设计说明(为什么这样写,均依据官方文档/源码)
- 插件形态 = 组合包(dsh.bundle.patch)+ 浏览器 face(dsh.client.platform: 'web' + ./client 导出)。host 扫描已启用的 Loader 条目,同一入口的包同时提供 node 与浏览器两侧,且一个包只能有一个入口(多入口解析到同一包名会被 client 模块系统拒绝)。
- Spotlight 挂载到 shell.overlay(list/root)——官方为"整窗自定义浮层"预留的槽。侧栏浏览器注册进 sidebar.workspaces(single/root)并用 priority -1 shadow 内置占用者(priority 升序、最低者渲染,同 priority 才会报错)——这是官方允许的"整体替换"路线,代价是内置浏览器的部分高级能力需要自行补齐或舍弃(见 known-limitations)。
- 数据读取只用框架标准 hook(useWorkspaces/useSessions/useStore),动作经注册的 inject 闭包调用官方会话服务:ctx.workspaces.startSession(workspaceId)(复用/新建并打开该工作区会话)与 ctx.sessions.open(id)。
- 归档集用框架 defineStore + persist(localStorage 裸 JSON,key dsh.workspace-kit.archive.v1),与内置视图偏好(如 dsh.workspace.view.v5)同一机制。
- 全局快捷键无官方注册 API(全仓无 keyboard 服务),按内置插件惯例自挂 window keydown(⌘K/Ctrl+K),面板常驻挂载、关闭时渲染 null 以保活监听。
- 宿主侧只做只读定位工具/命令:归档语义是视图层(浏览器)状态,宿主侧另存一份会导致与 GUI 不一致,故刻意不写。
兼容性
- 目标 dsh:@deepseek-ai/dsh v0.1.1-rc.2(dsh web,profile web)。浏览器 face 面向该版本的 shell.overlay/IWorkspaces/ISessions 契约;上游契约变更时需随版本校验。
- 已知限制与后续方向见 docs/known-limitations.zh-CN.md(英文版 docs/known-limitations.md)。
License
MIT同作者(ice5kysl)的其他插件
扫码进群