dsh-file-explorer-kit

DSH PLUGIN视觉与多模态

仓库 ice5kysl/dsh-file-explorer-kit · npm dsh-file-explorer-kit

视觉与多模态 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 会话内嵌「文件」标签页,直接浏览当前工作区目录并预览 Markdown、图片、PDF 与文本,无需切到系统文件管理器。

一句话选型结论

按资料字段整理

dsh-file-explorer-kit 是视觉与多模态类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类视觉与多模态 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-09-30 创建于 2026-09-04
README 9.4 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-file-explorer-kit@0.3.9
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 9 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 9 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-file-explorer-kit可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-file-explorer-kit:在 DeepSeek Harness 会话里直接浏览和预览工作区文件

  • 会话内新增文件标签页
  • 按会话工作区为根浏览目录
  • Markdown/图片/PDF/文本预览
  • 只读 /dsh-files 主机路由
  • 中英双语界面自动切换

适用场景

文件读写视觉识别

上游标签

cordisdeepseek-harnessdshdsh-pluginfile-explorerplugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 9 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在视觉与多模态场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-file-explorer-kit当前 L5 · 运行验证通过 低风险 1 0.2.0-rc.2 等 9 个 有
open-design L4 · 沙盒安装通过 低风险 10.0 万 未标注 有
awesome-gpt-image-2 L3 · 安装规范通过 低风险 3.4 万 未标注 无
PicGo L3 · 安装规范通过 低风险 2.7 万 未标注 无
iPolloWork L4 · 沙盒安装通过 低风险 6,775 未标注 有
modlens L5 · 运行验证通过 低风险 4,207 0.2.0-rc.2 等 13 个 有

仓库档案

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方ice5kysl仓库 dsh-file-explorer-kit · 默认分支 main
分类视觉与多模态vision
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-04 · 2026-09-30最后推送 2026-09-30
本站收录2026-09-05首次进入本站目录的时间

README 全文

9.4 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-file-explorer-kit

> GitHub: | MIT License | Target dsh: @deepseek-ai/dsh ≥ 0.1.1-rc.2 | English · 简体中文

A dsh (DeepSeek Harness) plugin written to official conventions, in "bundle" form. It solves one pain point:

> Your workspace holds lots of files, and every time you want a quick look at the directory structure or a file's contents, you have to switch to Finder / File Explorer — that's a hassle.

This plugin lets you browse workspace directories and preview files directly inside the session, without leaving dsh Web:

  • A third session tab, "Files" (Chat | Trajectory | Files; shown as 对话 | 轨迹 | 文件 in the Chinese UI): registers into the official conversation.view view ring, ordered after chat (order 0) and trajectory (order 10) at order 20, and the tab bar appears automatically; the tab label follows the interface language (文件 / Files);
  • Opens rooted at the current session's workspace directory; directory breadcrumbs + a directory/file list (directories first, size / time, a toggle for hidden dotfiles), plus jump to any absolute path;
  • Auto-refreshes while it is open (so you also see files the agent writes in the background); switch away and back, and the last directory is remembered per session;
  • Bilingual zh/en UI: auto-detected from the browser language (zh → Chinese, anything else → English), and a 「中 / EN」 (Chinese / English) button in the top bar switches at any time and remembers the preference;
  • Right-side preview: Markdown rendered by default (one-click 预览 (Preview) / Raw toggle; before rendering, content is parsed by marked and sanitized with DOMPurify to protect against XSS from malicious md files in the repo, and links inside the preview always open in a new tab), images shown inline, other text with line numbers (truncated with a notice when overly long), embedded PDF; binary files get a "Copy path / Open in file manager" action (via the official ctx.workspaces.openPath);
  • All directory/file data flows through the host-side /dsh-files read-only endpoints; the plugin never modifies any file.

Why host-side routes are needed (design notes; all based on the official docs/source)

