mcpField
R
repomix-unmixer

repomix-unmixer

github.com/daymade开发1.5k887 次安装今天更新
代码仓库

关于 repomix-unmixer

Repomix Unmixer 可将打包的仓库文件还原为独立文件,并恢复原有目录结构,适用于检查、恢复或重用以 XML、Markdown 或 JSON 形式分享的仓库内容。

主要功能

  1. 01解析 XML、Markdown 和 JSON
  2. 02提取文件路径与内容
  3. 03重建目录结构
  4. 04报告提取进度与总数
  5. 05提供验证指引

适用场景

  1. 01还原以 Repomix 文件分享的技能
  2. 02检查打包后的仓库
  3. 03从备份中恢复工作文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/daymade/claude-code-skills --skill repomix-unmixer

安装后在 Claude Code 中输入/repomix-unmixer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
repomix-format.md
validation-workflow.md
scripts/
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"
脚本的功能
  1. 解析 Repomix 文件格式(XML、Markdown 或 JSON)
  2. 提取每个文件的路径和内容
  3. 创建原始目录结构
  4. 写入每个文件至其原始位置
  5. 报告提取进度和统计信息
输出

脚本将:

  • 创建所有必要的父目录
  • 保留文件路径并提取所有文件
  • 打印每个文件的提取进度
  • 显示提取文件的总数

输出示例:

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"

验证工作流

解包后,请验证提取的文件是否正确:

  1. 检查文件数:确认提取的文件数量符合预期
  2. 检查结构:使用 tree 或 ls -R 检查目录布局
  3. 抽查内容:读取几个关键文件,验证内容完整性
  4. 运行验证:对于技能,使用 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 格式版本不受支持
  • 文件路径模式不匹配

解决方案:

  1. 确认输入文件是 Repomix 输出文件
  2. 检查格式(XML/Markdown/JSON)
  3. 手动检查文件结构
  4. 参阅 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"

最佳实践

  1. 提取到临时目录 - 初步检查时,始终提取到 /tmp 或类似目录
  2. 核对文件数量 - 确认提取的文件数量符合预期
  3. 检查结构 - 使用 tree 检查目录布局后再使用
  4. 检查内容 - 抽查几个文件,确保内容完整
  5. 使用验证工具 - 对于技能,取消打包后使用 skill-creator 进行验证
  6. 保留原始文件 - 将原始 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 工具进行技能专项验证
  • 质量保证清单

用户需要验证取消打包后的技能或检查提取质量时,请加载此参考资料。

评论

支持 Markdown