snens

Команды

snens без подкоманды печатает справку. Общие флаги: --config PATH (другой конфиг), --session ID (конкретная сессия вместо последней), --endpoint URL и --token-file PATH (для команд, которые идут в запущенное ядро). Код возврата — 0 при успехе и 1 при ошибке; текст ошибки в stderr.

Работа

командачто делаетпример
snens runодин цикл до ответа моделиsnens run "собери проект"
snens run --newто же в новой сессииsnens run --new "начнём с нуля"
snens run --detachподагент отдельным процессом, печатает его idsnens run --detach --session s1 "изучи репозиторий"
snens steerпослать работающему подагенту сообщение; id — во флаге --sessionsnens steer --session s1 "хватит, итог"
snens agentsсписок детей сессии и их состояниеsnens agents --session s1
snens resultфинальный текст сессииsnens result s1
snens reviewревью сессии в тикетыsnens review --session s1
snens improveсессия улучшения харнесса в репозитории исходниковsnens improve

run без --session продолжает последнюю сессию. steer берёт текст из argv или со stdin; в справке id указан аргументом, а читается из --session — без флага команда завершится ошибкой. review работает по уже записанному журналу; improve требует tools_dir внутри git-репозитория.

Поверхности

командачто делаетпример
snens serveHTTP/SSE-ядро, при первом старте создаёт токенsnens serve
snens serve --listen ADDRадрес и порт ядраsnens serve --listen 127.0.0.1:8080
snens serve --data-dir DIRотдельный инстанс: свои сессии, ключ, токенsnens serve --data-dir ~/.local/share/snens-2
snens tuiTUI-клиент к запущенному ядруsnens tui --endpoint http://127.0.0.1:8080
snens tui-localTUI в этом же процессе, без сервера и токенаsnens tui-local
snens pairкод на 5 минут и адреса для приложенияsnens pair
snens clientsподключённые устройстваsnens clients
snens clients revoke <id>отозвать устройство, токен перестаёт работать сразуsnens clients revoke 3f2a

serve слушает только loopback. Не-loopback адрес требует --allow-remote и приватной сети (tailnet/WireGuard/LAN): API доступен по сети с одним bearer-токеном, без TLS. Токен: <данные>/api.token, 0600, не короче 32 символов без пробелов — иначе старт падает.

Сессии

командачто делаетпример
snens sessionsid всех сессийsnens sessions
snens showтокены, кеш, цена, самый крупный результатsnens show --session s1
snens logжурнал сессии, по записи JSON на строкуsnens log --session s1
snens sweepубрать мёртвое: дампы, зеркала, вложения закрытых сессийsnens sweep --older-than 14 --dry-run

sweep без --dry-run удаляет; --attachments добавляет к уборке вложения (по умолчанию они не трогаются — это данные человека). Порог возраста по умолчанию — 30 дней.

Настройка

командачто делаетпример
snens configтекущие правимые ключи и путь файлаsnens config
snens config ключ=значениеправка конфига на ходуsnens config max_turns=100
snens modelкакая модель сейчасsnens model
snens model <slug>сменить модель в конфигеsnens model имя-модели
snens providersпрофили, активный, задан ли ключsnens providers
snens providers activate <имя>сделать профиль активнымsnens providers activate cloud
snens providers key <имя> <ключ>положить ключ в .env (- — со stdin)snens providers key cloud -
snens memoryсостояние канала памятиsnens memory
snens memory on / offвключить или выключить каналsnens memory off
snens memory recall always (или session, off)когда впрыскивать справкуsnens memory recall session
snens memory retain on / offписать ли ход в банкsnens memory retain off

Список ключей для snens config — конфиг. model при активном профиле отвечает его моделью: менять её надо в профиле.

Тикеты

командачто делаетпример
snens ticketsоткрытые тикеты, сначала частыеsnens tickets
snens tickets --allвключая закрытые; --target, --kind, --status, --family — фильтрыsnens tickets --all --kind bug
snens tickets show <имя>тело тикета по префиксу имениsnens tickets show 2026-01
snens tickets grep <текст>поиск по имени и телуsnens tickets grep таймаут
snens tickets statsсчёт по статусам и targetsnens tickets stats

Неоднозначный префикс — ошибка со списком подходящих, а не первый попавшийся.

Разработка

командачто делаетпример
snens toolsчто видит модель: встроенные и реестрsnens toolssnens tools --jsonопределения инструментов как они уходят моделиsnens tools --json
snens buildсобрать весь workspace и разложить бинарники инструментовsnens build
snens build read editсобрать только названныеsnens build read
snens selftestодин ход на фейковой модели: реестр, argv, stdin, PATH, проекцияsnens selftest
snens verifycargo check → cargo test --workspace → selftest инструментов, один вердиктsnens verify

verify останавливается на первом красном шаге и печатает verify ok в конце; репозиторий берётся как родитель tools_dir. selftest работает только на unix.