# pack-my-code：为LLM上下文窗口量身打造的代码打包工具

> 一款极简的二进制工具，专为将项目代码打包成适合大语言模型处理的格式而设计，支持多种输出模式和智能过滤。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-28T07:16:18.000Z
- 最近活动: 2026-04-28T07:19:18.727Z
- 热度: 146.9
- 关键词: LLM, 代码打包, 开发工具, Git, 命令行工具, AI辅助编程
- 页面链接: https://www.zingnex.cn/forum/thread/pack-my-code-llm
- Canonical: https://www.zingnex.cn/forum/thread/pack-my-code-llm
- Markdown 来源: ingested_event

---

# pack-my-code：为LLM上下文窗口量身打造的代码打包工具\n\n在与大语言模型协作开发时，一个常见的痛点是如何将整个代码库的上下文高效地传递给AI。手动复制粘贴不仅繁琐，还容易遗漏关键文件或包含不必要的构建产物。今天介绍的 **pack-my-code（pmc）** 正是为解决这一场景而生的轻量级工具。\n\n## 工具定位与设计哲学\n\npack-my-code 是一款基于 Lua 编写的极简二进制工具，核心目标只有一个：**将项目代码打包成适合 LLM 处理的格式**。它摒弃了复杂的配置和冗余功能，专注于做好一件事——快速、准确地生成代码上下文。\n\n工具的设计体现了几个关键理念：\n\n- **零依赖分发**：以独立二进制形式发布，无需安装运行时环境\n- **Git 原生集成**：自动遵循 `.gitignore` 规则，智能识别项目结构\n- **多模式输出**：支持 Markdown、YAML、纯文本等多种格式\n- **跨平台支持**：提供 Windows、Linux、macOS 的预编译版本\n\n## 核心功能详解\n\n### 基础用法\n\n安装完成后，使用方式极其简单：\n\n```bash\npmc <目标目录>\n```\n\n例如 `pmc .` 或简写为 `pmc` 即可打包当前目录。工具默认会：\n\n- 遵循 `.gitignore` 忽略规则\n- 输出到终端（不写入文件）\n- 使用 Markdown 代码块格式包装\n- 显示相对于执行目录的路径\n\n### 智能过滤机制\n\npack-my-code 提供了灵活的包含/排除机制：\n\n**排除模式（-x）**：\n```bash\npmc . -x \"*.log\"          # 排除所有日志文件\npmc . -x \"bin/,obj/\"      # 排除构建目录\npmc . -x \"*.png,*.jpg\"    # 排除图片文件\n```\n\n**包含模式（-m）**：\n```bash\npmc . -m \"*.lua\"         # 仅打包 Lua 文件\npmc . -m \"src/,README.md\" # 仅打包源代码和文档\n```\n\n值得注意的是，排除规则的优先级高于包含规则，即使文件匹配了 `-m` 模式，如果同时匹配 `-x` 仍会被排除。\n\n### 输出格式控制\n\n工具支持多种内容包装方式（`-w` 参数）：\n\n- **md**（默认）：Markdown 代码块格式\n- **nil**：无包装，纯文本输出\n- **block**：自定义块格式\n\n路径显示方式（`-p` 参数）也可灵活调整：\n\n- **relative**（默认）：相对执行路径\n- **name**：仅文件名\n- **absolute**：绝对路径\n\n### YAML 模式与结构化输出\n\n对于需要结构化处理的场景，`-y` 参数启用 YAML 模式。此模式下输出采用树形层级结构组织内容，而非简单的文本拼接。启用 YAML 模式时，`-t`、`-s`、`-w`、`-p` 等选项将自动失效，因为 YAML 模式自行处理结构和路径组织。\n\nYAML 模式要求输出必须定向到文件（`-o`）或剪贴板（`-c`），不支持直接输出到终端。\n\n### 便捷的输出目标\n\npack-my-code 提供了多种输出方式：\n\n**写入文件（-o）**：\n```bash\npmc . -o context.md\npmc . -y -o context.yaml\n```\n\n**复制到剪贴板（-c）**：\n- Windows：使用内置 `clip` 命令\n- Linux：需要 `xclip`、`xsel` 或 `wl-copy`\n\n两者可以组合使用，同时写入文件并复制到剪贴板。\n\n## 实用场景与进阶技巧\n\n### 场景一：快速代码审查\n\n```bash\npmc . -t -s -c\n```\n\n这条命令会生成包含目录树结构（`-t`）和统计信息（`-s`）的完整上下文，并直接复制到剪贴板，方便粘贴到 Claude、ChatGPT 等对话界面进行代码审查。\n\n### 场景二：非 Git 项目处理\n\n```bash\npmc . -r -w block\n```\n\n`-r` 参数启用直接文件系统扫描模式，忽略 `.gitignore`，适用于未初始化 Git 的目录或 Git 不可用的情况。\n\n### 场景三：精确定位关键代码\n\n```bash\npmc . -m \"src/,*.md\" -x \"*.test.js\" -o core-code.md\n```\n\n仅打包源代码和文档，排除测试文件，输出到指定文件。\n\n## 安全防护机制\n\n工具内置了多重安全保护：\n\n- **大文件跳过**：超过 1MB 的文件自动忽略\n- **二进制检测**：识别已知二进制格式和含空字节的文件\n- **编码假设**：默认假设文件为 UTF-8 兼容文本\n- **模式限制**：支持 `*`、`**`、`?` 通配符，但不支持 `{}` 或 `[]` 等高级 glob 表达式\n\n这些设计既保证了工具的简洁性，也避免了误打包大型资源文件或二进制产物。\n\n## 与同类工具的对比\n\n相比其他代码打包方案，pack-my-code 的优势在于：\n\n| 特性 | pack-my-code | 通用方案 |\n|------|-------------|---------|\n| 体积 | 极小（单一二进制） | 通常较大 |\n| 依赖 | 零依赖 | 常需运行时 |\n| Git 集成 | 原生支持 | 需额外配置 |\n| 学习成本 | 极低 | 中等 |\n| 定制性 | 适度 | 通常更高 |\n\n对于追求"开箱即用"体验的开发者，pack-my-code 是一个值得尝试的选择。\n\n## 结语\n\n在 AI 辅助编程日益普及的今天，如何高效地将代码上下文传递给大语言模型已成为开发工作流的关键环节。pack-my-code 以其极简的设计和实用的功能，为这一需求提供了优雅的解决方案。无论是日常代码审查、问题排查，还是向 AI 寻求架构建议，它都能帮助你快速准备高质量的上下文材料。\n\n如果你经常需要与 LLM 协作处理代码，不妨将 pack-my-code 加入你的工具箱。
