aspm
arkylab/aspmМенеджер пакетов на основе Git для AI-разработки: управляет скиллами, агентами, командами, хуками и другими AI-ресурсами. Поддерживает транзитивные зависимости, версионирование через Git-теги и установку плагинов Claude Code.
Установка
git clone https://github.com/arkylab/aspm.gitREADME
aspm — AI Skill Package Manager
Менеджер пакетов на основе Git для AI-разработки, аналогичный npm, но поддерживающий скиллы, агентов, команды, хуки и любые другие типы AI-ресурсов.
Возможности
- 📦 Два режима проекта: проект-публикатор (
aspub.yaml) и проект-потребитель (aspkg.yaml) - 🔗 Распределённое управление зависимостями: ссылки на пакеты напрямую через Git URL, без центрального реестра
- 🏷️ Гибкое версионирование: поддержка Git-тегов, веток и коммитов
- 📥 Упрощённые правила версий: автоматический выбор максимальной версии, удовлетворяющей всем зависимостям
- 🔧 Универсальная архитектура: не ограничивается скиллами, поддерживает любые типы AI-ресурсов
- 🔌 Поддержка нескольких форматов: установка как aspm-пакетов, так и репозиториев плагинов Claude Code
Установка
Быстрая установка
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/arkylab/aspm/main/scripts/install.sh | shWindows (PowerShell):
irm https://raw.githubusercontent.com/arkylab/aspm/main/scripts/install.ps1 | iexСборка из исходников
git clone https://github.com/arkylab/aspm.git
cd aspm
cargo build --releaseСкомпилированный бинарный файл будет находиться по пути target/release/aspm (или aspm.exe на Windows).
Быстрый старт
Создание проекта-потребителя (если вы используете скиллы)
# Инициализация проекта-потребителя
aspm init --consumer
# Создаётся файл aspkg.yamlНастройка aspkg.yaml
# Целевая директория для установки
install_to:
- .claude # Установка в директорию плагинов Claude Code
dependencies:
superpowers:
git: "https://github.com/obra/superpowers.git"
branch: "main"Установка зависимостей
aspm install
# После выполнения `aspm install` все зависимости готовы к использованию. Если вы работаете с Claude Code, перезапустите его для загрузки новых скиллов. Иногда может потребоваться перезапустить дважды.✅ Это всё, что нужно сделать как потребителю скиллов
Создание проекта-публикатора (если вы предоставляете скиллы)
Проекты-публикаторы позволяют делиться AI-ресурсами с другими разработчиками.
Поддерживаемые форматы репозиториев:
| Формат | Описание | Рекомендуется |
|---|---|---|
| Формат aspm | Репозиторий с aspub.yaml в корне | ✅ Да |
| Формат плагина Claude | Репозиторий с директориями skills/, agents/ и др. в корне | ⚠️ Нет |
| Формат одного скилла | Репозиторий только с SKILL.md в корне | ⚠️ Нет |
aspm рекомендует формат aspm, поскольку он обеспечивает:
- ✅ Явный контроль над публикуемым содержимым
- ✅ Поддержку транзитивных зависимостей
- ✅ Автоматическое разрешение зависимостей
# Инициализация проекта-публикатора
aspm init my-skill-pack
# Создаётся файл aspub.yaml (конфигурация публикации).
# aspub.yaml и aspkg.yaml могут сосуществовать в одном проекте — первый для публикации собственных ресурсов, второй для потребления зависимостей.Настройка aspub.yaml
name: my-skill-pack
version: 1.0.0
description: "A pack of useful AI resources"
author: "Your Name"
license: MIT
# Целевая директория для зависимостей этого пакета (опционально)
install_to:
- .claude
# Зависимости (опционально)
dependencies:
core-utils:
git: "https://github.com/user/utils.git"
tag: "v1.0.0"
# Публикуемые ресурсы (пути относительно расположения aspub.yaml)
publish:
skills:
- skills/brainstorming/
- skills/writing-plans.md
commands:
- commands/code-review.mdСоздание скиллов
Структура директорий полностью настраивается через aspub.yaml:
# aspub.yaml
name: my-skill-pack
version: 1.0.0
# Публикация конкретных ресурсов с опциональными regex-паттернами
# Пути относительно расположения aspub.yaml
publish:
skills:
- skills/brainstorming/ # совпадение с директорией (завершающий /)
- skills/writing-plans.md # совпадение с файлом
- "skills/^test-.*/" # regex: директории, начинающиеся с test-
commands:
- commands/code-review.md # совпадение с файломСоответствующая структура директорий:
my-skill-pack/
├── aspub.yaml
├── skills/
│ ├── brainstorming/
│ │ └── SKILL.md
│ ├── writing-plans.md
│ └── test-helpers/ # совпадает с "^skills/test-.*/"
└── commands/
└── code-review.md # файл (без завершающего /)
Правила путей публикации:
| Паттерн | Поведение |
|---|---|
skills/brainstorming | Совпадение только с файлом skills/brainstorming |
skills/brainstorming/ | Совпадение только с директорией skills/brainstorming/ (завершающий /) |
skills/^test-.*/ | Regex — директории внутри skills/, начинающиеся с test- |
commands/^.*\.md$ | Regex — все файлы .md |
Regex определяется автоматически при наличии метасимволов: ^ $ . * + ? [ ] ( ) { } | \
Поддерживаемые форматы репозиториев
aspm поддерживает три формата репозиториев:
1. Формат aspm (рекомендуется)
Репозитории с aspub.yaml в корне. Рекомендуемый формат, поскольку обеспечивает:
- ✅ Явный контроль над публикуемым содержимым
- ✅ Поддержку выборочной публикации (только указанные ресурсы)
- ✅ Поддержку транзитивных зависимостей
2. Формат плагина Claude Code
Репозитории без aspub.yaml, но с директориями ресурсов в корне:
superpowers/
├── .claude-plugin/
│ └── marketplace.json
├── skills/
│ └── brainstorming/
│ └── SKILL.md
├── agents/
├── commands/
├── hooks/
└── rules/
Установка плагинов Claude Code
# aspkg.yaml
dependencies:
superpowers:
git: "https://github.com/obra/superpowers.git"
branch: "main"3. Формат одного скилла
Репозитории только с файлом SKILL.md в корне (без стандартных директорий). aspm автоматически оборачивает его в структуру директории skills/ при установке.
Режимы установки
aspm поддерживает два режима установки:
Обычный режим (по умолчанию)
Копирует ресурсы в <target>/<type>/<pkg>/:
.agents/
├── skills/
│ └── my-pack/
│ └── my-skill/
└── commands/
Примечание: Поддерживаемые директории: skills, agents, commands, hooks, rules
Режим Claude
Копирует весь репозиторий в <target>/-plugins/<pkg>/ — используется для совместимости с форматом плагинов Claude Code.