OpenSkills — единый загрузчик навыков SKILL.md для любого AI-кодинг-агента
📂 Исходный код на GitHubУниверсальный загрузчик навыков для AI-кодинг-агентов: ставит и подключает навыки в формате Anthropic SKILL.md в любом агенте, который читает AGENTS.md
Навык для агента — это папка с файлом SKILL.md: в начале файла короткое описание, дальше инструкции, скрипты и справочные материалы. Claude Code умеет такие навыки сам: он показывает агенту список навыков и подгружает нужный, когда задача подходит. Остальные агенты — Cursor, Windsurf, Aider, Codex и любой другой, кто умеет читать AGENTS.md, — такой возможности обычно не имеют.
OpenSkills — это npm-пакет и CLI, который закрывает этот разрыв. Он ставит навыки в формате Anthropic и подключает их к любому агенту. Проект написан на TypeScript, распространяется через npm под именем openskills, требует Node.js 20.6+ и Git, лицензия — Apache 2.0. Репозиторий numman-ali/openskills собрал около 10 800 звёзд.
Смысл в том, чтобы набор навыков был один и тот же для всех инструментов на машине, а формат оставался тем же, что у Claude Code. Навыки при этом лежат в проекте, их можно закоммитить в свой репозиторий, обновлять одной командой и ставить из приватных репозиториев.
Как это работает
Claude Code отдаёт агенту список навыков прямо в системном промпте — блок <available_skills> в формате XML:
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables...</description>
<location>project</location>
</skill>
</available_skills>
Когда задача подходит под какой-то навык, агент подгружает его содержимое. Загрузка происходит по требованию, поэтому контекст не засоряется описаниями всех навыков подряд.
OpenSkills делает то же самое для любого агента. Команда sync записывает в AGENTS.md ровно такой же XML-блок, а сам навык читается через CLI:
npx openskills read <skill-name>
Агент сам решает, что задача подходит под навык, и вызывает эту команду в своей оболочке. Claude Code для этого не нужен — достаточно, чтобы агент умел читать AGENTS.md и запускать команды.
Вот как выглядит блок, который OpenSkills пишет в AGENTS.md:
<skills_system priority="1">
## Available Skills
<!-- SKILLS_TABLE_START -->
<usage>
When users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively.
How to use skills:
- Invoke: `npx openskills read <skill-name>` (run in your shell)
- The skill content will load with detailed instructions
- Base directory provided in output for resolving bundled resources
Usage notes:
- Only use skills listed in <available_skills> below
- Do not invoke a skill that is already loaded in your context
</usage>
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms...</description>
<location>project</location>
</skill>
</available_skills>
<!-- SKILLS_TABLE_END -->
</skills_system>
Сравнение с Claude Code:
| Что | Claude Code | OpenSkills |
|---|---|---|
| Формат промпта | <available_skills> в XML |
тот же самый XML |
| Где лежат навыки | .claude/skills/ |
.claude/skills/ (по умолчанию) |
| Как вызвать навык | инструмент Skill("name") |
npx openskills read <name> |
| Каталог навыков | каталог Anthropic | GitHub, например anthropics/skills |
| Подгрузка по требованию | да | да |
Быстрый старт
npx openskills install anthropics/skills
npx openskills sync
Первая команда ставит навыки, вторая обновляет AGENTS.md. По умолчанию установка идёт внутрь проекта, в папку ./.claude/skills. Флаг --universal меняет путь на ./.agent/skills, а --global ставит навыки глобально, в ~/.claude/skills.
Глобальная установка не обязательна: все команды и так запускаются через npx.
Откуда можно ставить навыки
Источник навыка — это адрес, который понимает install:
# Каталог Anthropic
npx openskills install anthropics/skills
# Любой репозиторий на GitHub
npx openskills install your-org/your-skills
# Локальная папка
npx openskills install ./local-skills/my-skill
# Приватный git-репозиторий
npx openskills install git@github.com:your-org/private-skills.git
Приватные репозитории работают по SSH-ключам системы или по HTTPS с авторизацией.
Универсальный режим
Если в проекте работают и Claude Code, и другие агенты с одним и тем же AGENTS.md, ставьте навыки в .agent/skills/. Так они не будут конфликтовать с плагинами Claude Code.
Приоритет папок, от большего к меньшему:
./.agent/skills/~/.agent/skills/./.claude/skills/~/.claude/skills/
Команды и флаги
npx openskills install <source> [options] # поставить навыки из GitHub, папки или приватного репозитория
npx openskills sync [-y] [-o <path>] # обновить AGENTS.md или другой файл
npx openskills list # показать установленные навыки
npx openskills read <name> # загрузить навык (для агента)
npx openskills update [name...] # обновить навыки (по умолчанию все)
npx openskills manage # удалить навыки (интерактивно)
npx openskills remove <name> # удалить конкретный навык
Флаги:
--global— установка в~/.claude/skillsвместо папки проекта;--universal— установка в.agent/skills/вместо.claude/skills/;-y,--yes— без вопросов, удобно для CI;-o,--output <path>— куда писать результатsync(по умолчаниюAGENTS.md). Файл создаётся, если его нет, вместе с нужными папками.
Если нужно прочитать сразу несколько навыков, имена можно перечислить через запятую: npx openskills read foo,bar.
Формат навыка
Формат навыка — тот же, что у Anthropic. В начале SKILL.md идёт короткий заголовок с именем и описанием, дальше обычный текст с инструкциями:
---
name: pdf
description: Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms.
---
# PDF Skill Instructions
When the user asks you to work with PDFs, follow these steps:
1. Install dependencies: `pip install pypdf2`
2. Extract text using scripts/extract_text.py
3. Use references/api-docs.md for details
Минимальная папка навыка — это один файл:
my-skill/
└── SKILL.md
Если навыку нужны дополнительные материалы, рядом кладут три стандартные папки:
my-skill/
├── SKILL.md
├── references/
├── scripts/
└── assets/
Пример готового навыка лежит в репозитории: examples/my-first-skill.
Свои навыки
Свой навык ставится из локальной папки:
npx openskills install ./my-skill
Если навык пишется и меняется вместе с проектом, удобнее не копировать его, а подключить символической ссылкой на клон репозитория:
git clone git@github.com:your-org/my-skills.git ~/dev/my-skills
mkdir -p .claude/skills
ln -s ~/dev/my-skills/my-skill .claude/skills/my-skill
Правки в клоне сразу видны агенту. Битые ссылки CLI пропускает и не падает на них.
Подробности о том, как писать навыки, лежат в самом каталоге Anthropic — поставить его можно так:
npx openskills install anthropics/skills
npx openskills read skill-creator
Обновление навыков
Навыки, поставленные из git-репозитория, обновляются одной командой:
npx openskills update
Для конкретных навыков имена перечисляются через запятую:
npx openskills update git-workflow,check-branch-first
Команда update появилась в версии 1.5.0 вместе с записью источника установки. Если навык был поставлен до этого, обновить его не получится — нужно поставить его заново, чтобы CLI запомнил, откуда он взялся. Подробный список изменений — в CHANGELOG.md.
Почему CLI, а не MCP
Вопрос, который задают чаще всего: может, сделать это через MCP? Авторы отвечают так: MCP — это про динамические инструменты, а навык — это статический текст с инструкциями и файлы по соседству.
- навык — это просто файлы, сервер не нужен;
- работает с любым агентом, поддержка MCP не требуется;
SKILL.md— это спецификация, и OpenSkills следует ей в точности.
Проект реализует спецификацию Agent Skills от Anthropic и не связан с компанией Anthropic — Claude, Claude Code и Agent Skills остаются их торговыми марками.
Требования и лицензия
Нужен Node.js версии 20.6 или новее и Git — он нужен, чтобы клонировать репозитории с навыками. Лицензия Apache 2.0, текст лежит в LICENSE.
Источник: https://github.com/numman-ali/openskills