catalog/repos/aig787--agpm.md

7.7 KiB
Raw Permalink Blame History

AI编码助手包管理器

包管理器 AI助手 Claude Code Git Rust 依赖管理

AGPM - AI智能体包管理器

⚠️ 测试版软件:本项目正在积极开发中,在生产环境中使用请谨慎。

一个面向 AI 编码助手Claude Code、OpenCode 等)的 Git 包管理器,通过基于锁文件的依赖管理实现可复现的安装,类似于 Cargo。

功能特性

  • 📦 基于锁文件的依赖管理 - 像 Cargo 一样实现可复现安装
  • 🌐 基于 Git 的分发 - 从任意 Git 仓库安装
  • 🚀 无中心注册表 - 完全去中心化方案
  • 🤖 多工具支持 - Claude Code、OpenCodealpha及自定义工具
  • 🔧 七种资源类型 - 智能体、代码片段、命令、脚本、钩子、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.jsonopencode.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 🦀 构建,追求可靠性与性能