AIM Loadout v0.9.0: import теперь сам находит навыки и MCP
aiman v0.9.0 меняет наполнение инвентаря из существующей среды: команда import без флагов сама находит навыки и MCP-серверы в Claude Code, Cursor и Codex CLI и показывает план переноса. Раньше aiman import без аргументов печатал справку и завершался с кодом 0.
Новое
aiman importбез флагов сканирует Claude Code, Cursor и Codex CLI и строит план переноса найденных навыков и MCP-серверов в инвентарь. Флаг--yesвыполняет план и переносит всё одной командой — раньше каждый навык или сервер нужно было импортировать по имени отдельно.- У Skill Item в frontmatter появилось поле
targets, как уже было у MCP Item: навык теперь можно раскладывать только в перечисленные среды, а не во все сразу. - К сборке через goreleaser добавлены
.deb- и.rpm-пакеты: aiman теперь можно установить системным пакетом на Debian/Ubuntu и Fedora/RHEL, а не только через архив или Homebrew.
Исправлено
- При импорте имя элемента не проверялось перед записью — специально сформированное имя навыка или MCP-сервера могло вывести запись за пределы каталога инвентаря. Теперь
importотклоняет такие имена до записи на диск. - Файлы инвентаря и конфигов писались напрямую: прерывание в момент записи могло оставить повреждённый файл, а для
aim.local.yaml— потерю секретов, которые больше нигде не хранятся. Теперь запись идёт через временный файл с переименованием, и прерванная операция больше не портит файл. - Если активный репозиторий инвентаря не был выбран,
addиimportвсё равно писали файлы в текущую директорию — навык, MCP-сервер или значения изaim.local.yamlмогли оказаться вне инвентаря. Теперь обе команды отказываются писать без активного репозитория и указывают наaiman init. - Разбор папочного навыка не ограничивал число, размер и глубину файлов и разворачивал symlink как обычный файл — риск, который вырос вместе с автоматическим импортом чужих директорий. Теперь такой пакет проверяется по лимитам на объём и глубину, а symlink внутри него отклоняется.
- Импорт папочного навыка сохранял только
SKILL.md, вложенные файлы навыка — референсы, скрипты — молча пропадали. Теперь переносится вся папкаskills/<name>/целиком, и навык работает так же, как в исходной среде. - Запись файлов из папочного навыка ставила права
0644на каждый файл, и исполняемые скрипты внутри пакета теряли свой бит на выполнение. Теперь права исходного файла сохраняются при записи. - MCP-сервер с транспортом
http/sseвместоstdioраньше импортировался как рабочий элемент без команды запуска — сломанный сервер без объяснения причины. Теперь такие серверы отклоняются с сообщением, что переносятся толькоstdio-серверы. import mcp --printпри конфликтующем или уже существующем файле на диске не показывал нормализованный YAML вообще, хотя флаг документирован как просмотр без записи. Теперь--printвсегда печатает результат, а проверка конфликта на диске идёт после.- Ошибки разбора
mcp/*.yaml— битый YAML, отсутствующие обязательные поля — не попадали в выводaiman doctorвообще, в отличие от таких же ошибок у навыков. Теперь они показываются в разделе Issues так же, как невалидные навыки. - Порядок переменных окружения в сериализованном MCP Item не был детерминированным, из-за чего файл
mcp/<name>.yamlмог меняться при каждой записи без реального изменения. Теперь порядок стабилен. - MCP Item и его переменные окружения требовали поле
description, хотя оно не всегда нужно — валидация отклоняла корректные определения без описания. Теперьdescriptionнеобязательно и для MCP Item, и для переменной окружения. - Ошибка о конфликте одноимённых MCP-серверов при импорте советовала флаг
--name, которого уimport mcpнет. Теперь сообщение об этом конфликте не содержит несуществующей подсказки.
Обновиться — по инструкции для своей ОС; полный список изменений — на странице релиза.