7.7 KiB
7.7 KiB
AI编码助手包管理器
包管理器 AI助手 Claude Code Git Rust 依赖管理
AGPM - AI智能体包管理器
⚠️ 测试版软件:本项目正在积极开发中,在生产环境中使用请谨慎。
一个面向 AI 编码助手(Claude Code、OpenCode 等)的 Git 包管理器,通过基于锁文件的依赖管理实现可复现的安装,类似于 Cargo。
功能特性
- 📦 基于锁文件的依赖管理 - 像 Cargo 一样实现可复现安装
- 🌐 基于 Git 的分发 - 从任意 Git 仓库安装
- 🚀 无中心注册表 - 完全去中心化方案
- 🤖 多工具支持 - Claude Code、OpenCode(alpha)及自定义工具
- 🔧 七种资源类型 - 智能体、代码片段、命令、脚本、钩子、MCP 服务器、技能(alpha)
- 🎯 模式匹配依赖 - 使用 glob 模式批量安装
- 🖥️ 跨平台 - 支持 Windows、macOS 和 Linux
- 🔄 传递依赖 - 自动依赖解析
- 📝 Markdown 模板 - 支持依赖嵌入和项目文件过滤的动态内容生成(可选)
- 📊 Token 计数 - 基于 BPE 的近似 Token 数统计,用于资源追踪
快速开始
安装
# macOS/Linux 通过 Homebrew
brew install aig787/homebrew-agpm/agpm-cli
# 所有平台通过 Cargo
cargo install agpm-cli
# 预构建二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/aig787/agpm/releases/latest/download/agpm-installer.sh | sh
更多选项和平台特定说明请参阅安装指南。
基本用法
# 初始化新项目
agpm init
# 安装依赖
agpm install
# 检查更新
agpm outdated
# 更新依赖
agpm update
# 列出已安装的资源
agpm list
示例配置文件
# agpm.toml
[sources]
community = "https://github.com/aig787/agpm-community.git"
[agents]
# Claude Code 智能体(默认)
rust-expert = { source = "community", path = "agents/rust-expert.md", version = "v1.0.0" }
# OpenCode 智能体(alpha)
assistant-oc = { source = "community", path = "agents/assistant.md", version = "v1.0.0", tool = "opencode" }
[snippets]
# 共享代码片段(默认:.agpm/snippets/)
react-hooks = { source = "community", path = "snippets/react-hooks.md", version = "~1.2.0" }
[commands]
deploy = { source = "community", path = "commands/deploy.md", version = "v2.0.0" }
[skills]
# 基于目录的专业技能包(alpha)
rust-helper = { source = "community", path = "skills/rust-helper", version = "v1.0.0" }
更多完整示例请参阅 docs/examples/。
核心命令
| 命令 | 描述 |
|---|---|
agpm init |
初始化新项目 |
agpm install |
从 agpm.toml 安装依赖 |
agpm update |
在版本约束范围内更新依赖 |
agpm outdated |
检查可用更新 |
agpm upgrade |
将 AGPM 自身升级到最新版本 |
agpm migrate |
从旧版 AGPM 迁移到最新格式 |
agpm list |
列出已安装的资源 |
agpm tree |
显示带 Token 数量的依赖树 |
agpm validate |
验证配置文件和依赖 |
agpm add |
添加源或依赖 |
agpm remove |
移除源或依赖 |
agpm config |
管理全局配置 |
agpm cache |
管理 Git 缓存 |
运行 agpm --help 查看完整命令参考,或查阅命令参考文档。
进度显示
AGPM 通过简洁专业的界面提供安装进度的实时可见性:
安装阶段
⠁ 同步源
✓ 源同步完成 (0.8s)
⠂ 解析依赖
✓ 已解析 500 个依赖 (1.2s)
⠄ 安装资源 (127/500 完成)
→ agents/helper-122
→ agents/helper-123
→ agents/helper-124
→ snippets/example-45
→ commands/lint-67
→ agents/helper-125
→ agents/helper-126
✓ 已安装 500 个资源 (12.3s)
✓ 300 个智能体
✓ 150 个代码片段
✓ 50 个命令
✓ 完成安装 (0.2s)
已安装 500 个资源
已配置 2 个 MCP 服务器
功能特点
- 活动窗口:显示当前正在处理的资源(5-10 行)
- 实时更新:资源的出现和完成实时展示
- 耗时信息:每个阶段显示持续时间,便于性能分析
- 输出有界:无论依赖数量多少,终端始终保持整洁
- 资源摘要:按资源类型(智能体、代码片段等)显示最终汇总
- 专业展示:简洁输出,无表情符号前缀
资源类型
AGPM 管理七种类型的资源,安装到 agpm/ 子目录,便于 gitignore 管理:
- 智能体 - AI 助手配置(
.claude/agents/agpm/、.opencode/agent/agpm/) - 代码片段 - 可复用代码模板(
.agpm/snippets/) - 命令 - 斜杠命令(
.claude/commands/agpm/、.opencode/command/agpm/) - 脚本 - 可执行自动化文件(
.claude/scripts/agpm/) - 钩子 - 基于事件的自动化(→
.claude/settings.local.json) - MCP 服务器 - 模型上下文协议服务器(→
.mcp.json、opencode.json) - 技能 - 基于目录的专业技能包(
.claude/skills/)🚧 Alpha
详细信息请参阅资源指南。
模板功能
AGPM 为 Markdown 资源的动态内容生成提供了强大的模板功能:
依赖内容嵌入
嵌入来自 AGPM 依赖的版本化内容:
---
agpm.templating: true
dependencies:
snippets:
- path: snippets/rust-patterns.md
name: rust_patterns
---
# Rust 代码审查员
## 共享模式
{{ agpm.deps.snippets.rust_patterns.content }}
项目文件过滤
读取并嵌入项目特定文件(团队文档、公司规范):
---
agpm.templating: true
---
# 团队智能体
## 公司风格指南
{{ 'project/styleguide.md' | content }}
## 团队规范
{{ 'docs/conventions.txt' | content }}
核心特性:
- 🔒 安全:路径验证防止路径遍历攻击
- 📁 仅限文本文件:
.md、.txt、.json、.toml、.yaml - 🔄 递归:项目文件可引用其他项目文件(最深 10 层)
- 🎯 组合使用:支持同时使用依赖内容和项目文件
完整文档和示例请参阅模板指南。
文档
| 指南 | 描述 |
|---|---|
| 安装指南 | 所有安装方式和系统要求 |
| 用户指南 | 入门指引和基本工作流 |
| 命令参考 | 完整命令语法和选项 |
| 多工具支持 | 管理多个 AI 助手的资源 |
| 依赖指南 | 版本约束、冲突和传递依赖 |
| 资源指南 | 使用不同资源类型 |
| 配置指南 | 全局配置、认证和补丁 |
| 配置文件参考 | 完整 agpm.toml 结构说明 |
| 版本控制指南 | 版本约束和 Git 引用 |
| 模板指南 | 使用 Tera 进行动态内容生成 |
| 架构文档 | 技术细节和设计决策 |
| 示例 | 示例配置和使用场景 |
| 常见问题 | 常见问题解答 |
| 技能指南 | 基于目录的专业技能包 |
| 故障排查 | 常见问题及解决方案 |
系统要求
- Rust 1.85.0+(从源码构建时需要)
- Git 2.0+(用于仓库操作)
贡献
欢迎贡献代码!详情请参阅贡献指南。
支持
许可证
MIT 许可证 - 详情请参阅 LICENSE.md。
使用 Rust 🦀 构建,追求可靠性与性能