Mila Agent ставится одной командой — из файлов последнего выпуска, а не из свежей ветки main. Рядом с установщиком лежит контрольная сумма: скачайте, сверьте, прочитайте, потом запускайте. Ниже — как это устроено и как выпускается версия. У каждой строки — ссылка на код.
Для тех, кто ставит Милу на свой компьютер или сервер.
Ссылка ведёт на файлы выпуска на GitHub: releases/latest/download/get.sh.
curl -fsSL …/releases/latest/download/get.sh | bash скачивает установщик из последнего выпуска и запускает его.
В каждом выпуске два файла: get.sh и SHA256SUMS. Скачайте оба, сверьте сумму, прочитайте скрипт — потом запускайте.
С MILA_INSTALL_ARGS=--dry-run установщик показывает, что будет затронуто; набор кладётся во временную папку, в домашнюю ничего не пишется.
Проверяет Claude Code, Bun и git, клонирует набор в ~/mila, запускает install/install.sh и ставит плагин Telegram mila-telegram.
Команды — из README, для Linux и macOS. --ignore-missing сверяет только скачанные файлы. README:130 README:133-139
Запуск стоит после &&: если сумма не сошлась, bash get.sh не выполнится.
$ curl -fsSLO https://github.com/shakhruz/mila-agent/releases/latest/download/get.sh $ curl -fsSLO https://github.com/shakhruz/mila-agent/releases/latest/download/SHA256SUMS $ sha256sum -c --ignore-missing SHA256SUMS && bash get.sh # Linux $ shasum -a 256 -c --ignore-missing SHA256SUMS && bash get.sh # macOS
MILA_REF установщик берёт последний стабильный тег vX.Y.Z; ветку main — только с MILA_REF=main. get.sh:6 get.sh:15 get.sh:26-30get.sh для выпуска tools/release.sh вписывает тег и его коммит; в самом репозитории обе строки пустые. get.sh:12-14 get.sh:25 release.sh:46-48get.sh останавливается: «nothing installed». get.sh:45-49~/mila лежит не набор Милы, установщик ничего не меняет и предлагает другую папку. get.sh:31-36Сопровождающий запускает tools/release.sh X.Y.Z. Скрипт идёт по шагам и сам ничего не пушит.
Дерево чистое, такого тега ещё нет, версия новее последней; в CHANGELOG.md есть раздел этой версии с блоком «For the owner».
Тесты обновлений (test_update, test_nightly, test_renamed), полный tests/run_all.sh и проверка frontmatter. Один красный — выпуска нет.
В release.json — версия, тег и дата, затем коммит «release vX.Y.Z».
Тег подписывается (git tag -s), если задан ключ сопровождающего; иначе — аннотированный тег без подписи, и скрипт об этом пишет.
get.sh и SHA256SUMSВ dist/vX.Y.Z/ — get.sh с вшитыми тегом и коммитом и SHA256SUMS к нему, с именем файла выпуска.
Скрипт ничего не отправляет: печатает команды пуша, строку gh release create с коммитом тега в заметках и проверку ссылки установки.
Ссылка releases/latest/download работает, только пока в последнем выпуске есть get.sh и SHA256SUMS. Это проверяет отдельный инструмент.
tools/check_install_link.py находит в README*.md все ссылки на файлы выпуска и запрашивает каждую. Не 200 — код 1 и список: какой файл, в каком README. check_install_link.py:4-6 check_install_link.py:11-19 check_install_link.py:40-46Ночное обновление ставит версию программой из выпуска и считает себя успешным, только когда она ответила "ok": true. Любой другой ответ — «rejected», версия остаётся прежней. update.py:1036-1038 test_reexec_nightly.sh:41-45 CHANGELOG:117
Как приходят и ставятся обновления — на странице «Обновления».
get.sh и SHA256SUMS приходят из одного выпуска. README:130-132get.sh выпусков после v1.7.1. README:131-133 get.sh:45-49Скрипты выпуска и проверки лежат в открытом репозитории. CHANGELOG:95 CHANGELOG:121 CHANGELOG:93
| Файл | Что делает |
|---|---|
| tools/release.sh | выпуск: проверки, тесты, release.json, тег, установщик и файл сумм |
| install/get.sh | установщик: проверки, тег выпуска, клон, install.sh, плагин Telegram |
| tools/check_install_link.py | команда установки из README отвечает 200 |
| tools/test_check_install_link.py | тест проверки ссылки на поддельном GitHub |
| CHANGELOG.md | v1.7.0: установка из выпуска, а не из main |
Набор открыт: умения, хуки, инструменты и шаблоны. Каждый pull request читает человек и Мила Качество.
Факты на странице: github.com/shakhruz/mila-agent (main, b5f1b9d, после v1.7.1), проверено 05.11.2026. Переписка в телефоне — иллюстрация. «Mila», «MILAGPT» и логотип — товарные знаки MILAGPT.