CLI анықтамалығы
Барлық командаларды aiman бинарлық файлы ұсынады.
Шығару форматы 1.0 нұсқасына дейін тұрақсыз. Командалардың адам оқитын шығаруы тұрақты API емес. Автоматтандыру үшін болашақ
--jsonфлагын күтіңіз. Форматтың барлық өзгерістері changelog-таbreaking:деп белгіленеді.
Жаһандық флагтар
| Флаг | Сипаттама |
|---|---|
--help | Команда үшін анықтаманы көрсету |
--version | Бинарлық файл нұсқасын көрсету |
aiman init
aiman init <repo-url> [--path <dir>]Инвентарь репозиторийін жалғайды.
Аргументтер:
<repo-url>— инвентарь Git репозиторийінің URL-і.
Флагтар:
--path <dir>— clone немесе репозиторийді тіркеу үшін жергілікті жол.
Мінез-құлық:
- инвентарь репозиторийін клондайды немесе тіркейді;
- бос репозиторий үшін құрылым жасайды;
- жергілікті
aim.local.yamlжасайды; - жаһандық конфигіге белсенді репозиторийді жазады;
- бар файлдарды adoptable, existing AIM немесе conflicting ретінде классификациялайды.
aiman switch
aiman switch <path>Clone-сіз белсенді инвентарь репозиторийін ауыстырады.
Бірнеше жергілікті инвентарь репозиторийіңіз болса немесе басқа каталогтан командалар іске қосу қажет болса пайдаланыңыз.
switch белсенді пинді әрдайым сөзсіз алып тастайды (aiman apply --loadout <name> --pin, қараңыз: Loadout пінін басқару) — тіпті жаңа репозиторийде дәл сол атаумен loadout болса да. Ауысқаннан кейін пин қажет болса, оны қайта орнатыңыз: aiman apply --loadout <name> --pin.
aiman apply
aiman apply [--dry-run] [--loadout <name> [--pin]] [--default] [--unpin]Ағымдағы жергілікті инвентарьды Git операцияларынсыз AI орталарына қолданады.
Флагтар:
--dry-run— файлдарды жазбастан жергілікті инвентарь мен орнатылған AI орталары арасындағы sha256-дельтаны көрсету.--loadout <name>— атаулы loadout-ты декларативті қолдану: орталар AIM-managed namespace шегінде дәл оның жинағына келтіріледі. Қараңыз:aiman apply --loadout.--pin—--loadout <name>талап етеді; сәтті қолданғаннан кейін бұл loadout-ты белсенді пин ретінде сақтайды, сондаaiman syncкелешекте толық инвентарьдың орнына дәл осыны қолданады. Қараңыз: Loadout пінін басқару.--default— бүкіл инвентарьды қолдану (флагсыз әдеттегіapplyсияқты) және орнатылған болса, белсенді пинді алып тастау.--unpin— ештеңе қолданбай белсенді пинді алып тастау. Инвентарьды оқымайды және AI орталарына тиіспейді;--loadout,--pinжәне--default-тен бөлек қолданылуы керек.--dry-run-мен не алынып тасталатынын ғана көрсетеді.
apply commit жасамайды, push/fetch орындамайды және published_hash немесе synced_hash-ті жаңартпайды.
--loadout-сыз команда аддитивті жұмыс істейді: инвентарь элементтерін орнатады және жаңартады (A/M), бірақ орталардан ешқашан ештеңе жоймайды — репозиторийде loadouts/ болса да.
apply шығару мысалы
Сәтті орындалған кезде apply нәтиже жолын шығарады. Кез келген AI ортасында өзгерістер болса, нәтиже жолынан кейін екі бос орын шегіністе және A (жаңа артефакт) мен M (өзгертілген) маркерлерімен өзгерістер блогы басылады:
applied: 21 skills, 1 MCP server → 3 environments
A skills/refactor-helper.md (new in all environments)
M skills/commit-message.md (updated in claude-code, cursor)Нәтиже жолындағы санауыштар (21 skills, 1 MCP server) — операция көлемі: барлығы қанша қолданылды. Төмендегі блок — өзгерістер құрамы: не дәл қосылды немесе жаңартылды. Бұл бөлек сандар: 21 skills — 21 өзгеріс емес, жалпы 21 дағды.
Ортасы ешқандай өзгеріссіз сәйкес болса, блоксыз тек нәтиже жолы басылады:
applied: 21 skills, 1 MCP server → 3 environmentsapply --dry-run шығару мысалы
Инвентарь орнатылған AI орталарымен сәйкес:
[dry-run] nothing to apply — environments match local inventoryӨзгерістер бар:
[dry-run] would apply 2 changes to 2 environments (claude-code, cursor):
A skills/new-skill.md (new in all environments)
M skills/existing.md (differs in cursor)
[dry-run] MCP context7 → claude-code, cursorMCP серверлері үшін apply --dry-run тек нысана AI орталарын көрсетеді және дельтаны есептемейді: AIM ортада орнатылған MCP конфигурациясын инвентарь дескрипторымен салыстырмайды. Толығырақ — Белгілі шектеу: MCP конфигтерінің дельтасы.
Өзгерістер тізімі 20 жолдан асса, ол қысқартылады:
A skills/skill-1.md
A skills/skill-2.md
… and 15 moreБелгілі шектеу: MCP конфигтерінің дельтасы
Дағдылар үшін AIM дельтаны есептейді: инвентарь мазмұнын әр AI ортасында орнатылған файлмен салыстырады және өзгерістерді A/M маркерлерімен белгілейді.
MCP серверлері үшін дельта әзірге есептелмейді. AI орталары MCP-ны ортақ конфигтерге (~/.claude.json, mcp.json, config.toml) жазады, ал орнатылған фрагментті дескриптормен салыстыру осы конфигтерді талдап нормалайтынды талап етеді — бұл кейінге қалдырылды. Сондықтан шығарылымда MCP жолдары тек нысана орталарды көрсетеді, A/M маркерлерінсіз.
MCP сервері жанындағы маркердің болмауы оның өзгермейтінін білдірмейді. Бұл AIM оның ортадағы күйін тексермейтінін білдіреді. Дағдылар үшін бұл дельтамен тексерілген, MCP үшін — тексерілмеген.
aiman apply --loadout <name>
aiman apply --loadout <name> [--dry-run]loadouts/<name>.yaml файлында сипатталған инвентарь ішкі жиынын — атаулы loadout-ты — декларативті түрде қолданады: әрбір AI ортасы AIM-managed namespace шегінде дәл loadout жинағына келтіріледі.
AIM-managed namespace — инвентарьда skills/<name> немесе mcp/<name> ретінде бар нәрсенің бәрі. Әр элемент үшін үш тармақтың бірі жұмыс істейді:
| Элемент | Әрекет |
|---|---|
loadout-қа кіреді және targets бойынша (loadout-level және item-level) осы ортада рұқсат етілген | орнату / жаңарту |
| инвентарьда бар, бірақ осы ортаның қалаулы жинағына кірмейді және онда орнатылған | ортадан жою |
| инвентарьда жоқ (қолмен немесе басқа құралмен жасалған) | қозғалмайды |
Бұл дағдылар мен MCP серверлерінің екеуіне де қатысты: қалаулы жинақ әр орта үшін жеке есептеледі, ал әр элементтің (item-level) targets-і оны екі тип үшін де симметриялы түрде тарылтады.
Loadout-тан тыс элементтерді жою — әдепкі мінез-құлық, қосымша opt-in флаг емес. Namespace шекарасы кепілдік береді: AIM тек өзінікі деп есептейтінін жояды. Инвентарьдан тыс файлдар ешқашан қозғалмайды.
Атауды шешу. <name> мына тәртіппен шешіледі: дәл файл атауы loadouts/<name>.yaml, содан кейін нормаланған атау (бос орындар → дефис, кіші регистр), одан кейін name өрісі нормалаудан кейін сұралғанмен сәйкес келетін loadout. Сондықтан aiman apply --loadout "Documentation Work" loadouts/documentation-work.yaml файлын табады.
targets. Loadout деңгейіндегі targets қолдануға рұқсат етілген орталарды шектейді: тізімнен тыс орталар жоспарға кірмейді және қозғалмайды. Әр элемент (дағды немесе MCP сервері) үшін қосымша item деңгейіндегі targets те жұмыс істейді — элемент ортаға тек екі шектеу қиылысқанда ғана қолданылады. MCP Item-де item деңгейіндегі targets міндетті; Skill Item-де міндетті емес — item деңгейінде өрістің болмауы немесе бос тізім қиылысуды тарылтпайды, элемент loadout деңгейінде рұқсат етілген кез келген ортаға өтеді.
Екі деңгейдегі шектеулер әртүрлі жұмыс істейді. Loadout деңгейіндегі targets кесіп тастаған орта жоспардан толығымен түсіп қалады. Loadout үшін рұқсат етілген, бірақ элементтің item деңгейіндегі targets тізімінде аталмаған орта жоспарда қалады — және сол ортада орнатылған болса, бұл дағды немесе MCP сервері одан жойылады: бұл орта үшін ол қалаулы жинаққа кірмейді. Бұл ереже тек осы declarative жолда (apply --loadout, pinned sync) жұмыс істейді; әдеттегі apply/sync ештеңе жоймайды. Толығырақ — инвентарь форматында.
apply --loadout шығару мысалы
Нәтиже жолы loadout атауын атайды, санауыштар — операция көлемі: қанша өзгеріс болғаны емес, loadout-тың қанша элементі қолданылғаны. Құрам блогы үш маркерді пайдаланады: A (орнатылды), M (жаңартылды), D (ортадан жойылды):
applied loadout "Documentation Work": 2 skills, 1 MCP server → 1 environment
A skills/create-spec.md (new in all environments)
D skills/review-code.md (removed from all environments)
M skills/wpage.md (updated in all environments)
A mcp/context7.yaml (new in all environments)Мұнда loadout екі дағды мен бір MCP серверінен тұрады (осыдан 2 skills, 1 MCP server), ал блокта төрт жол: дағдылар бойынша үш өзгеріс, оның ішінде loadout-тан тыс инвентарь дағдысы review-code-тың жойылуы, және MCP серверін орнату.
Блок жолдары сұрыпталған: алдымен дағдылар атауы бойынша, содан кейін MCP серверлері атауы бойынша. all environments белгісі «жоспардағы барлық орта» дегенді білдіреді — яғни loadout targets-і бойынша рұқсат етілген барлық анықталған орталар. Әрекет олардың бәрін қамтымаса, оның орнына орта атаулары үтір арқылы тізіледі.
D санаты тек loadout жолында бар. Кәдімгі apply аддитивті болып қалады.
Орталар loadout-пен әлдеқашан сәйкес келсе, блоксыз тек нәтиже жолы басылады.
Loadout элементі инвентарьда енді жоқ немесе қазір жарамсыз элементке сілтесе, элемент ескертумен өткізіліп жіберіледі — ол орнатылмайды да, жойылмайды да:
warning: loadout "dev": no valid inventory item for skill:ghost (skipped)apply --loadout --dry-run шығару мысалы
--dry-run орталар мен конфигтерге жазбастан толық A/M/D жоспарын көрсетеді:
[dry-run] would apply loadout "Documentation Work" — 4 changes to 1 environment (claude-code):
A skills/create-spec.md (new in all environments)
D skills/review-code.md (would remove from all environments)
M skills/wpage.md (differs in all environments)
A mcp/context7.yaml (new in all environments)Орталар loadout-пен әлдеқашан сәйкес:
[dry-run] nothing to apply — environments match loadout "Documentation Work"Loadout-ты алғаш қолданар алдында әрдайым --dry-run іске қосыңыз: D жолдары нақты не жойылатынын көрсетеді (шектеулерді қараңыз).
apply --loadout қателері
Loadout табылмады (loadouts/ ішінде мұндай атаулы файл да, name өрісі де жоқ):
hint: available loadouts: dev, docs
error: loadout "ghost" not found in loadouts/Тізімі бар кеңес жарамды loadout саны бірден беске дейін болғанда басылады: олар мүлде болмаса кеңес беретін ештеңе жоқ, көбірек болса тізім пайдасыз. Кеңесте файл атаулары емес, name өрісінің мәндері тізіледі.
Loadout табылды, бірақ жарамсыз — apply бірінші қатеде тоқтайды:
error: loadout "empty": items: cannot be emptyБарлық loadout файлдары бойынша қателердің толық тізімін aiman push бірден береді.
Loadout пінін басқару: --pin, --default, --unpin
aiman apply --loadout <name> --pin
aiman apply --default
aiman apply --unpinПин — бір реттік әрекет емес, сақталған күй: ол пайдаланушының жаһандық конфигінде (~/.config/aim/config.yaml, loadout өрісі — қараңыз: Конфигурация анықтамалығы) сақталады және CLI-дің қайта іске қосылуынан және инвентарь жаңартуларынан аман қалады. Пин орнатылған кезде aiman sync толық инвентарьдың орнына дәл осы loadout-ты қолданады — осылайша remote-тан жаңартуларды тар жинақта қалып тұрып тарта аласыз. Бір реттік apply --loadout <name> мен пиннің айырмашылығы туралы толығырақ — Концепцияларда, пайдалану сценарийі — Жұмыс циклдарында.
aiman apply --loadout documentation-work --pin # қолдану және белсенді пин ретінде бекіту
aiman apply --default # толық инвентарьға оралу, пинді алып тастау
aiman apply --unpin # ештеңе қолданбай пинді алып тастауПин тек сәтті қолданғанда ғана сақталады. --dry-run-мен --loadout <name> --pin жоспары әдеттегідей басылады, бірақ пин сақталмайды: dry-run-нің не орталарда, не конфигте бүйірлік әсері жоқ. Бұл ереже үш флагқа да қатысты — --default --dry-run және --unpin --dry-run да не болатынын ғана көрсетеді, пинді орнында қалдырады:
[dry-run] would unpin loadout "documentation-work" — sync would go back to applying the full inventoryПин жоқ болса:
[dry-run] nothing to unpin — no loadout is pinned--default — толық инвентарьға оралып, пинді бір әрекетпен алып тастаудың жалғыз тәсілі. Пин мәні ретінде "Default" жолы ешқашан жазылмайды: пиннің жоқтығы мен Default режимі конфиг деңгейінде ажыратылмайды.
apply флагтарының қақтығысы
Бұл қателер инвентарьды оқымас бұрын және дискідегі кез келген өзгерістерге дейін тексеріледі:
| Комбинация | Қате |
|---|---|
--loadout-сыз --pin | error: --pin requires --loadout <name> |
--default + --loadout | error: --default and --loadout are mutually exclusive |
--default + --pin | error: --pin is redundant with --default |
--loadout, --pin немесе --default-пен бірге --unpin | error: --unpin does not apply — combine only alone |
aiman push
aiman push [--dry-run]Инвентарьды валидациялайды, commit жасайды және өзгерістерді remote-қа жібереді.
Флагтар:
--dry-run— commit/push-сіз жариялау жоспарын көрсету.
push remote жергілікті күйден жаңа болса немесе Git қауіпсіз емес күйде болса бұғатталады.
Frontmatter валидациясы: frontmatter өрісі (файл денесінен басқа) қате болса, push stderr-ге warning: шығарып жұмысты жалғастырады. Файл денесіндегі (body) қателер блоктаушы болып қалады: push error: шығарып жариялауды тоқтатады.
loadouts/ валидациясы: репозиторийде loadouts/ каталогы болса, push әрбір loadouts/*.yaml файлын тексереді — форматын (міндетті name, бос емес items, дұрыс skill:/mcp: префикстері) және сілтемелік тұтастығын: әрбір skill:<name> skills/<name>.md немесе skills/<name>/SKILL.md ретінде, әрбір mcp:<name> — mcp/<name>.yaml ретінде болуы керек. Табылған қателердің бәрі бірден шығарылады, жариялау бұғатталады:
error: loadout "Documentation Work" references unknown skill "missing-skill"
hint: check loadouts/documentation-work.yaml → itemsdescription болмауы және файл атауының нормаланған name-мен сәйкес келмеуі — ескертулер, олар жариялауды бұғаттамайды. loadouts/ жоқ репозиторий бұрынғыдай валидацияланады. Валидация push --dry-run кезінде де орындалады.
Валидациядан кейін push loadouts/ файлдарын skills/, mcp/, aim.yaml және .gitignore файлдарымен бірге жариялайды — бөлек git add командасының қажеті жоқ.
push шығару мысалы
Сәтті орындалған кезде push жарияланған commit-тің хешімен нәтиже жолын шығарады. Инвентарьда өзгерістер болса, нәтиже жолынан кейін өзгерістер блогы басылады: қандай файлдар жарияланды (A — жаңа, M — өзгерілген):
published: 96e091b · 19 skills, 1 MCP server
M skills/commit-message.md
A mcp/jira.yaml
A loadouts/documentation-work.yamlӨзгеріс жоқ болса, блоксыз тек нәтиже жолы басылады.
push --dry-run шығару мысалы
Жұмыс ағашы таза:
[dry-run] nothing to publish — working tree is cleanЖариялауға өзгерістер бар:
[dry-run] would publish managed changes:
M skills/review-code.md
A mcp/jira.yaml
A loadouts/documentation-work.yaml
validated inventory: 5 skills, 2 MCP serversӨзгерістер құрамының блогы skills/, mcp/, loadouts/, aim.yaml және .gitignore бойынша құрылады. validated inventory жолы тек инвентарь элементтерін — дағдылар мен MCP серверлерін — санайды.
aiman sync
aiman sync [--dry-run] [--force]Remote-тан жарияланған күйді алады және оны жергілікті AI орталарына қолданады.
Флагтар:
--dry-run— репозиторий мен AI орталарына жазбастан жоспарды көрсету;--force— remote-пен атауы сәйкес келетін бақылаусыз файлдарды жойып, жарияланған күйді қолдану. Атауы сәйкес келмейтін файлдар сақталады.
sync merge орындамайды. Тарих айырылып кетсе, AIM тоқтап, Git-ті қолмен қалпына келтіруді сұрайды.
skills/, mcp/ және loadouts/ ішіндегі бақылаусыз файлдар, егер олардың атауы remote-тан келетін файлдардың атауымен қақтығыспаса, sync-ті бұғаттамайды. Қақтығыс болса, sync тоқтайды және проблемалық файлдар тізімін шығарады.
Белсенді пинмен мінез-құлық
Жаһандық конфигте loadout бекітілген болса (aiman apply --loadout <name> --pin, қараңыз: Loadout пінін басқару), sync тасымалы өзгермейді: fetch және жарияланған күйді жұмыс ағашына қолдану әдеттегідей орындалады. Тек AI орталарына орнату қадамы өзгереді: бүкіл инвентарьды аддитивті орнатудың орнына (A/M, D-сіз) sync орталарды дәл бекітілген loadout жинағына декларативті түрде келтіреді — aiman apply --loadout <name> сияқты, жинақтан тыс элементтерді жоюды қоса алғанда (D). Белсенді пинсіз осы бөлімнің қалған жерінде сипатталған sync мінез-құлқы өзгермейді.
Пин жұмыс ағашы ең соңғы жарияланған күйге дейін жаңартылғаннан кейін тексеріледі, сондықтан дәл осы жаңартуда болған loadout атауының өзгеруі немесе жойылуы ескірген деректер бойынша өткізіп жіберілмей, анықталады. Пин енді жоқ loadout-қа сілтесе:
error: pinned loadout "documentation-work" not found in inventoryБұл қате synced_hash-тің жаңартылуын бұғаттайды: AI орталары осы sync іске қосылғанға дейін қолданылған күйде қалады. Қате apply --loadout беретін loadout "X" not found in loadouts/-тен өзгеше — мәтіндер журналдар мен өңдеуде қате көзін оңай ажырату үшін әдейі әр түрлі жасалған. Қараңыз: Қателер анықтамалығы.
Pinned режимінде нәтиже жолының алдында әрдайым applying loadout "X" (pinned) басылады, ал одан кейін — қолдану құрамының блогы (A/M/D) әдеттегі шығаруда, тек --dry-run-де ғана емес. Бұл git-тасымал дельтасынан (жарияланған инвентарьда алдыңғы күйге қатысты не өзгергені) бөлек блок — қолдану құрамы мен тасымал құрамы бір блокта ешқашан араласпайды:
applying loadout "documentation-work" (pinned)
synced: 67451fc · 2 skills, 1 MCP server → 1 environment
A skills/create-spec.md (new in all environments)
D skills/review-code.md (removed from all environments)
M skills/wpage.md (updated in all environments)
A mcp/context7.yaml (new in all environments)--force тек git-тасымалына қатысты: ол remote-пен қақтығысатын, инвентарь репозиторийінің өзіндегі бақылаусыз файлдарды жояды. Бұл пинделген қолданудың AI орталарынан элементтерді жоюды сипаттайтын D жолдарына қатысы жоқ. Екі жағдай да бір іске қосылуда орын алса, екі есеп те бөлек-бөлек басылады.
sync --dry-run pinned режимінде apply --loadout <name> --dry-run сияқты дәл сол A/M/D жоспарын көрсетеді — әдеттегі git-дельтасынан кейінгі (немесе remote-тан қолдануға ештеңе жоқ болса, nothing to sync-тен кейінгі) бөлек екінші блок ретінде:
[dry-run] nothing to sync — environments up to date with origin/main
[dry-run] would sync loadout "documentation-work" — 3 changes to 1 environment (claude-code):
A skills/create-spec.md (new in all environments)
D skills/review-code.md (would remove from all environments)
M skills/wpage.md (differs in all environments)Орталар бекітілген loadout-пен әлдеқашан сәйкес келсе:
[dry-run] nothing to sync — environments match loadout "documentation-work"sync шығару мысалы пинсіз
Белсенді пинсіз sync бұрынғыдай жұмыс істейді: бүкіл инвентарьды аддитивті орнатады, орталардан ештеңе жоймайды. Төмендегі құрам блогы орталардағы әрекеттерді емес, инвентарьдың өзіндегі өзгерістерді (remote-тан не келгенін) сипаттайды.
Сәтті орындалған кезде sync қолданылған күйдің хешімен нәтиже жолын шығарады. Remote-тан өзгерістер келсе, нәтиже жолынан кейін инвентарьда не жаңарды (A — жаңа, M — өзгерілген, D — жойылды) — өзгерістер блогы басылады:
synced: 67451fc · 21 skills, 1 MCP server → 3 environments
M skills/commit-message.md
A skills/refactor-helper.mdapply-дегі сияқты нәтиже жолындағы санауыштар — операция көлемі (барлығы қолданылды), ал блок — келіп түскен өзгерістер құрамы. 21 skills — 21 өзгеріс емес, жалпы 21 дағды.
Remote-тан ештеңе келмесе (жергілікті күй origin/main-мен сәйкес болса), блоксыз тек нәтиже жолы басылады:
synced: 67451fc · 21 skills, 1 MCP server → 3 environments--force флагымен AIM қолдануға дейін қақтығысатын бақылаусыз файлдарды жойып, не жойғанын хабарлайды. Бұл есеп нәтиже жолынан бұрын басылады:
discarded untracked files (--force):
skills/draft.md
mcp/local-only.yaml
synced: 67451fc · 21 skills, 1 MCP server → 3 environmentsЖою туралы есеп өшіру мүмкіндігінсіз әрқашан шығарылады: --force файлдарды біржола жояды және AIM мұны үнсіз жасамайды.
sync --dry-run шығару мысалы пинсіз
Remote-тан қолдануға ештеңе жоқ (жергілікті күй origin/main-мен сәйкес):
[dry-run] nothing to sync — environments up to date with origin/mainҚолдануға өзгерістер бар:
[dry-run] would sync 2 changes from origin/main → 3 environments:
M skills/commit-message.md
A skills/refactor-helper.mdaiman status
aiman statusБелсенді инвентарь репозиторийінің күйін көрсетеді: origin/main-ге қатысты позицияны, AI орталарының күйін және skills/, mcp/ мен loadouts/ ішіндегі әлі жарияланбаған өзгерістер тізімін.
aiman status remote-қа жүгінеді. Позицияны есептеу алдында команда Git fetch орындайды — «инвентарымда жарияланған күйге қатысты не өзгерді» деген сұраққа жауап береді, ал бұл сұрақ remote күйін қамтиды. Fetch-сіз жауап ескірген жергілікті ref бойынша есептелер еді және дұрыс болмауы мүмкін (remote алға кеткен кезде up-to-date көрсетуі мүмкін).
Бұл — жергілікті git status-тан саналы айырмашылық. git status-тың желілік жүгінісі жоқ, себебі оның сұрағы жергілікті жұмыс ағашы туралы. aiman status-тың сұрағы басқа және remote-ты қамтиды, сондықтан fetch-ке кеткен қысқа кідіріс — күтілетін мінез-құлық, ақаулық емес.
TODO: fetch кезінде спиннер қосу
Fetch қатаң таймаутпен орындалады. Remote қолжетімсіз болса, команда қатып қалмайды: Position: өрісі unknown (remote unreachable) мәнін алады, stderr-ге warning: cannot reach remote repository басылады, қайтару коды 0 болып қалады.
Position: өрісінің мүмкін мәндері: up-to-date with origin/main | N commits ahead of origin/main | N commits behind of origin/main | diverged from origin/main (N ahead, M behind) | unknown (remote unreachable).
Environments: өрісінің мүмкін мәндері: applied (synced <hash>) | unknown | needs sync (N commits not applied).
Pinned loadout: өрісі белсенді пинді (aiman apply --loadout <name> --pin, қараңыз: Loadout пінін басқару) немесе пин орнатылмаған болса, none мәнін көрсетеді. Бұл — жаһандық конфигтен алынған жергілікті күй: ол remote қолжетімсіз болса да әрдайым басылады және желіні қажет етпейді.
Өзгерістер тізімі 20 жолдан асса, ол … and N more жазуымен қысқартылады.
Шығару мысалы
Репозиторий синхрондалған, инвентарь қолданылған, пин орнатылмаған:
Repository: git@github.com:you/aim-loadout.git
Position: up-to-date with origin/main
Environments: applied (synced a1b2c3d)
Pinned loadout: none
Working tree matches origin/main · nothing to publishБелсенді пин бар:
Repository: git@github.com:you/aim-loadout.git
Position: up-to-date with origin/main
Environments: applied (synced a1b2c3d)
Pinned loadout: documentation-work
Working tree matches origin/main · nothing to publishЖарияланбаған өзгерістер бар:
Repository: git@github.com:you/aim-loadout.git
Position: 2 commits ahead of origin/main
Environments: needs sync (2 commits not applied)
Pinned loadout: none
Changes not yet published (origin/main → working tree):
A skills/new-skill.md
M skills/existing.md
run aiman push to publish
run aiman sync to applyRemote қолжетімсіз (желі жоқ немесе репозиторийге қол жеткізілмейді) — Pinned loadout: әдеттегідей көрсетіледі, себебі бұл жергілікті күй:
Repository: git@github.com:you/aim-loadout.git
Position: unknown (remote unreachable)
Environments: applied (synced a1b2c3d)
Pinned loadout: none
Working tree matches origin/main · nothing to publishaiman doctor
aiman doctorЖергілікті орнатуды диагностикалайды:
- белсенді репозиторий;
- табылған AI орталары;
- адаптер жолдары;
- белсенді инвентарь репозиторийінің
skills/ішіндегі дағдылардың жарамдылығы; - міндетті MCP env айнымалылары;
- remote қолжетімділігі және синхрондау күйі.
=== AI Environments === бөлімі тек «ортаның базалық каталогы табылды ма» деген сұраққа жауап береді. === Skills === бөлімі белсенді инвентарь репозиторийінің skills/ ішіндегі жарамды және жарамсыз дағдыларды санайды — ол AI орталарын сканерлемейді және оларда не орнатылғанын көрсетпейді. doctor ешбір орта үшін орнатылған дағдылар құрамын тексермейді.
Шығару мысалы
Бәрі жақсы, барлық орталар табылған:
Active Repo: /home/user/.aim/aim-loadout (from /home/user/.config/aim/config.yaml)
=== AI Environments ===
✓ claude-code /home/user/.claude found
✓ cursor /home/user/.cursor found
✗ codex /home/user/.codex not found
=== Skills ===
Found: 4 valid, 0 invalid
=== Sync State ===
synced_hash: a1b2c3d
published_hash: a1b2c3d
remote HEAD: a1b2c3d
status: up-to-date
=== MCP Environment Variables ===
✓ context7 › UPSTASH_REDIS_REST_URL — set
=== Issues ===
• codex: not installed or not found at /home/user/.codexМәселелер бар — AI ортасы табылмады, міндетті айнымалы белгіленмеген:
Active Repo: /home/user/.aim/aim-loadout (from /home/user/.config/aim/config.yaml)
=== AI Environments ===
✓ claude-code /home/user/.claude found
✗ cursor /home/user/.cursor not found
✗ codex /home/user/.codex not found
=== Skills ===
Found: 2 valid, 1 invalid
=== Sync State ===
synced_hash: not set
published_hash: not set
remote HEAD: a1b2c3d
status: not yet synced
=== MCP Environment Variables ===
✗ context7 › UPSTASH_REDIS_REST_URL — missing (required)
=== Issues ===
• cursor: not installed or not found at /home/user/.cursor
• codex: not installed or not found at /home/user/.codex
• my-skill.md: invalid: missing description
• context7 › UPSTASH_REDIS_REST_URL — missing (required)aiman add
aiman add skill <file|dir|-> [--name <string>] [--overwrite]
aiman add mcp <file|-> [--name <string>] [--overwrite]Файлдан, директориядан немесе stdin-нен жергілікті репозиторийге инвентарь элементін (дағды немесе MCP сервері) қосады.
aiman add skill
aiman add skill <file|dir|->
aiman add skill ~/Downloads/my-skill.md
aiman add skill -Файлдан, директориядан немесе stdin-нен (-) skill оқиды, frontmatter-ді валидациялайды, атауды анықтайды және белсенді инвентарь репозиторийіне жазады.
Аргументтер:
<file|dir|->— skill файлының жолы, қалталық дағдыға жол (немесе оныңSKILL.md-іне), не stdin-нен оқу үшін-.
Флагтар:
--name <string>— skill атауын қайта анықтау; белгіленбесе, атау жалпақ skill үшін файлдың frontmatter-інен, қалталық дағды үшін директория атынан алынады.--overwrite— мазмұн конфликті кезінде бар skill-ді қайта жазу.
Мінез-құлық:
SKILL.mdаталмаған жалпақ файл немесе stdin —skills/<name>.mdретінде жазылады;- директорияға немесе оның ішіндегі
SKILL.mdфайлына жол — қалталық дағды ретінде танылады жәнеskills/<name>/ішіне тұтасымен көшіріледі (SKILL.md+ қасындағы барлық анықтамалық файлдар). Екі жол нұсқасы да бірдей нәтиже береді; - директорияда
SKILL.mdболмаса — жүйелік "is a directory" емес, нақты қате қайтарылады; skills/<name>.md(жалпақ) немесеskills/<name>/SKILL.md(қалталық дағды) бірдей мазмұнмен бұрыннан болса — өзгеріссіз сәтті аяқталады; қалталық дағды үшін текSKILL.mdмазмұны салыстырылады, анықтамалық файлдар салыстыруға кірмейді. Тек солар өзгерсе, командаalready identicalдеп хабарлайды және оларды тасымалдамайды — мұнда--overwriteде көмектеспейді, өзгерген файлдарды қолмен көшіріңіз;- көшіру кезінде қатынау құқықтары сақталмайды: барлық файлдар
0644ретінде жазылады, қалталық дағды ішіндегі скрипттердің орындалу биті жоғалады; - мақсат орны басқа мазмұнмен болса және
--overwriteбелгіленбесе —--overwriteпайдалануды ұсынатын қате қайтарады.
Файлдан қосу мысалы:
aiman add skill ~/Downloads/create-spec.mdStdin-нен қосу мысалы:
cat ~/Downloads/create-spec.md | aiman add skill -Қалталық дағдыны қосу мысалы (екі нұсқа тең):
aiman add skill ~/Downloads/get-team-tasks
aiman add skill ~/Downloads/get-team-tasks/SKILL.mdСәтті қосу кезіндегі шығару:
added: skill create-specSkill инвентарьда бірдей мазмұнмен бұрыннан болса (операция талап етілмейді):
up to date: skill create-spec · already identicalaiman add mcp
aiman add mcp <file|->
aiman add mcp jira.yaml
aiman add mcp -YAML файлынан немесе stdin-нен (-) MCP сервері сипаттамасын оқиды, env-strip қолданады және нәтижені белсенді инвентарь репозиторийіне жазады.
Аргументтер:
<file|->— MCP сервері YAML файлының жолы немесе stdin-нен оқу үшін-.
Флагтар:
--name <string>— сервер атауын қайта анықтау; белгіленбесе, атау файлдыңnameөрісінен алынады.--overwrite— мазмұн конфликті кезінде бар MCP серверін қайта жазу.
Мінез-құлық:
mcp/<name>.yamlбірдей мазмұнмен бұрыннан болса — команда өзгеріссіз сәтті аяқталады;mcp/<name>.yamlбасқа мазмұнмен болса және--overwriteбелгіленбесе —--overwriteпайдалануды ұсынатын қате қайтарады.
Env-strip: value толтырылған env өрістері mcp/<name>.yaml-да сақталмайды. Оның орнына нақты мәндер aim.local.yaml-да mcp_env: {<name>.<VAR>: value} кілті астында жазылады. Инвентарьда тек дескрипторлар сақталады: name, description, required, example. aim.local.yaml Git-тен алынып тасталған, сондықтан секреттер репозиторийге түспейді.
Кіріс файл мысалы:
name: jira
description: Jira MCP server
command: npx
args: [-y, mcp-jira]
targets: [claude-code]
env:
- name: JIRA_API_KEY
description: Jira API key
required: true
value: "secret123"Команда орындалғаннан кейін:
mcp/jira.yamlvalueөрісінсіз дескрипторды қамтиды;aim.local.yamlmcp_env: {jira.JIRA_API_KEY: "secret123"}қамтиды.
Файлдан қосу мысалы:
aiman add mcp jira.yamlStdin-нен қосу мысалы:
cat jira.yaml | aiman add mcp -Сервер атауын қайта анықтау:
aiman add mcp jira.yaml --name jira-workКонфликт кезінде қайта жазу:
aiman add mcp jira.yaml --overwriteСәтті қосу кезіндегі шығару:
added: mcp jiraMCP сервері инвентарьда бірдей мазмұнмен бұрыннан болса (операция талап етілмейді):
up to date: mcp jira · already identicalaiman import
aiman import skill <name> --from <env> [--print] [--overwrite]
aiman import mcp <name> --from <env> [--print] [--overwrite] [--targets all]Орнатылған AI ортасынан жергілікті репозиторийге инвентарь элементін (дағды немесе MCP сервері) импорттайды.
Екі ішкі команда үшін де ортақ талаптар:
Белсенді инвентарь репозиторийі қажет. Ол таңдалмаған болса (
aiman initнемесеaiman switchорындалмаған), команда дискіге ешнәрсе жазбай тұрып қатемен аяқталады — ағымдағы каталогқа жазбайды:texterror: no active inventory repository; run 'aiman init' firstТалап
--printфлагымен де жұмыс істейді.Элемент атауы жазу жолын құрастырмас бұрын тексеріледі. Бос атау,
.,..,/немесе\бар атаулар, абсолютті жолдар, басқару таңбалары және 255 таңбадан ұзын атаулар қабылданбайды:texterror: invalid item name "../evil": must not contain "/" or "\"
aiman import skill
aiman import skill <name> --from <env>
aiman import skill create-spec --from claude-code
aiman import skill create-spec --from claude-code --printКөрсетілген AI ортасынан атауы бойынша skill оқиды және белсенді инвентарь репозиторийіне жазады.
AI орталарында skill-дер қалта форматында сақталады — <name>/SKILL.md анықтамалық файлдардың (references/, скрипттер) қасында. Мұндай skill тұтасымен тасымалданады: SKILL.md және барлық ресурстар skills/<name>/ ішіне түседі. Ортада жалпақ файл <name>.md болса, ол skills/<name>.md ретінде жазылады.
Аргументтер:
<name>— импорттайтын skill атауы.
Флагтар:
--from <env>— импорт көзі (міндетті). Қолжетімді мәндер:claude-code,cursor,codex.--print— дискіге жазбастан skill мазмұнын stdout-қа шығару. Қалталық дағды үшін текSKILL.mdбасылады, анықтамалық файлдар шығарылмайды.--overwrite— мазмұн конфликті кезінде бар skill-ді қайта жазу.--targets—aiman import mcpкомандасымен симметрия үшін қабылданады, бірақ skill үшін еленбейді: skill-діңtargetsмәні тек оның frontmatter-і арқылы беріледі (қараңыз: Концепцияларда).
AI ортасы бойынша skill көздері:
| AI ортасы | Идентификатор | Skill жолдары |
|---|---|---|
| Claude Code | claude-code | ~/.claude/skills/<name>/SKILL.md және жалпақ ~/.claude/skills/*.md |
| Codex CLI | codex | ~/.codex/skills/<name>/SKILL.md |
| Cursor | cursor | ~/.cursor/skills/<name>/SKILL.md |
Мінез-құлық:
- skill көрсетілген ортада табылмаса — қате қайтарады;
- skill инвентарьда бірдей мазмұнмен бұрыннан болса — өзгеріссіз сәтті аяқталады;
- skill инвентарьда басқа мазмұнмен болса және
--overwriteбелгіленбесе —--overwriteпайдалануды ұсынатын қате қайтарады; - мазмұнның сәйкестігі
SKILL.mdбойынша анықталады; анықтамалық файлдар салыстыруға кірмейді. Ортада тек анықтамалық файлдар өзгеріп,SKILL.mdбұрынғыдай қалса, командаalready identicalдеп хабарлайды және өзгерістерді тасымалдамайды — бұл жағдайда да--overwriteкөмектеспейді, өзгерген файлдарды қолмен көшіріңіз.
Шектеу: қатынау құқықтары сақталмайды — инвентарьға тасымалдағанда да, кейін AI ортасына орнатқанда да барлық файлдар 0644 ретінде жазылады. Қалталық дағды ішіндегі скрипттердің орындалу биті жоғалады; оны қалай қалпына келтіру керегі — Ақауларды жоюда.
Claude Code-тан импорттау мысалы:
aiman import skill create-spec --from claude-codeСәтті импорттау кезіндегі шығару:
imported: skill create-spec · from claude-codeSkill инвентарьда бірдей мазмұнмен бұрыннан болса (операция талап етілмейді):
up to date: skill create-spec · already identicalЖазбасыз тексеру:
aiman import skill create-spec --from claude-code --printaiman import mcp
aiman import mcp <name> --from <env> [--print] [--overwrite] [--targets all]
aiman import mcp context7 --from claude-code
aiman import mcp jira --from cursor --print
aiman import mcp context7 --from claude-code --targets allКөрсетілген AI ортасының тірі конфигурациясын сканерлейді, MCP серверлерін табады, env-strip қолданады және дескрипторды белсенді инвентарь репозиторийіне жазады.
Аргументтер:
<name>— импорттайтын MCP сервері атауы.
Флагтар:
--from <env>— импорт көзі (міндетті). Қолжетімді мәндер:claude-code,cursor,codex.--print— файлдарды жазбастан YAML дескрипторын stdout-қа шығару. Қақтығысты тексеру шығарудан бұрын орындалады:mcp/<name>.yamlбасқа мазмұнмен бұрыннан бар болса, команда қатемен аяқталады және ешнәрсе баспайды — дескрипторды бәрібір көру үшін--overwriteқосыңыз (бұл кезде файл қайта жазылмайды).--overwrite— мазмұн өзгеше болса бар файлды қайта жазу.--targets all— дескрипторда барлық үш адаптерді (claude-code,cursor,codex) нысана орталар ретінде белгілеу. Әдепкі бойынша тек көз орта пайдаланылады.
Мінез-құлық:
Env-strip: env айнымалыларының нақты мәндері
mcp/<name>.yaml-да сақталмайды. Оның орнына оларaim.local.yaml-даmcp_env: {<name>.<VAR>: value}кілті астында жазылады. Инвентарьға тек дескрипторлар түседі:name,required.aim.local.yamlGit-тен алынып тасталған, сондықтан секреттер репозиторийге түспейді.Env-дің детерминирленген реті: env айнымалылардың дескрипторлары
nameбойынша сұрыпталып жазылады. Өзгермеген көзді қайта импорттау байт-байтына бірдей YAML береді, сондықтанalready identicalсенімді іске қосылады, ал Git-те жолдардың орны ауысуынан диффтер пайда болмайды.Тек stdio транспорты қолдау көрсетіледі:
"type": "http","type": "sse"арқылы немесеcommand-сыз жалаң"url"арқылы жарияланған сервер импортталмайды. Команда серверді және себебін атайтын қатемен аяқталады және дискіге ешнәрсе жазбайды:texterror: MCP server "remote-tool": unsupported transport "http" (only stdio servers can be imported)Сол конфигтің қалған серверлері әдеттегідей импортталады.
Дедупликация: бір сервер атауы бірдей команда мен аргументтермен бірнеше рет кездессе, бірінші жазба алынады.
Белгісіздік (AmbiguousError): бір сервер атауы әр түрлі командалармен немесе аргументтермен кездессе, команда қатемен аяқталады —
--fromарқылы көзді нақты көрсету керек.Сервер табылмады: көрсетілген атаумен сервер ортаның конфигурациясында болмаса,
MCP server "<name>" not found in <env>қатесімен аяқталады. Қолдау көрсетілмейтін транспортты сервер бұл санатқа кірмейді — ол үшін себебі көрсетілген қате шығарылады (жоғарыдан қараңыз),not foundемес.Белгісіз орта:
--fromмәні танылмаса,unknown environment: X; available: claude-code, cursor, codexқатесімен аяқталады.mcp/<name>.yamlбірдей мазмұнмен бұрыннан болса — өзгеріссіз сәтті аяқталады;mcp/<name>.yamlбасқа мазмұнмен болса және--overwriteбелгіленбесе —--overwriteпайдалануды ұсынатын қате қайтарады.
AI ортасы бойынша MCP конфигурация көздері:
| AI ортасы | Идентификатор | Конфигурация файлы |
|---|---|---|
| Claude Code | claude-code | ~/.claude.json (mcpServers кілті) |
| Cursor | cursor | ~/.cursor/mcp.json (mcpServers кілті) |
| Codex CLI | codex | ~/.codex/config.toml (mcp_servers бөлімі) |
Claude Code үшін қосымша ~/.claude/settings.json оқылады: сервер сол жерден тек ~/.claude.json-да осындай атаумен жазба болмаған жағдайда алынады.
Claude Code-тан импорттау мысалы:
aiman import mcp context7 --from claude-codeСәтті импорттау кезіндегі шығару:
imported: mcp context7 · from claude-codeMCP серверінде толтырылған env айнымалылары болса, олар aim.local.yaml-ға жазылады:
imported: mcp context7 · from claude-code · secrets stored in aim.local.yamlMCP сервері инвентарьда бірдей мазмұнмен бұрыннан болса (операция талап етілмейді):
up to date: mcp context7 · already identicalЖазбасыз тексеру:
aiman import mcp context7 --from claude-code --printБарлық адаптерлерді нысана ретінде белгілеп импорттау:
aiman import mcp context7 --from claude-code --targets allФайл бұрыннан болса қайта жазу:
aiman import mcp context7 --from claude-code --overwriteАғымдағы жалпыға ашық scope-тан тыс командалар
aiman list кодтық базада тарихи команда ретінде болуы мүмкін, бірақ толыққанды жалпыға ашық контракт толық inventory view жүзеге асырылғанға дейін қалдырылды.