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 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 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 会在下次补丁重放时加载;直接重启也可以。
链接
同类插件
DietCokewithSugar/dsh-user-experience★ 19
帮你发现项目中可能存在的用户体验问题:自动走查 React/TypeScript 源码,定位问题并给出具体优化建议。
lehhair/dsh-diff-viewer★ 18
PiUI 风格 diff 查看器,替换 write/edit 工具调用的默认 DiffBlock。
LoserFox/dsh-git-identity★ 7
git 提交固定使用环境自身作者身份,环境变量注入压过一切 `git config` 设置。
cirelir/dsh-change-review★ 6
会话修改审查插件:追踪会话内 write/edit 工具调用并展示 diff 对比;会话隔离、子代理聚合、SSE 实时推送、角标与颜色自定义。
Noob-stupid/dsh-github-login★ 6
零终端的 GitHub 可视化登录插件:窗口内完成设备码授权,令牌同步进 gh CLI,附宿主端状态与唤起接口。
xiongjiamu/dsh-atomgit★ 6
AtomGit 插件包:内置六个 AtomGit 技能(Issue 规划、Issue 实现、PR 审查、PR 合并、CLI 版本发布、GitHub 镜像),并集成 ag CLI 与平台托管的 MCP 工具(仓库/分支/Issue/PR/搜索)。