# 12 — CLI

**Русский** · [English](../12-cli-reference.md)

Полный перечень команд `iapeer <команда>`. Общие правила: `--help` / `-h` в любом месте строки печатает справку и ничего не выполняет; флаги принимают форму `--key value` и `--key=value`.

## Установка и обслуживание ядра

| Команда | Что делает |
|---|---|
| `install` | Bootstrap ядра: собрать бинарь `~/.local/bin/iapeer`, создать раскладку `~/.iapeer/`, записать плист демона (без загрузки). |
| `update [версия] [--force]` | Обновить ядро из npm, перезапустить демон, перезапустить инфра-службы ядра. Без аргумента — до последней версии; с версией — до точной. `--force` переустанавливает даже при совпадении версий. |
| `rollback` | Вернуть предыдущий бинарь (`.prev`), перезапустить демон, проверить здоровье. На один уровень назад. |
| `version` · `--version` · `-v` | Версия установленного бинаря. |
| `help` · `--help` · `-h` | Справка по командам. |
| `daemon [--install-plist]` | Запустить роутер (обычно держит launchd). `--install-plist` только пишет плист, не загружая. |

`update` проверяет здоровье демона после перезапуска: если демон не ожил — команда возвращает ненулевой код и советует `rollback`.

## Хост

| Команда | Что делает |
|---|---|
| `onboard [флаги]` | Подготовка хоста: marketplace (Claude + Codex) → notifier → Telegram (пир-человек) → провайдер памяти. Все шаги по умолчанию включены. |
| `status` | Снимок хоста: версия, здоровье демона, слот памяти. Код возврата ненулевой, если демон нездоров. |
| `install-runtime <рантайм> [--package <пакет>] [--npx] [--no-bootstrap]` | Установить рантайм-пакет и развернуть его объявленный набор пиров. `--no-bootstrap` — не загружать пиров в launchd. |
| `update-runtime <рантайм> \| --all [--force]` | Обновить рантайм-пакет(ы) с перезапуском их пиров. |

Флаги `onboard`: `--dry-run` (показать без изменений), `--no-notifier`, `--no-telegram`, `--no-memory`, `--telegram-human <имя>`, `--telegram-user-id <id>`, `--memory <пакет>`, `--infra <список>`.

## Пиры: создание и обзор

| Команда | Что делает |
|---|---|
| `init [папка] [--runtime r] [--description d] [--bin путь] [--no-bootstrap]` | Сделать текущую (или указанную) папку пиром: профиль, MCP, доктрина. Имя пира — это имя папки; отдельным флагом не задаётся. |
| `create <имя> [--runtime r] [--path папка] [--bin путь] [--description d] [--intelligence i] [--no-bootstrap]` | Создать пир из любого места (по умолчанию `~/.iapeer/peers/<имя>`) и провизионировать. |
| `list [--json]` | Реестр пиров с состоянием по рантаймам. В интерактивном терминале — панель управления; иначе или с `--json` — таблица. |
| `verify [--json] [--fix]` | Проверка профилей на соответствие стандарту и расхождений реестр↔профиль. `--fix` самовосстанавливает реестр и мигрирует старый формат поля рантайма. |

## Пиры: жизненный цикл

