关于 repomix-unmixer
Repomix Unmixer 可将打包的仓库文件还原为独立文件,并恢复原有目录结构,适用于检查、恢复或重用以 XML、Markdown 或 JSON 形式分享的仓库内容。
主要功能
- 01解析 XML、Markdown 和 JSON
- 02提取文件路径与内容
- 03重建目录结构
- 04报告提取进度与总数
- 05提供验证指引
适用场景
- 01还原以 Repomix 文件分享的技能
- 02检查打包后的仓库
- 03从备份中恢复工作文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill repomix-unmixer安装后在 Claude Code 中输入/repomix-unmixer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/repomix-format.mdvalidation-workflow.mdscripts/unmix_repomix.py详细介绍
Repomix 解包器
概述
此技能可从 Repomix 打包的仓库中提取文件,并还原其原始目录结构。Repomix 会将整个仓库打包成适合 AI 使用的单个文件(XML、Markdown 或 JSON),此技能则可逆向处理,将其还原为各个文件。
何时使用此技能
在以下情况下会激活此技能:
- 解包 Repomix 输出文件(.xml、.md、*.json)
- 从打包的仓库中提取文件
- 从 Repomix 格式还原原始目录结构
- 检查或验证 Repomix 打包的内容
- 将 Repomix 输出转换回可用文件
核心工作流
标准解包流程
使用随附的 unmix_repomix.py 脚本,从 Repomix 文件中提取所有文件并还原原始目录结构:
python3 scripts/unmix_repomix.py \
"<path_to_repomix_file>" \
"<output_directory>"
参数:
<path_to_repomix_file>:Repomix 输出文件的路径(XML、Markdown 或 JSON)<output_directory>:文件提取到的目录(如果不存在则会创建)
示例:
python3 scripts/unmix_repomix.py \
"/path/to/repomix-output.xml" \
"/tmp/extracted-files"
脚本的功能
- 解析 Repomix 文件格式(XML、Markdown 或 JSON)
- 提取每个文件的路径和内容
- 创建原始目录结构
- 写入每个文件至其原始位置
- 报告提取进度和统计信息
输出
脚本将:
- 创建所有必要的父目录
- 保留文件路径并提取所有文件
- 打印每个文件的提取进度
- 显示提取文件的总数
输出示例:
Unmixing /path/to/skill.xml...
Output directory: /tmp/extracted-files
✓ Extracted: github-ops/SKILL.md
✓ Extracted: github-ops/references/api_reference.md
✓ Extracted: markdown-tools/SKILL.md
...
✅ Successfully extracted 20 files!
Extracted files are in: /tmp/extracted-files
支持的格式
XML 格式(默认)
Repomix XML 格式结构:
<file path="relative/path/to/file.ext">
file content here
</file>
脚本使用正则表达式匹配 <file path="...">content</file> 块。
Markdown 格式
适用于带有文件标记的 Markdown 风格 Repomix 输出:
## File: relative/path/to/file.ext
文件内容
详细格式规范请参阅 references/repomix-format.md。
JSON 格式
适用于 JSON 风格的 Repomix 输出:
{
"files": [
{
"path": "relative/path/to/file.ext",
"content": "file content here"
}
]
}
常见用例
用例 1:解包 Claude 技能
提取以 Repomix 文件形式分享的技能:
python3 scripts/unmix_repomix.py \
"/path/to/skills.xml" \
"/tmp/unmixed-skills"
然后检查、验证或安装提取出的技能。
用例 2:提取仓库以供检查
提取打包的仓库,以检查其结构和内容:
python3 scripts/unmix_repomix.py \
"/path/to/repo-output.xml" \
"/tmp/review-repo"
# Review the structure
tree /tmp/review-repo
用例 3:还原工作文件
将 Repomix 备份中的文件还原到工作目录:
python3 scripts/unmix_repomix.py \
"/path/to/backup.xml" \
"~/workspace/restored-project"
验证工作流
解包后,请验证提取的文件是否正确:
- 检查文件数:确认提取的文件数量符合预期
- 检查结构:使用
tree或ls -R检查目录布局 - 抽查内容:读取几个关键文件,验证内容完整性
- 运行验证:对于技能,使用 skill-creator 验证工具
详细验证流程请参阅 references/validation-workflow.md,尤其是解包 Claude 技能的相关内容。
重要原则
始终指定输出目录
始终提供输出目录,以免当前工作目录变得杂乱:
# Good: Explicit output directory
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output"
# Avoid: Default output (may clutter current directory)
python3 scripts/unmix_repomix.py "input.xml"
使用临时目录进行检查
先提取到临时目录中,再进行检查:
# Extract to /tmp for review
python3 scripts/unmix_repomix.py \
"skills.xml" "/tmp/review-skills"
# Review the contents
tree /tmp/review-skills
# If satisfied, copy to final destination
cp -r /tmp/review-skills ~/.claude/skills/
覆盖前先验证
未经检查,切勿直接提取到重要目录:
# Bad: Might overwrite existing files
python3 scripts/unmix_repomix.py \
"repo.xml" "~/workspace/my-project"
# Good: Extract to temp, review, then move
python3 scripts/unmix_repomix.py \
"repo.xml" "/tmp/extracted"
# Review, then:
mv /tmp/extracted ~/workspace/my-project
故障排除
未提取任何文件
问题:脚本执行完毕,但没有提取任何文件。
可能原因:
- 文件格式错误(不是 Repomix 文件)
- Repomix 格式版本不受支持
- 文件路径模式不匹配
解决方案:
- 确认输入文件是 Repomix 输出文件
- 检查格式(XML/Markdown/JSON)
- 手动检查文件结构
- 参阅
references/repomix-format.md了解格式详情
权限错误
问题:无法写入输出目录。
解决方案:
# Ensure output directory is writable
mkdir -p /tmp/output
chmod 755 /tmp/output
# Or use a directory you own
python3 scripts/unmix_repomix.py \
"input.xml" "$HOME/extracted"
编码问题
问题:提取的文件中特殊字符显示乱码。
解决方案: 脚本默认使用 UTF-8 编码。如果问题仍然存在:
- 检查原始 repomix 文件的编码
- 确认文件创建正确
- 提供具体字符示例并报告问题
路径已存在
问题:提取路径中已有文件。
解决方案:
# Option 1: Use a fresh output directory
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output-$(date +%s)"
# Option 2: Clear the directory first
rm -rf /tmp/output && mkdir /tmp/output
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output"
最佳实践
- 提取到临时目录 - 初步检查时,始终提取到
/tmp或类似目录 - 核对文件数量 - 确认提取的文件数量符合预期
- 检查结构 - 使用
tree检查目录布局后再使用 - 检查内容 - 抽查几个文件,确保内容完整
- 使用验证工具 - 对于技能,取消打包后使用 skill-creator 进行验证
- 保留原始文件 - 将原始 repomix 文件保留为备份
资源
scripts/unmix_repomix.py
主要的取消打包脚本,能够:
- 解析 repomix XML/Markdown/JSON 格式
- 使用正则表达式提取文件路径和内容
- 自动创建目录结构
- 将文件写入其原始位置
- 报告提取进度和统计信息
该脚本独立运行,仅需 Python 3 标准库。
references/repomix-format.md
关于 repomix 文件格式的全面文档,包括:
- XML 格式结构和示例
- Markdown 格式模式
- JSON 格式架构
- 文件路径编码规则
- 内容提取模式
- 格式版本差异
遇到特定格式问题或需要支持新版 repomix 时,请加载此参考资料。
references/validation-workflow.md
提取内容的详细验证流程,包括:
- 文件数量核对步骤
- 目录结构验证
- 内容完整性检查
- 使用 skill-creator 工具进行技能专项验证
- 质量保证清单
用户需要验证取消打包后的技能或检查提取质量时,请加载此参考资料。