前言¶
在 DSH 里让模型理解一个代码库,常见做法是把目录树、关键文件片段或外部工具生成的摘要塞进上下文。问题在于:仓库稍大就容易越界,静默丢文件又难以察觉,敏感路径若未过滤还会被一并带出。你需要的是「可读、可估大小、截断可标记」的打包结果,而不是无限膨胀的目录 dump。
下面介绍社区插件 dsh-repomix(维护者 lengrufeng2008,分类:工作流)。它在 spirit 上借鉴 Repomix,输出单一 XML 或 Markdown 文档,并配合 per-file / total 上限与 truncated 标记,面向 DSH 的 context handoff。
这是什么¶
dsh-repomix 的定位是:Bounded, read-only repository packing for DSH context handoff(有边界、只读的仓库打包,用于 DSH 上下文传递)。
- 维护者:lengrufeng2008
- 当前版本(社区目录页):v0.1.0
- 许可证:MIT(见仓库
LICENSE;灵感来源与声明见NOTICE.md) - 运行环境:Node.js >= 20(见
package.json的engines)
插件不提供语义分块、embedding 或上传能力;打包内容是数据,不是给模型的指令。
核心功能¶
输出格式与体量控制¶
- 支持 XML 或 Markdown 两种
--format。 - 可按 单文件 与 总字节 设 cap;当内容被省略时,输出中会体现
truncated: true,而不是静默跳过。 - Token 仅为粗估:
characters / 4,不是真实 tokenizer 计数。
默认跳过项(护栏)¶
打包时会跳过例如:
.git、node_modules、dist、build、coverage、各类 cache- 常见 lockfile 与二进制
.env*、.npmrc、.netrc,以及 SSH / AWS 凭证相关目录
README 明确说明:跳过列表是 guardrail,不是保证。对外分享前务必自行检查输出。
刻意不做的事¶
- 不解析
.gitignore语义 - 不做语义分块、embedding 或上传
仓库测试用例包含二进制与 node_modules 诱饵目录,预期均不应出现在打包结果中(npm test)。
安装与启用¶
DSH 生态按「一切皆插件」组织;SkillHub 插件目录 是独立社区站点,与 DeepSeek / 幻方无官方从属关系。该页标注插件为「可安装工作流」,版本 v0.1.0。
目录页给出的安装方式,是向当前 DSH 会话说明要安装的插件标识(安装前仍建议自行阅读 GitHub 源码与 MIT 许可证):
请安装 DSH 插件 lengrufeng2008/dsh-repomix
插件以 当前 dsh 进程的权限 读取你指定的仓库路径;安装与使用前请确认你信任维护者与代码内容。
若要在本地直接调用 CLI(不依赖 DSH 会话),需在已获取源码的环境中使用 Node >= 20,入口为 bin/dsh-repomix.mjs(package.json 中 bin 字段:dsh-repomix)。
典型用法¶
命令行¶
将当前目录打成 XML 并写入文件:
node bin/dsh-repomix.mjs . --format xml --output repo.xml
打成 Markdown,并限制总大小(示例为 500000 字节量级参数):
node bin/dsh-repomix.mjs . --format markdown --max-total 500000
在 DSH 中调用工具¶
README 给出的 DSH 工具用法示例:
Use repo_pack on /path/to/repo with format=xml and maxTotalBytes=500000.
将 /path/to/repo 换成目标仓库绝对或相对路径;format 与 maxTotalBytes 按实际需要调整。收到结果后,若出现 truncated: true,说明仍有内容因 cap 被省略,需要缩小范围或提高上限后再打包。
适用场景与注意¶
适合:
- 要把一个 bounded 快照交给 DSH / 其他模型会话,且希望格式统一(单文件 XML 或 Markdown)
- 需要在交接前对总体积有大致 token 估计,并明确知道是否发生过截断
注意:
- 跳过列表不能替代安全审查;含密钥、内部 URL 的文件仍可能存在于未跳过路径中。
- 无
.gitignore语义时,「以为不会被打包」的文件仍可能进入输出。 - 星标与社区热度会变化;以 GitHub 与目录页当时信息为准(撰写时 GitHub 星标为 0)。
本地验证插件行为:
npm test
结尾¶
dsh-repomix 解决的是 DSH 场景下「只读、有上限、截断可见」的仓库上下文打包,而不是全量镜像仓库。需要安装入口与简介时,可看社区目录页 lengrufeng2008/dsh-repomix;实现细节、CLI 与测试见 GitHub:https://github.com/lengrufeng2008/dsh-repomix。