在网页里直接查看图片、PDF、表格与源码文件
33.6/100
综合分
5
GitHub 星标
233
npm 周下载
—/5
用户评分
数据截至 2026/9/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-file-viewernpm 源 · dsh-file-viewer 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 42 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-file-viewer @ 0.3.7
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/25 02:11:34
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
- 读取本地文件dist/index.js:382
const nativeInfo = await fsStat(path).catch(() => void 0); - 读取本地文件dist/index.js:417
const statInfo = await fsStat(childPath);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 预览图片与PDF
- 查看表格与源码
- 支持大文件
DeepSeek Harness 通用只读文件预览插件,支持图片、PDF、CSV、Markdown、JSON、YAML、源码及大文件。
最近更新
在 GitHub 查看全部 →v0.3.22026-09-03
· 版本兼容更新
本版本主要适配 DeepSeek Harness dsh-v0.1.2-rc.1,同时继续兼容 DSH v0.1.1-rc.2。
· 兼容性改动
· 适配 v0.1.2-rc.1 的 conversation.view focus request,可将文件 locator 直接交给文件查看器。
· 将 DSH、Cordis 和 React 等宿主提供的依赖声明为 optional peer,兼容 rc.1 profile 的 autoInstallPeers: false 配置。
· 保留 v0.1.1-rc.2 的 loopback RPC authority 注册方式;v0.1.2-rc.1 的双参数 RPC handler 会安全忽略额外参数。
· Workspace“浏览文件”菜单补丁已针对 dsh-v0.1.2-rc.1 源码验证。
· 验证
· dsh-v0.1.2-rc.1 profile 安装及 peer dependency 检查通过。
· Harness 构建、页面启动和插件 Client 加载通过。
· dsh-file-viewer 类型检查、生产构建及 72 项测试通过。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成DSH File Viewer
⚠️ 本项目已归档,不再维护。
开发已经停止,后续不会再发布新版本、修复缺陷或更新兼容性。本项目针对 DeepSeek Harness 验证到 dsh-v0.1.5-rc.1,更新版本的 Harness 可能导致其失效,尤其是 Workspace“…”菜单补丁(scripts/patch-workspace-menu.mjs)。Issue 与 Pull Request 不再处理。源代码仍以 MIT 许可证开放,如需继续维护请自行 Fork。
在线使用: dsh.r2049.cn
面向 DeepSeek Harness 的通用只读文件预览层:无需打开外部应用,即可在 Web 界面中查看文件。
预览不等于执行。 查看器严格只读:预览文件不会执行 Shell 命令、脚本、宏或 HTML。SVG 通过 显示,Markdown 会在展示前进行安全清理。
展开完整文档(README 剩余 1 节)
DSH File Viewer
⚠️ 本项目已归档,不再维护。
开发已经停止,后续不会再发布新版本、修复缺陷或更新兼容性。本项目针对 DeepSeek Harness 验证到 dsh-v0.1.5-rc.1,更新版本的 Harness 可能导致其失效,尤其是 Workspace“…”菜单补丁(scripts/patch-workspace-menu.mjs)。Issue 与 Pull Request 不再处理。源代码仍以 MIT 许可证开放,如需继续维护请自行 Fork。
在线使用: dsh.r2049.cn
面向 DeepSeek Harness 的通用只读文件预览层:无需打开外部应用,即可在 Web 界面中查看文件。
预览不等于执行。 查看器严格只读:预览文件不会执行 Shell 命令、脚本、宏或 HTML。SVG 通过 显示,Markdown 会在展示前进行安全清理。
支持的文件类型
| 类型 | 渲染方式 |
| PNG / JPG / GIF / WEBP / SVG / BMP | 图片(适应窗口、缩放、拖动、尺寸信息) |
| PDF | PDF.js(翻页、页码输入、缩放、适应宽度/页面) |
| CSV / TSV | 数据表格(自动识别分隔符、固定表头、行号、搜索、排序、调整列宽、窗口化行、分块加载) |
| TXT / LOG / OUT / INI / CONF | 文本(行号、自动换行、搜索、字号、分块导航) |
| JS / TS / Python / Go / Rust / Java / C/C++ / C# / Shell / HTML / CSS / SQL / … | 源码(highlight.js 语法高亮,只读) |
| Markdown | 安全预览 + 源码 |
| JSON / JSONL | 树形视图(展开/折叠、复制值或路径)+ 源码 |
| YAML | 源码 + 解析后的树形视图 |
| 其他格式 | 后备视图(元数据、外部打开、定位文件、复制路径、可选“作为文本打开”) |
工作原理
- Host 端(dist/index.js)注册 /fileviewer 认证 RPC 通道,并提供 fileViewerContent 内容提供器注册表,以及供受信任传输插件使用的受限 fileViewerHost 服务。内容不必来自本地目录:其他 Host 插件可以为 artifact://run/report.json、对象存储、生成产物或远程 API 等 locator 注册读取器。只有在 ctx.fs 可用时,插件才会安装带边界校验的本地文件提供器;在 DSH v0.1.2+ 包图中,它会从 ctx.workspaceRegistry 发现 workspace roots,从 ctx.sessions 发现实时 session cwd,并通过 ctx.sessionController 执行原生外部打开。
- Client 端(dist/client.js)提供 fileViewer 服务(ctx.get('fileViewer') → openFile(path, { line, renderer })),并将文件查看器作为与“对话”“轨迹”并列的 Harness Tab 展示。可以从对话中的产物文件标签,或 Workspace 行“…”菜单中的浏览文件 / Browse files入口打开。
- Workspace“…”菜单补丁(scripts/patch-workspace-menu.mjs):由于 Workspace 行菜单目前没有 Slot,此脚本会对 deepseek-harness 新版源码 checkout(已验证到 dsh-v0.1.5-rc.1)或已安装的 @deepseek-ai/dsh-client-ui-workspace 客户端包执行带守卫、可重复运行的修改,加入浏览文件入口及中英文文案。Harness 更新后可以安全地重新运行;若上游结构发生变化,脚本会明确报错并停止。
- 大文件策略:小于 5 MB 时整文件读取;5–50 MB 分块流式读取;大于 50 MB 默认只读取开头,并提供“加载更多 / 跳到末尾”。单次范围读取上限为 8 MiB,文本和 CSV 行采用窗口化渲染,因此不会把 500 MB 日志一次性载入浏览器内存。
- 主题:样式只使用 --dsw-alias-* 变量并遵循 Harness 面板比例,可自动适配明暗主题。
兼容性
dsh-file-viewer v0.3.4 起同时支持 DSH v0.1.1-rc.2 和采用破坏性新包图的 v0.1.2+,已验证到 dsh-v0.1.5-rc.1。在 rc2 上,Host RPC 通道会显式声明仅允许 loopback,Workspace 发现使用旧版 apiProxy fallback;在 v0.1.2+ 上则会额外使用 ctx.workspaceRegistry、ctx.sessions 和 ctx.sessionController。Client 元数据只依赖受支持包图共有的包,再由它们的传递依赖提供各版本对应的运行时服务。
在 v0.1.2+ 上,查看器还会接收 conversation.view focus request,并将其中不透明的 focus 值作为文件 locator 打开。
DSH 和 React 包在本插件中是由宿主提供的 optional peer dependencies。
v0.1.2+ profile 关闭了 peer 自动安装(autoInstallPeers: false),因此安装本插件时不应额外安装或要求 profile 再声明一份内置平台包。由于 npm semver 不会让 =0.1.2-alpha.1 =0.1.5-rc.1 { const content = runtime.get('fileViewerContent')!
runtime.effect(() => content.register({
id: 'run-artifacts',
supports: locator => locator.startsWith('artifact://'),
async stat(locator) {
if (locator !== 'artifact://run-42/report.json') return undefined
return {
name: 'report.json',
mime: 'application/json',
size: report.byteLength,
}
},
async read(locator, { offset, length }) {
if (locator !== 'artifact://run-42/report.json') throw new Error('Not found')
return report.slice(offset, offset + length)
},
}), 'register run artifact viewer')
})
内容提供器还可以实现 list(),为目录型 locator 提供列表;也可以实现 openExternal(),完成来源相关的外部交接。register() 会返回注销函数,使提供器生命周期与供应插件保持一致。
受信任的传输插件可以注入 fileViewerHost,并转发明确允许的端点集合。dsh-remote 正是通过这种方式预览远端 Host 文件:访问检查仍由所选 File Viewer 内容提供器负责,传输层则执行自身的身份验证、大小限制和方法白名单。远端接口不会暴露 openExternal。
纯浏览器插件也可以直接在 Client 服务上注册相同的读取器,无需 Host RPC 或本地路径: ts import type { FileViewerClientService } from 'dsh-file-viewer' const markdown = new TextEncoder().encode('# Live preview')
ctx.inject(['fileViewer'], runtime => {
const viewer = runtime.get('fileViewer')!
runtime.effect(() => viewer.registerContentProvider({
id: 'live-preview',
supports: locator => locator === 'memory://preview.md',
async stat() { return { name: 'preview.md', size: markdown.byteLength } },
async read(_locator, { offset, length }) {
return markdown.slice(offset, offset + length)
},
}), 'register live preview')
viewer.openFile('memory://preview.md')
})
配置 yaml cordis.patch.yml / 设置
- id: dsh-file-viewer
name: dsh-file-viewer
config:
enabled: true
extraRoots:
- /srv/data # 可选的额外可读目录
开发 bash
npm install
npm run build # 类型声明 + esbuild → dist/types + dist/index.js + dist/client.js
npm run check # 对 src 和 tests 执行严格 TypeScript 检查
npm test # vitest:mime、renderer、paths、large-file、csv、json、file-service
安装到 DSH Profile bash 在仓库根目录执行;Profile 会从当前目录解析相对路径
dsh plugin --profile web add /path/to/dsh-file-viewer
兼容补丁:在每个 Workspace 的“…”菜单中加入“浏览文件” 针对 v0.1.2+ 源码 checkout:
DSH_HARNESS_SOURCE=/path/to/deepseek-harness node scripts/patch-workspace-menu.mjs
或针对已安装的 profile 包:
node scripts/patch-workspace-menu.mjs
然后重启 Web 服务。安全重启流程见 scripts/restart-dsh-web.sh。
仅修改 Client 时可通过 dsh-client-hmr 热更新;修改 Node 端后需要重启 Web 服务。Harness 更新并重新安装 @deepseek-ai/dsh-client-ui-workspace 后,请再次运行 scripts/patch-workspace-menu.mjs。
安全说明
- 可选的本地文件提供器会在 Host 端对真实路径执行允许根目录校验(DSH v0.1.2+ workspace 路径、实时 session cwd、Host cwd 和配置的额外 roots,经 fs.contains 校验)。自定义提供器必须在自己的 locator 命名空间内负责授权。
- Markdown 使用 html: false 渲染,并通过 DOMPurify 移除脚本、iframe、事件处理器和 javascript: URL。
- SVG 不会作为 HTML 注入,只通过 显示。
- 插件会通过 NUL 扫描和魔数识别二进制文件;“作为文本打开”始终需要用户明确操作。
- 每个渲染器都有独立错误边界;损坏的 PDF/JSON 不会导致 Harness 界面崩溃。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
liguobao/dsh-file-viewer
在网页里直接查看图片、PDF、表格与源码文件
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7