在浏览器里浏览、预览并让 AI 分析本地文件
33.1/100
综合分
2
GitHub 星标
213
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @open-agfs/dsh-agfsnpm 源 · @open-agfs/dsh-agfs 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@open-agfs/dsh-agfs @ 0.1.9
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 10:25:10
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 59 处,展示前 11 条)
- 执行外部命令来自配置/变量lib/index.js:83
const child = spawn(command.command, [...command.args], { - 读取本地文件lib/index.js:108
return statSync(target).isFile(); - 读取本地文件lib/index.js:168
if (existsSync(r)) return true; - 读取本地文件lib/index.js:182
if (existsSync(r)) return normalize(r); - 读取本地文件lib/index.js:192
if (existsSync(g)) return g; - 读取本地文件lib/index.js:213
if (existsSync(root) && statSync(root).isDirectory()) return root; - 读取本地文件lib/index.js:213
if (existsSync(root) && statSync(root).isDirectory()) return root; - 删除本地文件lib/index.js:900
await rm(targetPath, { - 写入本地文件lib/index.js:939
await mkdir(targetPath, { recursive: false }); - 写入本地文件lib/index.js:1015
await rename(targetPath, newPath); - 写入本地文件lib/index.js:1078
if (!existsSync(parent)) await mkdir(parent, { recursive: true });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-commands@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 浏览本地文件
- 预览本地文件
- AI分析文件
DeepSeek Harness 的智能体文件浏览器
最近更新
在 GitHub 查看全部 →v0.1.02026-08-15
· 🎉 首个正式发布 / First release
@open-agfs/dsh-agfs — 面向 DeepSeek Harness 的文件浏览器插件:由宿主 webserver 托管的 React 前端 + REST API,附带 /dsh-agfs 命令与 browse_files 模型工具。
A file-browser web app plugin for the DeepSeek Harness: a React frontend and REST API served by the host webserver, with a /dsh-agfs command and a browse_files model tool.
· 功能 / Features
· /dsh-agfs 命令在系统默认浏览器中打开文件浏览器
· 完整 REST API:list read download open open_location search info workspace sidebar thumbnail mode debug delete create_folder rename copy
· 路径安全:浏览根限定、strictRoot 实路径校验、符号链接/连接点逃逸拦截(干净 400 信封)
· readOnly 只读模式、remoteMode 远程禁用、自定义 roots 侧边栏根
· 安全响应头:X-Content-Type-Options: nosniff、X-Frame-Options: DENY、Referrer-Policy: no-referrer
· 离线前端:React/ReactDOM 随包发布,无 CDN、无 Babel 即可启动
· 文本/图片预览(markdown、代码、日志)
· browse_files 模型工具:模型可直接列出或递归搜索浏览根(200 命中上限、深度上限 5)
· 随包发布 dsh.bundle patch:dsh plugin add 一条命令激活为 profile 层
· 安装 / Install
dsh plugin --profile web add @open-agfs/dsh-agfs
· 配置 / Config(节选)
| Key | 默认 | 含义 |
|---|---|---|
| basePath | /dsh-agfs | 服务应用与 API 的路由前缀 |
| fileRoot | 当前工作目录 | 浏览根;侧边栏仍可访问各磁盘 |
| readOnly | false | 只读模式:写端点返回 403 |
| strictRoot | false | 锁定浏览根,拒绝绝对路径与符号链接逃逸 |
| roots | {} | 侧边栏自定义根 name -> path |
完整配置与开发文档见仓库 README(中英双语)。
· 链接 / Links
· npm:
· 源码:
· 环境要求:Node ^22.19 || >=24;依赖已发布的 @deepseek-ai/dsh-*(rc.6)peer 包
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成@open-agfs/dsh-agfs
文件浏览器主界面
面向 DeepSeek Harness 的文件浏览器插件——由宿主 webserver 托管的 React 前端与 REST API,附带 /dsh-agfs 命令与 browse_files/read_file 模型工具。随 dsh web 同进程运行:无独立端口、无子进程。
演示 Demo
功能
| 面包屑导航 | 视图切换 | 侧边栏 |
| 面包屑导航 | 视图切换 | 侧边栏 |
| 搜索 | 本地打开 |
| 搜索 | 本地打开 |
- 面包屑导航——可点击的面包屑逐级返回任意上级目录。
- 视图切换——列表/卡片(网格)视图一键切换。
- 三种显示尺寸——工具栏按钮(显示当前档位)循环切换「视图大小」(居中窗口,默认)→「整个视图」(铺满视口)→「全屏」(浏览器全屏)。
- 侧边栏——项目目录、快速访问(桌面/下载/文档…)、自定义根与磁盘驱动器。
- 搜索——顶栏搜索,支持递归模式(命中上限 200)。
- 本地打开——本机模式下右下角悬浮按钮,一键用系统文件管理器打开当前目录。
- 一键AI分析——右键文件/文件夹 → 输入需求 → dsh 为该目录创建工作区并唤醒新会话的智能体进行分析(仅本机模式)。
展开完整文档(README 剩余 1 节)
@open-agfs/dsh-agfs
文件浏览器主界面
面向 DeepSeek Harness 的文件浏览器插件——由宿主 webserver 托管的 React 前端与 REST API,附带 /dsh-agfs 命令与 browse_files/read_file 模型工具。随 dsh web 同进程运行:无独立端口、无子进程。
演示 Demo
功能
| 面包屑导航 | 视图切换 | 侧边栏 |
| 面包屑导航 | 视图切换 | 侧边栏 |
| 搜索 | 本地打开 |
| 搜索 | 本地打开 |
- 面包屑导航——可点击的面包屑逐级返回任意上级目录。
- 视图切换——列表/卡片(网格)视图一键切换。
- 三种显示尺寸——工具栏按钮(显示当前档位)循环切换「视图大小」(居中窗口,默认)→「整个视图」(铺满视口)→「全屏」(浏览器全屏)。
- 侧边栏——项目目录、快速访问(桌面/下载/文档…)、自定义根与磁盘驱动器。
- 搜索——顶栏搜索,支持递归模式(命中上限 200)。
- 本地打开——本机模式下右下角悬浮按钮,一键用系统文件管理器打开当前目录。
- 一键AI分析——右键文件/文件夹 → 输入需求 → dsh 为该目录创建工作区并唤醒新会话的智能体进行分析(仅本机模式)。分析会话使用宿主默认模型,并加入与手动创建会话相同的 agent preset,因此拥有完整的 standard 工具集(read/write/glob/grep、shell、goal、web 搜索等),而不只是浏览器工具。
- 完整文件浏览器——列表/搜索、文本预览(markdown、代码、日志)、图片预览,支持新建/重命名/复制/删除文件夹。
- /dsh-agfs 命令——在系统默认浏览器中打开文件浏览器,并自动定位到当前会话的工作区目录(session cwd);切换工作区后再次执行会自动跟随。
- browse_files / read_file 模型工具——模型可直接列出/递归搜索浏览根,并读取其中的文本文件。
- 路径安全——浏览根限定、strictRoot 实路径校验、符号链接/连接点逃逸拦截(干净 400 信封)、readOnly 只读模式、remoteMode 远程禁用。
- 离线前端——React/ReactDOM 随包发布,无 CDN、无 Babel 即可启动。
- 安全响应头——X-Content-Type-Options: nosniff、X-Frame-Options: DENY、Referrer-Policy: no-referrer。
- dsh.bundle 一键安装——作为 profile 层一条命令激活。
安装
方式一:在 dsh 对话框用自然语言一键安装(推荐)
在 DeepSeek Harness web 界面的对话框里,直接用自然语言让智能体安装,例如:
帮我安装文件浏览器插件 dsh-agfs
安装 @open-agfs/dsh-agfs 这个 npm 包
智能体会调用 shell 工具执行:
dsh plugin --profile web add @open-agfs/dsh-agfs
然后重启 dsh web(或让智能体帮你重启),在对话框输入 /dsh-agfs 即可打开文件浏览器。
前置条件:该方式要求当前 profile 的智能体启用了 shell 工具(bash/pwsh)并授予执行权限。web profile 默认禁用 shell 工具——可在「设置 → 工具/权限」中启用,或当智能体请求执行命令时选择允许。未启用时请用方式二。
方式二:命令行一行安装
dsh plugin --profile web add @open-agfs/dsh-agfs
安装完成后重启 dsh web,在对话框输入 /dsh-agfs 打开文件浏览器。
升级到新版本:
dsh plugin --profile web add @open-agfs/dsh-agfs@latest
方式三:源码覆盖层(开发用)
从仓库检出用 --patch 覆盖层挂载源码:
- insert:
- id: dsh-agfs
name: 'file:///绝对路径/dsh-agfs/src/index.ts'
然后 dsh web --patch ./overlay.yml。插件代码改动需重启 dsh;前端资源按请求从磁盘读取。
使用
- 在 dsh 对话框输入 /dsh-agfs:系统默认浏览器打开文件浏览器并返回地址;若当前会话带有工作区目录(session cwd),浏览器会直接定位到该工作区。
- 设置 openOnCommand: false 时只返回地址,不打开浏览器。
- 点击文件预览文本/图片;顶栏搜索(支持递归,200 命中上限);侧边栏快速访问桌面/下载/文档等目录、自定义根与磁盘;右键文件可新建文件夹/重命名/复制/删除(受 readOnly 限制)。
配置
| Key | 默认 | 含义 |
| basePath | /dsh-agfs | 服务应用与 API 的路由前缀;必须以 / 开头且不以 / 结尾 |
| fileRoot | 当前工作目录 | 浏览根;侧边栏仍可访问各磁盘 |
| projectRoot | 当前工作目录 | 侧边栏「项目目录」 |
| remoteMode | false | 为 true 时禁用 open、open_location、copy 端点 |
| readOnly | false | 为 true 时 delete、create_folder、rename、copy 返回 403;浏览保持可读 |
| strictRoot | false | 为 true 时浏览锁定在 fileRoot 内:拒绝绝对路径,符号链接/连接点逃逸返回 400 |
| roots | {} | 侧边栏自定义根,name -> path;解析不到的条目自动丢弃,其余按名排序 |
| openOnCommand | true | /dsh-agfs 是否自动打开系统默认浏览器 |
| debug | false | 为 true 时把 API 调用与系统打开结果以 [dsh-agfs:debug] 前缀写入 dsh 进程 stderr |
配置写在 profile 的用户补丁层($DSH_HOME/profiles//cordis.patch.yml),例如:
- id: dsh-agfs
config:
fileRoot: 'D:/projects/my-project'
readOnly: true
API
前端调用 ${basePath}/api/file_browser/ 下的端点:list、read、download、open、open_location、search、info、workspace、sidebar、thumbnail、mode、debug、delete、create_folder、rename、copy,以及 analyze(一键AI分析,仅本机模式)。路径被限定在浏览根内;search 支持 recursive=1(也接受 true/yes)递归遍历,命中上限 200、目录深度上限 5。所有响应带安全响应头;静态资源只响应 GET/HEAD。
模型工具
插件注册两个模型工具,复用与 HTTP 层相同的纯函数核心:
- browse_files(参数 path、keyword、recursive)——列出目录或搜索条目名(可选递归)。返回规范值 { items: [...] },渲染为 TYPESIZEPATH 文本行;空 keyword 自动回退为普通列出。
- read_file(参数 path)——读取浏览根下的一个 UTF-8 文本文件(markdown、代码、日志)并返回内容,让分析智能体可以查看文件内容而不只是文件名。
参数 schema 与描述随工具注册自动流入模型提示词。
已知局限
- Font Awesome 图标来自 cdnjs——启动无需 CDN(React/ReactDOM 随包、Babel 由预编译 app.js 取代),但工具栏图标仍来自 cdnjs;无网络时应用可用但无图标。
- 仅浅层搜索——search 匹配单目录条目名(上限 200),未实现递归内容搜索。
- 缩略图流式返回原图——不做缩放,大图完整传输并由 CSS 缩放。
- openOnCommand 在宿主机上产生副作用——浏览器在运行 dsh 的机器上打开,loopback 部署正确,对远程客户端有违直觉。
开发
pnpm install
pnpm test # vitest:单元套件 + 真实 Loader 组合套件(94 测试)
pnpm typecheck # tsc --noEmit
pnpm lint # oxlint
pnpm build # tsc 类型 + tsdown 打包 -> lib/
pnpm run build:frontend # 修改 assets/app.jsx 后重新生成 assets/app.js
前端源码 assets/app.jsx,编译产物 assets/app.js(classic JSX runtime,无 Babel)与 assets/vendor/ 下的 React/ReactDOM UMD 构建随包发布。
发布
发布由 tag 驱动:推 v tag 会触发 GitHub Actions(.github/workflows/publish.yml)自动发布到 npm。tag 完全手动触发——脚本不会自动打 tag:
pnpm run release # 仅查看发布状态(不写入)
pnpm run release -- --do # 立即发版(递增 patch):提交 + 打 tag + 推送
pnpm run release -- --do --version 0.2.0 # 按指定版本发版
pnpm run release -- --do --dry-run # 预览(不写入、不推送)
scripts/release.mjs 无参数时打印当前版本、上次 v tag 及自其以来的提交数;带 --do 时递增版本、提交 chore: release vX.Y.Z、创建 tag 并推送 main 与 tag。仓库需配置 AGFS secret(带 bypass-2FA 的细粒度 npm 发布 token)。本包把已发布的 @deepseek-ai/dsh- 工具链包声明为 peer 依赖,发布安装可从 npm 解析。
Star History
链接
- npm:https://www.npmjs.com/package/@open-agfs/dsh-agfs
- 源码:https://github.com/openAGFS/dsh-agfs
- 环境要求:Node ^22.19 || >=24;peer 依赖 @deepseek-ai/dsh-(rc.6)预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
openAGFS/dsh-agfs
在浏览器里浏览、预览并让 AI 分析本地文件
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目