Skip to content

Справочник конфигурации

AIM использует три уровня конфигурации:

  • глобальный конфиг пользователя;
  • общий конфиг репозитория инвентаря;
  • локальный конфиг конкретной машины.

Глобальный конфиг

Путь:

text
~/.config/aim/config.yaml

Назначение:

  • хранить путь к активному репозиторию инвентаря;
  • позволять запускать aiman status, aiman sync, aiman push из любой директории;
  • в будущем хранить пользовательские настройки вроде editor.

Пример:

yaml
repo: /home/alex/aim-loadout
loadout: documentation-work

Пишется командами aiman init и aiman switch.

loadout (в глобальном конфиге)

Имя активного пина — loadout, который aiman sync применяет вместо полного инвентаря. Пин — это сохранённое состояние: он не сбрасывается между запусками CLI и переживает обновления инвентаря, пока его явно не снимут.

Пустое или отсутствующее поле означает «пин не установлен» — aiman sync работает как раньше, аддитивно применяя весь инвентарь. Строка "Default" никогда не записывается как значение этого поля: возврат к полному инвентарю выражается очисткой поля, а не специальным именем, поэтому отсутствие пина и режим Default неразличимы на уровне конфига — это осознанное решение.

Поле пишется командами:

  • aiman apply --loadout <name> --pin — записывает имя loadout;
  • aiman apply --default и aiman apply --unpin — очищают поле;
  • aiman switch — безусловно очищает поле при переключении репозитория, даже если в новом репозитории есть loadout с таким же именем.

AIM не проверяет существование loadout в момент записи пина — только при каждом использовании (aiman sync, а также повторный aiman apply --loadout <name> --pin). Поэтому пин может стать невалидным уже после сохранения: loadout могли переименовать, удалить или опубликовать с другой машины. В этом случае sync останавливается с ошибкой pinned loadout "X" not found in inventory — см. Справочник ошибок.

Подробнее о пине как концепции — в Концепциях, команды и вывод — в Справочнике CLI.

aim.yaml

Путь:

text
<inventory>/aim.yaml

Хранится в Git и одинаков для всех машин.

Пример, создаваемый aiman init:

yaml
skill_paths: {}

skill_paths зарезервирован для будущей кастомизации путей установки навыков. В текущей версии адаптеры используют пути по умолчанию и переопределения из aim.local.yaml.

Используйте aim.yaml только для настроек, которые должны быть общими для всех пользователей этого репозитория инвентаря.

aim.local.yaml

Путь:

text
<inventory>/aim.local.yaml

Не хранится в Git. Создаётся на каждой машине.

Пример:

yaml
repo: git@github.com:you/aim-loadout.git
synced_hash: abc1234
published_hash: abc1234

adapters:
  claude_code:
    base_dir: /home/alex/.claude
  cursor:
    base_dir: /home/alex/.cursor
  codex:
    base_dir: /home/alex/.codex

mcp_env:
  context7.UPSTASH_REDIS_REST_URL: https://example.upstash.io

repoaim.local.yaml)

URL Git-репозитория инвентаря, подключённого на этой машине. Записывается автоматически командой aiman init. Не редактируйте вручную.

adapters

Переопределяет путь к конфигурационной директории AI-среды на текущей машине. Используйте только если AI-среда установлена по нестандартному пути.

Если секция не задана, AIM определяет пути автоматически: Claude Code — ~/.claude, Cursor — ~/.cursor, Codex CLI — ~/.codex. На Linux ~ раскрывается в /home/<user>, на macOS — в /Users/<user>, на Windows — в C:\Users\<user>.

Ключи адаптеров: claude_code, cursor, codex. Каждый принимает поле base_dir.

mcp_env

Хранит локальные значения env-переменных MCP-серверов. Ключи имеют формат <server-name>.<VAR_NAME>.

Эти значения могут быть секретами. Файл aim.local.yaml должен быть в .gitignore.

published_hash и synced_hash

published_hash — последний commit, успешно опубликованный с этой машины через aiman push.

synced_hash — последний commit, полностью применённый в AI-среды через aiman sync.

Эти hash-метки помогают объяснять состояние инвентаря, но не заменяют состояние Git как источник истины для защитных проверок.

Released under the Apache 2.0 License.