⭐ 顺手留颗 Star,作者能高兴一整天 · 行,给你一颗 Star
47.2/100
综合分
38
GitHub 星标
465
npm 周下载
—/5
用户评分
数据截至 2026/10/14 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @jiyr0119/dsh-workspace-explorernpm 源 · @jiyr0119/dsh-workspace-explorer 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@jiyr0119/dsh-workspace-explorer @ 0.10.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 02:40:26
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 14 处,展示前 9 条)
- 读取本地文件lib/index.js:88
const dirents = await readdir(abs, { withFileTypes: true }); - 读取本地文件lib/index.js:96
size = (await stat(target)).size; - 读取本地文件lib/index.js:119
const size = (await stat(abs)).size; - 读取本地文件lib/index.js:121
const lines = (await readFile(abs)).toString("utf-8").split("\n"); - 读取本地文件lib/index.js:272
const info = await stat(abs); - 读取本地文件lib/index.js:275
const lines = (await readFile(abs)).toString("utf-8").split("\n"); - 写入本地文件lib/index.js:595
await writeFile(abs, content, "utf-8"); - 发起网络请求lib/client.js:144
return (await fetch(`/dsh-we/api/${method}`, { - 写入剪贴板lib/client.js:1004
navigator.clipboard.writeText(entry.path).then(() => showFlash(tr("path.copied"))).catch((err) => showFlash(tr("copy.fail") + String(err?.message ?? e
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-native-command@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-workspace@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-invariants给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 右侧目录树面板
- 点击引用文件
- 拖拽引用进输入框
DeepSeek Harness 工作区文件资源管理器插件:右侧目录树面板,点击或拖拽文件引用进输入框,UI 对齐 DSH 原生风格
最近更新
在 GitHub 查看全部 →v0.10.02026-10-14
· 新功能 Features
· 面板设置持久化 — 五项面板设置经 DSH settings 域写入 Profile(cordis.patch.yml),重启保留;设置页「工作区文件」共享同一份值 / Persisted panel settings via the DSH settings domain, shared with the 设置 page.
· 宿主侧内容搜索 — 面板搜索同时匹配文件名与内容(命中片段高亮,点击插入引用;噪声目录永不扫描)/ Host-side content search with highlighted snippets and one-click reference insert.
· 复制路径 / 在文件管理器中显示 — 行右键菜单经 dsh-native-command 调宿主桌面;无桌面环境自动隐藏 / Row context menu: copy path and reveal in Finder/Explorer (auto-hidden on desktop-less hosts).
· 打开文件 → 侧栏原生预览 — 右键「在侧栏预览」直接在右侧栏打开 DSH 原生文件预览 / Open files in DSH's native sidebar preview from the row context menu.
· 崩溃隔离 Crash isolation
实测确认 DSH web boot 要求所有 client 插件激活成功,任一插件 apply 抛错会让整个前端启动失败。本版为插件加上自保护:
We verified that DSH's web boot fails entirely if any client plugin throws in apply. This release adds self-protection:
· client apply 整体 try/catch — 异常只降级本插件并记录 console.error,不再拖垮 DSH / plugin-internal exceptions no longer break DSH
· 四个挂载点(抽屉 / 面板 / 输入桥 / 设置页)渲染错误边界 / render error boundaries on all mount points
· 验证 Verification
· 58 单测 + typecheck + build 全绿 / all green
· 干净安装升级链路 E2E 10/10(公网 npm 安装 tarball → 真实 pnpm profile 升级 → 启动零报错 → 功能全过、console 零错误)/ clean-install upgrade E2E 10/10 with zero console errors
v0.9.02026-09-30
· 兼容 DSH 0.2.0
· 目录选择迁移 — 「添加工作区」改为调用 ctx.get('uiWorkspace').pickDirectory()(DSH 0.2.0 把 workspaces.pickDirectory 移到了 workspace 导航服务);仍保留 workspaces.pickDirectory 作为 0.1.5 回退
· 当前会话读取 — 0.2.0 的 SessionListState 已无 current,改用 uiSession.adapter.current 的 key 取 sessionId,并同时订阅 sessions.list 与 adapter.current 更新输入桥 cwd;@ 菜单与面板根目录因此不再需要面板先打开
· 服务延迟解析 — workspaces / uiWorkspace 在 apply() 时可能尚未创建,改为调用时按需 ctx.get,并在就绪时打印诊断行
· 输入桥 fallback 修复 — 0.1.5 起 inputFace.actions 已不存在,回退桥改用 inputFace.setDraft,拖拽与 @ 选择在 dock 未挂载时也能插入
· 依赖与构建对齐 0.2.0 — @deepseek-ai/* devDependencies 升到 0.2.0-rc.2、@deepseek-ai/cordis 升到 ~4.0.4;dsh.client.inject 改为 0.2.0 的 client 包集合(新增 ui-workspace / ui-session / api-workspace-controller,移除 dsh-client-runtime);tsdown platform seed 同步;dsh.plugin.json 新增 engines.dsh: ">=0.2.0"
· 会话工作区降级 — 0.2.0 没有 recentWorkspaceId,面板根目录按「会话 cwd → 第一个工作区」顺序取值
v0.8.02026-09-12
· 变更
· 把 DSH 客户端依赖升级到 0.1.5-rc.2,以兼容 DSH v0.1.5-rc.1
· 最低 DSH 版本要求改为 >=0.1.5
· 修复面板搜索,现在会搜索所有文件(包括未展开的目录)
· 兼容性
· 已在 DSH v0.1.5-rc.1 上测试
· 需要 DSH v0.1.5 或更高版本
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-workspace-explorer
Awesome DSH Plugin
⭐ 顺手留颗 Star,作者能高兴一整天 · 行,给你一颗 Star
给 DeepSeek Harness Web UI 的工作区文件资源管理器:会话头部一个「工作区文件」胶囊按钮(功能名称 + 文件夹图标,与 Session log 按钮同排)打开动画弹窗,展示当前工作区目录树;点击或拖拽文件即可把文件引用发给大模型。
灵感来自 VS Code / Cursor 的项目目录树,弥补 DSH 添加工作台后没有目录视图的空白。
🖥 演示 Demo
dsh-workspace-explorer 演示
演示 GIF(录制于 v0.5.1):「工作区文件」胶囊入口、多选批量插入、目录拖拽 → 紧凑目录树文本、分页预览与设置页。v0.6.0 的分屏预览与文件编辑见下方截图。
展开完整文档(README 剩余 1 节)
dsh-workspace-explorer
Awesome DSH Plugin
⭐ 顺手留颗 Star,作者能高兴一整天 · 行,给你一颗 Star
给 DeepSeek Harness Web UI 的工作区文件资源管理器:会话头部一个「工作区文件」胶囊按钮(功能名称 + 文件夹图标,与 Session log 按钮同排)打开动画弹窗,展示当前工作区目录树;点击或拖拽文件即可把文件引用发给大模型。
灵感来自 VS Code / Cursor 的项目目录树,弥补 DSH 添加工作台后没有目录视图的空白。
🖥 演示 Demo
dsh-workspace-explorer 演示
演示 GIF(录制于 v0.5.1):「工作区文件」胶囊入口、多选批量插入、目录拖拽 → 紧凑目录树文本、分页预览与设置页。v0.6.0 的分屏预览与文件编辑见下方截图。
截图 Screenshots
面板
目录树
分屏预览
编辑模式
插入并发送
功能特性
- 📂 动画弹窗 — 会话头部右侧(与 session log 同排)的「工作区文件」胶囊按钮(功能名称 + 文件夹图标,与 DSH 原生 Session log 下载按钮同款样式)点击后,弹出一个带淡入/缩放动画的浮动面板;弹窗位置实时测量,位于会话头部与输入框之间(聊天区右侧),绝不会盖住输入框
- 🗂 顶部 Tab 栏 — 弹窗顶部点击「文件 / 设置」切换页面;设置页实时调节行为(隐藏噪声目录、显示大小、引用格式、预览行数、面板宽度),并同步进 DSH 设置 → 工作区文件
- 🗂 懒加载展开 — 目录按需加载,自动隐藏 node_modules / .git / dist / __pycache__ 等噪声目录
- 🎨 文件类型图标 — 按扩展名着色的实心文档徽标(TS / JS / Python / JSON / Markdown / 图片 / 配置 / 脚本等),目录为琥珀色文件夹、展开态高亮
- 🖱 点击插入 — 点击文件行,在输入框末尾追加 [file: 相对路径] 引用,发送后模型会用 read 读取真实内容
- 🖱 拖拽插入 — 文件拖到输入框内任意位置在光标处插入(带全屏虚线提示),拖到其他位置则追加到末尾;目录也可拖拽,松开即插入限层数的紧凑目录树文本
- 🖱 多选批量插入 — Shift / ⌘ 点击多选,一键批量插入(文件 → 引用,目录 → 目录树)
- 🌓 跟随主题 — 全部使用 DSH 的 --dsw-alias- 设计 token,浅色/深色自动适配;原生弹窗外观(16px 圆角、lv3 阴影)
- 🔍 搜索过滤 — 按文件名过滤已加载目录,平铺展示结果并显示匹配数
- 👁 分页预览 — 任意文本文件按行翻页预览(上一页 / 下一页),显示总行数与当前页;可插入引用,小文件(≤32KB)可直接插入完整内容
- ✏️ Split view 预览 — 点击文件名前的 👁 图标,左侧滑出 340px 预览面板,文件树在右侧保持可见
- 📝 文件编辑 — 预览面板点击「编辑」进入 textarea 编辑态,支持保存/放弃/取消;保存时检测文件外部修改
- 🌐 国际化 — 通过 DSH locale 服务注册中/英词典,面板跟随 DSH 界面语言切换
快速开始
安装与使用
方式一 · 原生安装(dsh plugin add / 商店)— 推荐 一条命令装好完整插件,无需构建、无需改任何配置。npm 包同时提供原生 Host 半区(lib/index.js,webServer JSON 路由,含 /dsh-we/api/config)和浏览器 bundle(lib/client.js 经 dsh.plugin.json)。
dsh plugin --profile web add -w @jiyr0119/dsh-workspace-explorer@latest
(或在 DSH 市场点击安装按钮)。安装后会话头部即出现「工作区文件」胶囊(名称 + 图标);必要时重启或硬刷新 Web UI。这是零配置、免构建的路径。
方式二 · npm 源码包(手动粘贴) npm install @jiyr0119/dsh-workspace-explorer — 内含 dynamic/host.js / dynamic/client.js,按方式三粘贴即可,版本随 semver 发布。
方式三 · 动态插件粘贴(零构建备用) 动态 Cordis 插件:无需构建、无需改任何配置,适合快速尝试或没有商店的环境。
1. 在 DSH Web UI 中让 Agent 执行 cordis_define(或使用动态插件面板),idPrefix 填 wsex
2. 将 dynamic/host.js 全文粘贴到 Host 代码
3. 将 dynamic/client.js 全文粘贴到 Client 代码
4. cordis_run 激活,首次出现 Run 卡时点击授权
5. 点击会话头部「工作区文件」胶囊(名称 + 文件夹图标)→ 展开目录 → 点击文件,或拖进输入框,然后发送
ℹ️ pnpm 提示:现代 pnpm(9/10)会拒绝在 workspace root 直接 add(ERR_PNPM_ADDING_TO_ROOT),故命令带 -w。另一种做法:在 ~/.dsh/profiles/web/.npmrc 写入 ignore-workspace-root-check=true。
⚠️ 常见误解:收录本身不会自动安装任何东西 —— 用户仍需点安装。方式一安装后即出现完整 UI(原生 bundle,v0.4.0+ 已验证 dsh plugin add 干净安装、无启动报错)。
详细步骤见 docs/install.md。
使用
1. 点击会话头部右上角的「工作区文件」胶囊按钮(功能名称 + 文件夹图标,与 Session log 按钮同排)打开弹窗
2. 展开目录浏览文件
3. 点击文件,或把它拖进聊天输入框,然后发送
4. 用弹窗顶部的「设置」Tab(或 DSH 设置 → 工作区文件)调整面板行为
目录结构
dsh-workspace-explorer/
├── README.md # 文档 — English(默认) ├── README.zh.md # 文档 — 中文 ├── LICENSE # MIT ├── CHANGELOG.md # 变更记录 ├── manifest.json # 插件元信息 ├── package.json # 仓库元信息(非 npm 包) ├── demo/ │ ├── index.html # 交互式模拟预览(GitHub Pages) │ └── preview.gif # 演示动图(README) ├── .github/ │ └── workflows/ │ └── pages.yml # 部署 demo/ 到 GitHub Pages(手动;预览已隐藏) ├── docs/ │ ├── install.md # 安装指南 │ ├── native-package.md # 原生 DSH 包路线(上游 PR 草图) │ └── publish.md # 发布流程(GitHub + npm) └── src/ ├── host.js # Host 半区:fs 列目录 + ws-tree.list RPC └── client.js # Client 半区:面板 + 图标 + 拖拽
实现要点
| 能力 | 机制 |
| 目录读取 | Host fs.resolve / fs.listDir |
| Host→Client 通信 | harness.handle('ws-tree.list' / 'ws-tree.peek') ↔ host.call(...) |
| 弹窗 | shell.overlay 槽位(useWorkspaces / useSessions),位置在会话头部与输入框之间实时测量 |
| 开关按钮 | conversation.session.header.utilities 槽位(「工作区文件」胶囊:名称 + 图标) |
| 写入输入框 | conversation.input.dock → inputActions.setDraft |
| 拖拽插入 | HTML5 DnD;输入框内走原生光标插入,其他位置追加 |
| 主题适配 | --dsw-alias- CSS 变量(浅/深色自动) |
版本
当前版本 v0.10.0 — DSH 0.1.7+ 四项平台能力全部完成:面板设置持久化、宿主侧内容搜索、复制/在文件管理器中显示、打开文件 → 侧栏原生预览。设置写入 DSH settings 域并保存到当前 Profile(cordis.patch.yml),重启后依然生效,也可在 DSH 设置页「工作区文件」中直接编辑。
变更记录见 CHANGELOG.md。
Roadmap
聚焦两条与产品真正相关的主线:读路径(把模型指向代码)与写路径(编辑文件)。其余事项全部挪到 Backlog 搁置,不再与产品功能平级。
已完成 ✅
- [x] v0.1 核心:右侧文件树、点击/拖拽插入引用、DSH 原生观感
- [x] 搜索过滤;内联预览(前 60 行);小文件(≤32KB)内容插入
- [x] 国际化(zh/en,跟随 DSH 界面语言)
- [x] 演示页中英切换、GitHub Pages 预览、演示 GIF、市场截图素材
- [x] npm 源码包 + dsh.bundle 契约 + awesome 列表(#1158)
主线 M1 — 读路径体验 ✅(v0.5.0)
- [x] 多目标引用:目录拖拽(插入限层数的紧凑目录树文本)+ 多选批量插入文件引用(Shift / Cmd)——同一能力,一个里程碑
- [x] 大文件分页全量预览(上一页 / 下一页、懒加载),取代 60 行 / 200KB 上限,而不是一次性渲染整份内容
主线 M2 — 写路径(单独的产品决策)✅(v0.6.0)
- [x] 面板内文件编辑:textarea 编辑态 + 保存/放弃/取消、外部修改检测 + /dsh-we/api/write 原子保存;从这里起插件不再是只读工具,属于刻意的重新定位
- [x] 分屏预览面板:340px 面板滑入,文件树保持可见
进行中 🚧 — v0.10.0(DSH 0.1.7+ 平台能力)
- [x] 面板设置持久化 — Host 导出 Config(.volatile() schema)+ 客户端 configForms 绑定;五项设置写入 Profile(cordis.patch.yml),重启后保留
- [x] 宿主侧内容搜索 — /dsh-we/api/search;面板过滤同时匹配文件内容(文件名命中 + 文件 :行号 内容命中,命中片段高亮)
- [x] 复制路径 / 在文件管理器中显示 — 行右键菜单:复制绝对路径;经 /dsh-we/api/native 调 dsh-native-command 在访达/资源管理器中显示
- [x] 打开文件 → 侧栏预览 — 行右键菜单在右侧栏打开原生文件预览(dsh-resource://file/session/<sessionId>/<path> → sidebarRight.openResource)
- [x] 崩溃隔离(插件自保护) — 客户端 apply 整体 try/catch + 四个挂载点渲染错误边界;插件内部异常不再可能让 DSH web boot 失败
搁置 Backlog(出现真实需求再做)
- 最近文件 / 收藏夹
- 面板可拖动并记住位置;完整键盘导航
- 虚拟滚动(超大目录);浅/深色主题回归检查;Playwright e2e
依赖上游的杂务
- 原生 DSH 包(@Remote 命名空间,需上游支持)— 见 docs/native-package.md
- 接入 dsh-genie 固化安装;CI(lint + e2e + 自动发布)
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Jiyr0119/dsh-workspace-explorer
⭐ 顺手留颗 Star,作者能高兴一整天 · 行,给你一颗 Star
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1