🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

工作区文件树 Jiyr0119/dsh-workspace-explorer

DeepSeek Harnessv0.10.0
Jiyr011920 天前有提交已提供中文文档扫描:含敏感能力需联网ui

⭐ 顺手留颗 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-explorer
npm 源 · @jiyr0119/dsh-workspace-explorer 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 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 原生风格

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
预览分享卡片长什么样 ↓Jiyr0119/dsh-workspace-explorer
分享 · DeepSeek Harness Hub
Jiyr0119/dsh-workspace-explorer

⭐ 顺手留颗 Star,作者能高兴一整天 · 行,给你一颗 Star

回到顶部