Git 优先的文件树侧栏:VS Code 风格层级线、M/A/U/D/R git 状态装饰、HEAD 与工作区对照预览、媒体预览、拖拽引用(文件/文件夹/选中代码带行号)—— 纯插件。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:No-PRM/dsh-explorer#path:/dsh-plugins/dsh-explorer
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-explorer
文件树侧栏的宿主端插件(基于 dsh web 服务器的只读 JSON 接口)—— 浏览器端唯一能读写本地文件系统与 git 的桥梁。
接口
| 接口 | 用途 |
|---|---|
GET /filetree/list?path=<绝对路径> |
列出单层目录:{ ok, path, entries: [{ name, kind, size, mtime, hidden }], truncated }。目录优先、大小写不敏感排序;点文件标记 hidden;有界并发 stat 池(48 worker)。 |
GET /filetree/root |
宿主进程的 cwd({ ok, cwd })。 |
GET /filetree/read?path=<绝对路径> |
读取文件用于预览:512 KB 上限(truncated)、NUL 字节二进制检测、UTF-8 内容。 |
GET /filetree/search?path=<绝对路径>&q=<关键词> |
递归按文件名搜索(有界:4000 次扫描 / 200 结果 / 深度 14;跳过 .git 和 node_modules)。 |
GET /filetree/raw?path=<绝对路径> |
为媒体预览流式输出文件(image/*、video/*、audio/*、PDF):正确 content-type、Accept-Ranges + Range 断点支持(206 分段响应,视频可拖动进度)。无大小上限。 |
GET /filetree/gitdiff?path=<绝对路径> |
供预览对照用的 HEAD 与工作区内容:{ ok, git, base, current, same, binary }(512 KB 上限,二进制 → 空)。 |
GET /filetree/gitstatus?path=<绝对路径> |
供 git 装饰用的状态:{ ok, git, root, entries: [{ path, status, x, y }], truncated? }。状态字母 A/M/D/R/C/U/T(I = 忽略);通过 rev-parse --show-toplevel 向上找仓库根;忽略项来自折叠的 --ignored 扫描(即使忽略树巨大也很快);2 秒 TTL 缓存。非仓库/无 git → { git: false }。 |
- 只接受绝对路径(相对路径返回
400 invalid-path)。 - 损坏的符号链接 / 不可读子条目会降级为一行,而不是让整个列表失败。
- 每次只列一层 —— 浏览器按需懒加载。
- 纯 GUI 只读面:不会进入模型上下文。
- 零运行时依赖(仅 node:fs、node:path、node:child_process)。
安装
通过 web profile 的 cordis.patch.yml 挂载为一行 cordis 配置:
- insert:
- id: filetree
name: dsh-explorer
包位于 ~/.dsh/profiles/web/node_modules/dsh-explorer(profile 的解析根目录)。
免重启部署提示: 宿主代码改动不会热重载。要让改动无需重启即生效,把包名递增(例如复制为
dsh-explorer-v1并更新上面的name:),新的模块 id 会在下次补丁重放时加载;直接重启也可以。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-git-graph★ 8262
输入框上方提供 Git 分支选择器,并把分支泳道与提交历史画成图谱,沿着时间线找到任意变更。
Akimiya-z/codex-guard#dsh★ 138
在 DeepSeek Harness 内做提交前的 Pull Request 卫生检查:扫描当前改动中的 TODO 残留、硬编码密钥与非规范提交信息。
Cerbur/clutch-dsh#clutch-dsh-worktree★ 30
为 DSH Web UI 增加按 Git Worktree 组织 Session 的视角,同时继续由 DSH 管理原始 Project 和 Session 数据。
lehhair/dsh-diff-viewer★ 26
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
PerryLink/dsh-github★ 22
官方级 GitHub CI 集成:composite action.yml、轮询 PR 评审机器人(幂等行内评论 + status-check 门禁)以及 PR/issue 工具,所有写入走人工审批门。
DamonKoy/dsh-web-ui#dsh-git-graph★ 21
dsh web GUI 会话头部栏的 Git 分支选择器与提交图。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。