The official browser contract only offers directory-level browsing (ctx.workspaces.listDirectory → host.listDirectory; DirectoryListing.entries contains only directory rows) — there are no file rows and no RPC that reads file contents. The conclusion we verified in dsh-workspace-kit — that "the client can only consume the ctx.remote.* generated at build time" — holds here as well. So previewing arbitrary workspace files is only possible through the official ctx.webServer.register route seam (dsh-host-webserver: WebRoute { kind, path, handler }; a named prefix takes priority over the fallback):

Endpoint (GET) Description
/dsh-files/home The host account's home directory
/dsh-files/list?path= Single-level directory: file + directory rows (kind/size/mtimeMs/hidden) + breadcrumbs, mirroring the official DirectoryListing semantics (missing path = home directory)
/dsh-files/text?path=&maxBytes= Text preview head (utf-8 decoded, NUL sniffing to detect binary, truncation marker; 300 KB server-side cap)
/dsh-files/raw?path= Raw byte stream (Content-Type guessed from the file extension, for ``/PDF embedding)
  • Read-only, with no write endpoints; the client never assembles paths itself (every path comes from a server response or a workspace/session path provided by the framework).
  • Every request passes a host-trust gate that mirrors the official /api trust fence: a loopback Host passes straight through; a non-loopback one needs a same-origin Origin marker. This is not an authentication layer — consistent with the official web server (binds 127.0.0.1 by default; keep the loopback binding when deploying).
  • The routes are registered in the plugin's apply via ctx.effect(() => ctx.webServer.register(...)) and are released automatically when the plugin's fiber unmounts.

> More detail — full route contract, error shape, and the permission/security boundary: docs/usage.md(中文:docs/usage.zh-CN.md).

Quick install (personal dsh on this machine)

Published on npm — if you already run dsh Web, install in one line:

dsh plugin --profile web add dsh-file-explorer-kit

The git route below is for development / running the latest source.

Prerequisites: dsh on PATH (@deepseek-ai/dsh ≥ 0.1.1-rc.2), Node 20+.

# 0. Get the source (or use a local directory directly)
git clone https://github.com/ice5kysl/dsh-file-explorer-kit && cd dsh-file-explorer-kit

# 1. Build (produces lib/index.js + lib/client.js; npm install's prepare hook
#    runs the build automatically)
npm install                # installs build-time deps (typescript/esbuild/@types/marked/dompurify/lucide-react, etc.)
npm run build

# 2. Install into your web profile (equivalent to the official dsh plugin add bundle)
bash scripts/install-personal.sh   # the script locates the plugin directory itself by walking up (run it straight from the repo root)
#    What the script actually runs: dsh plugin --profile web add
#    It appends this package to dsh.profile.bundles in ~/.dsh/profiles/web (after
#    dsh-web-app); the in-package cordis.patch.yml inserts the single Loader line.

# 3. Verify the composition (no restart needed)
dsh --profile web --dump-config | grep -n "file-explorer"

# 4. Restart the GUI to activate
#    Quit the current dsh web (Ctrl+C or kill the process), run dsh web again,
#    then refresh the browser at http://127.0.0.1:3080

Once it is active:

  • Open any session and the title bar shows three tabs — 对话 | 轨迹 | 文件 (Chat | Trajectory | Files); clicking "Files" browses that session's workspace directory in the body area (single-click a directory row to enter it, single-click a file row to preview; ↑↓/↵/⌫ keyboard navigation works).
  • The top bar holds one row: breadcrumbs + a "Show hidden / Refresh / 中EN (Chinese/English)" control + an absolute-path jump box; the preview panel offers "Copy path / Open in file manager".
  • Switch to another session and come back, and the "Files" tab remembers the directory that session last browsed (in-memory only; not across refreshes).

> Compatible with dsh-workspace-kit: this plugin only takes an additive slot (a tab) in conversation.view and does no replacement-style shadowing, so both plugins can be enabled together.

Package / distribute (optional)

