前言¶
在 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。