| Команда | Что делает |
|---|---|
| `stop <пир> [рантайм] \| --all` | Агент: стоп-флаг + закрыть сессию (демон не будит). Инфра: снять с launchd. `--all` — все пиры. |
| `start <пир> [рантайм] \| --all` | Снять стоп-флаг (сессия поднимется на первом сообщении). Инфра: загрузить в launchd. |
| `new <пир> [рантайм]` | Безусловный свежий перезапуск — аварийный рычаг для зависшей/мёртвой сессии, в обход агента. Код 0 = свежая сессия поднята и готова. |
| `refresh <пир> [рантайм] \| --all` | Ленивый «мягкий перезапуск»: агентский пир поднимется свежим (перечитает доктрину/фрагменты с диска) на своём СЛЕДУЮЩЕМ естественном пробуждении. Не убивает живую сессию, не будит остальных, не делает немедленный перезапуск — только ставит маркер. Роутеры (notifier/telegram) и absent-рантаймы пропускаются (у них нет доктрины). `--all` — все пиры. |
| `remove <пир> [--force]` | Удалить запись из реестра (папку пира не трогает). Отказывает живому пиру без `--force`. Идемпотентно. |
| `attach <пир> [рантайм]` | Поднять (если спит), продолжить диалог, открыть сессию под супервизором в терминале (отсоединиться — `Ctrl-]`). |
| `interrupt <пир> [рантайм]` | Прервать текущий ход (Escape), контекст цел. |
| `compact <пир> [рантайм]` | Сжать диалог; спящего после усыпления сначала продолжить. |
| `add-runtime <рантайм> (--peer <p> \| --all)` | Добавить рантайм существующим пирам. `default_runtime` не трогает. Инфраструктурный рантайм цепляет always-on канал и работает только с `--peer` (никогда не сметает `--all`). |
| `default-runtime <рантайм> (--peer <p> \| --all)` | Переключить основной рантайм (маршрутизация/первый подъём). Откажет, если рантайм не объявлен. |

`stop`/`start`/`new` отказываются трогать пиров под чужим launchd-плистом — ядро не вмешивается в то, чем управляет не оно.

## Сообщения

| Команда | Что делает |
|---|---|
| `send <цель> (--message <текст> \| --message-file <f\|->) [--from <id>] [--runtime <r>] [--attachment <путь>]… [--topic <t>]` | Ручная отправка IAP по тому же пути, что `send_to_peer`. |
| `confirm-send <id> [--runtime <rt>]` | Доставить удержанную отправку ([origin guard](18-origin-guard.md)): как адресована, либо `--runtime` перенаправляет её в канал-источник. Без повторной отправки текста. |

`--message-file -` читает тело из stdin. `--attachment` повторяемый и задаёт абсолютный путь файла-источника; до принятия отправки роутер копирует его в состояние получателя. `--from` по умолчанию — идентичность пира текущей папки.

## Запуск и рантаймы

| Команда | Что делает |
|---|---|
| `<рантайм>` (например `iapeer claude`) | Запустить пир текущей папки в этом рантайме — всегда свежей сессией. |
| `connect telegram <пир> [--token <t>]` | Подключить Telegram-бота к пиру: регистрация бота → запись в профиль → перезапуск роутера. Спрашивает только токен. |
| `connect <рантайм> <пир>` | Прицепить любой другой presence-канал (web, voicetalk, …) существующему пиру: пер-рантаймовый плист → хук `selfConfig` пакета → загрузка. Тот же путь, что `add-runtime <рантайм> --peer <пир>`. |

## Расширения и память

| Команда | Что делает |
|---|---|
| `enable <плагин> [пир] [--no-setup]` | Установить и включить capability-плагин для пира (по рантаймам), вызвать его шаг установки. |
| `native-memory <off\|on> (--peer <p> \| --all)` | Отключить/вернуть родную память рантаймов пира. |
| `trust-hooks <hooks.json> [--check]` | Предварительно доверить codex-хуки из файла (без модального окна). `--check` — отчёт о расхождениях. |

## Агентские самовызовы

Команды, которые агент выполняет в своей сессии (требуют `PEER_IDENTITY` в окружении):

| Команда | Что делает |
|---|---|
| `self-fresh` | Пометить себя на свежий перезапуск и закрыть свою сессию — демон поднимет свежую. |
| `self-done` | Эфемерный воркер: тихо завершиться, освободив очередь, никого не разбудив. |

## Служебные

| Команда | Что делает |
|---|---|
| `daemon` | Точка входа демона-роутера; запускается из плиста `com.agfpd.iapeer`. |
| `run-infra <имя> <рантайм>` | Точка входа инфраструктурного пира; запускается из его launchd-плиста. |

Эти две команды вызывает launchd, а не оператор напрямую.
