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

会话文件管理 weibaohui/dsh-file-share

DeepSeek Harnessv0.3.4
weibaohui50 天前有提交已提供中文文档扫描:含敏感能力

在对话区浏览上传下载工作区文件并一键 @ 给 agent

30.3/100
综合分
1
GitHub 星标
573
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @weibaohui/dsh-file-share
npm 源 · @weibaohui/dsh-file-share 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 50 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@weibaohui/dsh-file-share @ 0.3.4
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 06:02:45

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 34 处,展示前 27 条)
  • 读取本地文件
    src/index.js:40
    return fs.statSync(r).isDirectory() ? r : null
  • 写入剪贴板
    client/bundle.js:143
    try { navigator.clipboard.writeText(text) } catch {}
  • 发起网络请求
    client/bundle.js:174
    const res = await fetch(`${API}/download?path=${encodeURIComponent(rel)}&${S(sessionId)}`)
  • 发起网络请求
    client/bundle.js:247
    const d = await readJson(await fetch(`${API}/list?path=${encodeURIComponent(rel || '')}&${S(sessionId)}`))
  • 发起网络请求
    client/bundle.js:260
    fetch(`${API}/status?${S(sessionId)}`)
  • 发起网络请求
    client/bundle.js:283
    const res = await fetch(`${API}/download-zip?${p.toString()}`)
  • 发起网络请求
    client/bundle.js:319
    try { await readJson(await fetch(url, opts)); return true }
  • 发起网络请求
    client/bundle.js:339
    const r = await fetch(`${API}/upload?path=${encodeURIComponent(cur)}&name=${encodeURIComponent(f.name)}&${S(sessionId)}`, { method: 'POST', body: f })
  • 读取本地文件
    src/share-core.js:57
    return fs.statSync(abs)
  • 读取本地文件
    src/share-core.js:131
    for (const ent of fs.readdirSync(abs, { withFileTypes: true })) {
  • 读取本地文件
    src/share-core.js:138
    const s = fs.statSync(full)
  • 读取本地文件
    src/share-core.js:179
    const stat = fs.statSync(abs)
  • 读取本地文件
    src/share-core.js:186
    const rs = fs.createReadStream(abs)
  • 读取本地文件
    src/share-core.js:286
    const data = fs.readFileSync(abs)
  • 写入本地文件
    src/share-core.js:346
    const out = fs.createWriteStream(tmp, { flags: 'wx' })
  • 写入本地文件
    src/share-core.js:365
    fs.renameSync(tmp, target)
  • 删除本地文件
    src/share-core.js:369
    try { fs.rmSync(tmp, { force: true }) } catch {}
  • 写入本地文件
    src/share-core.js:380
    fs.mkdirSync(abs, { recursive: false })
  • 写入本地文件
    src/share-core.js:391
    fs.renameSync(fromAbs, toAbs)
  • 删除本地文件
    src/share-core.js:400
    fs.rmSync(abs, { recursive: true, force: false })
  • 写入剪贴板
    client/index.js:133
    try { navigator.clipboard.writeText(text) } catch {}
  • 发起网络请求
    client/index.js:164
    const res = await fetch(`${API}/download?path=${encodeURIComponent(rel)}&${S(sessionId)}`)
  • 发起网络请求
    client/index.js:237
    const d = await readJson(await fetch(`${API}/list?path=${encodeURIComponent(rel || '')}&${S(sessionId)}`))
  • 发起网络请求
    client/index.js:250
    fetch(`${API}/status?${S(sessionId)}`)
  • 发起网络请求
    client/index.js:273
    const res = await fetch(`${API}/download-zip?${p.toString()}`)
  • 发起网络请求
    client/index.js:309
    try { await readJson(await fetch(url, opts)); return true }
  • 发起网络请求
    client/index.js:329
    const r = await fetch(`${API}/upload?path=${encodeURIComponent(cur)}&name=${encodeURIComponent(f.name)}&${S(sessionId)}`, { method: 'POST', body: f })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 在线浏览工作区文件
  • 上传下载目录文件
  • 对话框@文件给agent

dsh 插件 · 目录共享:任意可配置目录经 HTTP 在线浏览/上传/下载 + 对话框 @ 文件给 agent 处理

v0.3.52026-10-29
API 基址改由 document.baseURI 推导(与宿主官方客户端同口径):子路径反代(如 /dsh-file-share/api 会丢前缀打到站点根而 404;根路径部署行为不变。dsh-sync#14 同款修复,全插件批次落地。
v0.3.12026-09-23
HTTP API 路由接入宿主 connection 信任栅栏(Host/Origin 校验 + 浏览器认证),防止本机任意网页跨站调用。同源问题修复见 dsh-tasks#7 / skills-management#9。
v0.3.02026-09-08
· What's Changed · feat: 目录行 @ 给 agent + @ 后自动切回对话 tab Full Changelog:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
@weibaohui/dsh-file-share DSH plugin npm version 会话工作区文件管理插件:在对话区顶部加一个「文件」tab,点开即可浏览、预览并管理当前会话工作区下的所有文件。 demo 核心功能 - 按会话工作区:文件树绑定到当前对话的工作区目录(ctx.sessions.get(sessionId).header.cwd),不用配置任何固定目录 - 树形浏览:目录树懒加载、逐层展开,文件大小一眼可见 - 预览 / 查看:点文件名或行内「预览」弹出查看面板——文本/代码直接显示、图片内联渲染;超大文件或二进制类型引导下载或交给 agent - 上传 / 下载:一键上传本机文件到当前目录(可多选);任意文件可下载 - 文件夹下载 / 多选打包:悬停目录行「下载」整目录打包 zip;勾选多个文件与文件夹(可混选)批量打包,zip 内保留相对目录结构(零依赖内置 ZIP 构建,条目数 / 总大小双上限,符号链接逃逸的条目自动跳过) - 目录管理:新建文件夹 / 改名 / 删除(目录递归、带确认)/ 刷新 / 名称过滤搜索 - @ 进对话框:文件行点「@」把 @绝对路径 注入输入框,agent 直接处理该文件 - 路径边界安全:所有操作锁定在会话工作区内,../、绝对路径、软链逃逸一律拒绝 安装
展开完整文档(README 剩余 1 节)
@weibaohui/dsh-file-share

DSH plugin
npm version

会话工作区文件管理插件:在对话区顶部加一个「文件」tab,点开即可浏览、预览并管理当前会话工作区下的所有文件。

demo

核心功能

- 按会话工作区:文件树绑定到当前对话的工作区目录(ctx.sessions.get(sessionId).header.cwd),不用配置任何固定目录
- 树形浏览:目录树懒加载、逐层展开,文件大小一眼可见
- 预览 / 查看:点文件名或行内「预览」弹出查看面板——文本/代码直接显示、图片内联渲染;超大文件或二进制类型引导下载或交给 agent
- 上传 / 下载:一键上传本机文件到当前目录(可多选);任意文件可下载
- 文件夹下载 / 多选打包:悬停目录行「下载」整目录打包 zip;勾选多个文件与文件夹(可混选)批量打包,zip 内保留相对目录结构(零依赖内置 ZIP 构建,条目数 / 总大小双上限,符号链接逃逸的条目自动跳过)
- 目录管理:新建文件夹 / 改名 / 删除(目录递归、带确认)/ 刷新 / 名称过滤搜索
- @ 进对话框:文件行点「@」把 @绝对路径 注入输入框,agent 直接处理该文件
- 路径边界安全:所有操作锁定在会话工作区内,../、绝对路径、软链逃逸一律拒绝

安装

dsh plugin --profile web add @weibaohui/dsh-file-share -w

装完重启 dsh web 即生效。

使用

1. 打开 Web UI,进入任意一个会话(或新建会话)
2. 对话区顶部找到 「文件」 tab(跟在「工艺」旁),点开即见该会话工作区目录树
3. 点击文件名可预览内容;悬停文件行可 下载 / @ / 改名 / 删除;工具栏可上传、新建文件夹、搜索过滤
4. 上传、新建等操作作用于当前目录——点目录名展开并切换目标目录
5. 想让 agent 处理某个文件:点「@」把 @路径 注入输入框,回车后 agent 直接读取

提示:文件管理基于会话工作区,需在本实例中打开过的活跃会话;跨实例或未打开的旧会话会提示原因。

联系我 :飞书群

link
预览分享卡片长什么样 ↓weibaohui/dsh-file-share
分享 · DeepSeek Harness Hub
weibaohui/dsh-file-share

在对话区浏览上传下载工作区文件并一键 @ 给 agent

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部