npm pack          # produces dsh-file-explorer-kit-0.3.1.tgz (includes a prebuilt lib/; prepack builds automatically)
# On another machine: dsh plugin --profile web add ./dsh-file-explorer-kit-0.3.1.tgz

> npm package name: dsh-file-explorer-kit — the plain dsh-file-explorer name on npm belongs to an unrelated plugin (joejojoking-cloud), so always install as dsh plugin add dsh-file-explorer-kit, never as dsh-file-explorer.

Development

npm run typecheck   # tsc --noEmit (host + browser sources)
npm run build       # esbuild: src/host → lib/index.js; src/client → lib/client.js
npm test            # standalone smoke test of the host /dsh-files endpoints

Source layout:

src/host/     Host side: fs-server.ts (pure directory-scan / text-read functions),
index.ts (apply: registers the /dsh-files prefix routes via
ctx.effect + the host-trust gate)
src/client/   Browser side: FilesView.tsx (the file browser for the conversation.view
tab), browse-memory.ts (remembers the last directory per session),
files-api.ts (/dsh-files fetch client + types), actions.ts (openPath
binding), locale.ts (zh/EN detection and L()), icons.tsx (lucide SVG
row icons), index.ts (apply: conversation.view registration)
src/shared/   i18n.ts (pure localize/normalizeLocale, shared by host/client)
cordis.patch.yml    bundle layer: inserts the single Loader entry dsh-file-explorer-kit

Compatibility / known limitations

  • Target dsh: @deepseek-ai/dsh v0.1.1-rc.2 (dsh web, profile web). The browser face targets that release's conversation.view view-ring contract (tabs are auto-listed from the entries; the body renders only the active view per only:) and ctx.workspaces.openPath; re-validate against the upstream contract on version upgrades.
  • The "Files" tab only appears inside a session (the no-session hero state has no tabs) — an inherent boundary of session-level views.
  • Styling is inline (light theme) and does not follow the system theme — the same tradeoff as dsh-workspace-kit v1.
  • Security boundary: the endpoints are read-only; /dsh-files keeps the official trust posture (it is not an authentication layer). If you deploy behind a container/proxy where the Host header is not loopback, keep the dsh web service on a loopback binding or extend the trusted() allowlist in src/host/index.ts.
  • Integration with the LoopDSH platform's per-user instances is the same as for dsh-workspace-kit: see "Option A: idempotent pre-provisioning at harness startup" in docs/plugins/loopdsh-integration.md inside the LoopDSH repository.

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-file-explorer-kit 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-file-explorer-kit@0.3.9` 即可。对应的 npm 包名是 `dsh-file-explorer-kit`。

dsh-file-explorer-kit 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-file-explorer-kit 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-file-explorer-kit 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-file-explorer-kit 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.7-alpha.2、0.1.6-alpha.2、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-file-explorer-kit 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-file-explorer-kit 有哪些功能?

会话内新增文件标签页、按会话工作区为根浏览目录、Markdown/图片/PDF/文本预览、只读 /dsh-files 主机路由、中英双语界面自动切换。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

视觉与多模态
按星标排序,可作替代方案

open-design

open-design

L4 · 沙盒安装通过 10.0 万 星

awesome-gpt-image-2

awesome-gpt-image-2

GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+ 套工业级模板与可复用 Skills,新增 2.5 同提示词对比

L3 · 安装规范通过 3.4 万 星

PicGo

PicGo

L3 · 安装规范通过 2.7 万 星

iPolloWork

iPolloWork

L4 · 沙盒安装通过 6,775 星

modlens

modlens

ModLens 是 DeepSeek Harness 的视觉插件,为纯文本模型外挂视觉能力,粘贴图片即得结构化 JSON 证据(OCR、版面

L5 · 运行验证通过 4,207 星

OpenBiliClaw

OpenBiliClaw

本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微

L4 · 沙盒安装通过 3,398 星

ice5kysl 的其它插件

5 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。