Установка MASI OS
Конвейер протоколов встреч: запись превращается в проверенный протокол. Система ставится на личный ноутбук, офисный сервер или в облако в РФ. Каждый протокол проходит независимую проверку до показа.
Состав и статус
| Блок | Статус |
|---|---|
| Конвейер протокола | готов к тесту распознавание, черновик, проверка, HTML и текст |
| Mac | тестовая установка первый шаг, команды в разделе 05 |
| Windows | личный ноутбук Егора команды в разделе 05 |
| Linux | офисный сервер или облако в РФ команды в разделе 05 |
| Канал MAX | основной ввод токена командой из раздела 05; подключается отдельным шагом |
| Telegram | опционально ввод токена командой из раздела 05; выключен по умолчанию, включается переменной окружения |
| Дашборд SAIOS | позже в состав v0.1 не входит |
Код хранится в приватном репозитории GitHub sonicology/masi-os, тег v0.1.2-test. В репозитории нет ключей, токенов, записей встреч и идентификаторов чатов.
Путь одной записи
Если проверка не одобрила черновик, протокол не выходит. Задача останавливается и пишет причину в свой статус. Повторов после остановки нет: решение принимает человек.
| Роль | Модель и сервис |
|---|---|
| Распознавание речи | openai/whisper-large-v3-turbo, Router AI API |
| Черновик протокола | openai/gpt-6.1-sol, Router AI API |
| Независимая проверка | deepseek/deepseek-v4-flash, Router AI API |
Этапы установки
- Тест на отдельном MacКлонировать репозиторий, поставить ffmpeg и Python, проверить тесты и прогнать учебную запись. Цель: убедиться, что путь работает на чистой машине.
- Личный ноутбук, офисный сервер, облако в РФТа же инструкция, команды своей системы в разделе 05. Замечания первой установки вносятся в репозиторий до следующей.
- Канал MAXТокен бота вводится командой, подключение отдельным шагом после выдачи токена. Затем прогон учебной записи через MAX и проверка доставки.
- Telegram по желаниюТокен вводится командой, канал включается переменной MASI_TG_ENABLED=1. Без неё канал не используется.
Клонировать код
Одинаково для всех систем: эти команды работают и в Терминале, и в PowerShell.
git clone https://github.com/sonicology/masi-os.git cd masi-os git checkout v0.1.2-test
Дальше команды для вашей системы: раздел 05.
Mac, Windows, Linux
В каждой системе один и тот же набор: функция, ключи Router AI, токен MAX, токен Telegram, проверка, тесты. Значения записываются в файл .env в папке masi-os и вводятся скрыто: символы не отображаются, в историю команд не попадают. Функцию вставляют один раз на сессию терминала. Если окно закрыли, вставьте её снова.
Mac
Терминал по умолчанию работает в zsh, команды подходят и для zsh, и для bash. Нужно: Python 3.11 (python.org или brew install python@3.11), ffmpeg (brew install ffmpeg), Git (Xcode Command Line Tools). Откройте Терминал в папке masi-os.
- ФункцияВставьте блок целиком, один раз за сессию терминала.
masi_put() { local value tmp [ -d protocol ] || { echo 'Перейдите в папку masi-os (в ней есть папка protocol).'; return 1; } [ -f .env ] || cp .env.example .env printf '%s: ' "$2"; read -rs value; echo [ -n "$value" ] || { echo 'Пустое значение, ничего не записано.'; return 1; } tmp=$(mktemp .env.XXXXXX) || return 1 grep -v "^$1=" .env > "$tmp" printf '%s=%s\n' "$1" "$value" >> "$tmp" chmod 600 "$tmp" && mv "$tmp" .env unset value echo "Записано: $1" } - Ключи Router AIДве строки, каждая спросит значение. Символы не отображаются.
masi_put ROUTER_API_KEY 'Мастер-ключ Router AI (https://routerai.ru/api/v1)' masi_put ROUTER_MCP_TOKEN 'MCP-токен Router AI (https://routerai.ru/api/v1/mcp)'
- Токен бота MAXОсновной канал. Команда спросит токен.
masi_put MAX_BOT_TOKEN 'Токен бота MAX'
- Токен бота Telegram (необязательно)Выключен по умолчанию. Чтобы включить, в .env поставьте
MASI_TG_ENABLED=1вместо 0 и при запуске укажите ID чата:--tg-chat ID.masi_put TG_BOT_TOKEN 'Токен бота Telegram'
- ПроверкаВыводит только имена записанных значений.
for k in ROUTER_API_KEY ROUTER_MCP_TOKEN MAX_BOT_TOKEN TG_BOT_TOKEN; do grep -qE "^$k=[^ #]" .env && echo "$k записан"; done
- ТестыВсе 12 должны пройти. Тесты не обращаются к сети и ничего не тратят.
python3 -m unittest discover -s tests -v
- Тестовая обработкаУчебную запись передаёт владелец отдельно.
python3 -m protocol /путь/к/записи.mp3 --input-mode fixture
Windows
Нужно: Python 3.11 с python.org (запуск через py -3.11), Git for Windows, ffmpeg с папкой в PATH. Откройте PowerShell в папке masi-os.
- ФункцияВставьте блок целиком, один раз за сессию PowerShell.
function Set-MasiEnvValue($Name, $Prompt) { if (-not (Test-Path 'protocol')) { Write-Host 'Перейдите в папку masi-os (в ней есть папка protocol).'; return } $dir = (Get-Location).Path $file = Join-Path $dir '.env' if (-not (Test-Path $file)) { Copy-Item (Join-Path $dir '.env.example') $file } $secure = Read-Host $Prompt -AsSecureString $value = [System.Net.NetworkCredential]::new('', $secure).Password if (-not $value) { Write-Host 'Пустое значение, ничего не записано.'; return } $keep = @(Get-Content $file -Encoding UTF8 | Where-Object { $_ -notmatch "^$Name=" }) [System.IO.File]::WriteAllLines($file, [string[]]($keep + "$Name=$value"), (New-Object System.Text.UTF8Encoding($false))) icacls $file /inheritance:r /grant:r "$($env:USERNAME):(R,W)" | Out-Null Write-Host "Записано: $Name" } - Ключи Router AIДве строки, каждая спросит значение. Символы не отображаются.
Set-MasiEnvValue 'ROUTER_API_KEY' 'Мастер-ключ Router AI (https://routerai.ru/api/v1)' Set-MasiEnvValue 'ROUTER_MCP_TOKEN' 'MCP-токен Router AI (https://routerai.ru/api/v1/mcp)'
- Токен бота MAXОсновной канал. Команда спросит токен.
Set-MasiEnvValue 'MAX_BOT_TOKEN' 'Токен бота MAX'
- Токен бота Telegram (необязательно)Выключен по умолчанию. Чтобы включить, в .env поставьте
MASI_TG_ENABLED=1вместо 0 и при запуске укажите ID чата:--tg-chat ID.Set-MasiEnvValue 'TG_BOT_TOKEN' 'Токен бота Telegram'
- ПроверкаВыводит только имена записанных значений.
Select-String -Path .env -Pattern '^(ROUTER_API_KEY|ROUTER_MCP_TOKEN|MAX_BOT_TOKEN|TG_BOT_TOKEN)=[^ #]' | ForEach-Object { $_.Line.Split('=')[0] + ' записан' } - ТестыВсе 12 должны пройти. Тесты не обращаются к сети и ничего не тратят.
py -3.11 -m unittest discover -s tests -v
- Тестовая обработкаУчебную запись передаёт владелец отдельно.
py -3.11 -m protocol C:\путь\к\учебной_записи.mp3 --input-mode fixture
Linux
Нужно: Python 3.11 или новее, ffmpeg и Git. Debian или Ubuntu: sudo apt install python3 ffmpeg git. Откройте терминал в папке masi-os, команды подходят для bash и zsh.
- ФункцияВставьте блок целиком, один раз за сессию терминала.
masi_put() { local value tmp [ -d protocol ] || { echo 'Перейдите в папку masi-os (в ней есть папка protocol).'; return 1; } [ -f .env ] || cp .env.example .env printf '%s: ' "$2"; read -rs value; echo [ -n "$value" ] || { echo 'Пустое значение, ничего не записано.'; return 1; } tmp=$(mktemp .env.XXXXXX) || return 1 grep -v "^$1=" .env > "$tmp" printf '%s=%s\n' "$1" "$value" >> "$tmp" chmod 600 "$tmp" && mv "$tmp" .env unset value echo "Записано: $1" } - Ключи Router AIДве строки, каждая спросит значение. Символы не отображаются.
masi_put ROUTER_API_KEY 'Мастер-ключ Router AI (https://routerai.ru/api/v1)' masi_put ROUTER_MCP_TOKEN 'MCP-токен Router AI (https://routerai.ru/api/v1/mcp)'
- Токен бота MAXОсновной канал. Команда спросит токен.
masi_put MAX_BOT_TOKEN 'Токен бота MAX'
- Токен бота Telegram (необязательно)Выключен по умолчанию. Чтобы включить, в .env поставьте
MASI_TG_ENABLED=1вместо 0 и при запуске укажите ID чата:--tg-chat ID.masi_put TG_BOT_TOKEN 'Токен бота Telegram'
- ПроверкаВыводит только имена записанных значений.
for k in ROUTER_API_KEY ROUTER_MCP_TOKEN MAX_BOT_TOKEN TG_BOT_TOKEN; do grep -qE "^$k=[^ #]" .env && echo "$k записан"; done
- ТестыВсе 12 должны пройти. Тесты не обращаются к сети и ничего не тратят.
python3 -m unittest discover -s tests -v
- Тестовая обработкаУчебную запись передаёт владелец отдельно.
python3 -m protocol /путь/к/записи.mp3 --input-mode fixture
Установка одной командой
Агент сам проверит систему, поставит недостающее после вашего разрешения, запустит тесты и остановится там, где нужны ваши ключи. Ключи агенту не передаются: их вы вводите в своём терминале.
Что нужно заранее
- Claude Code или Codex установлены на машине, и вы вошли в свой аккаунт.
- Есть доступ к приватному репозиторию GitHub
sonicology/masi-os, например черезgh auth login. - Python 3.11, ffmpeg и Git: агент проверит их и предложит команду установки, если чего-то не хватает.
Mac и Linux
Claude Code:
git clone -b v0.1.2-test https://github.com/sonicology/masi-os.git && cd masi-os && claude "Install MASI OS on this machine. Read INSTALL_AGENT.md and follow it exactly. Never ask me to paste API keys or tokens into this chat."
Codex:
git clone -b v0.1.2-test https://github.com/sonicology/masi-os.git && cd masi-os && codex "Install MASI OS on this machine. Read INSTALL_AGENT.md and follow it exactly. Never ask me to paste API keys or tokens into this chat."
Windows, PowerShell
Здесь вместо && ставится ;. Claude Code:
git clone -b v0.1.2-test https://github.com/sonicology/masi-os.git; cd masi-os; claude "Install MASI OS on this machine. Read INSTALL_AGENT.md and follow it exactly. Never ask me to paste API keys or tokens into this chat."
Codex:
git clone -b v0.1.2-test https://github.com/sonicology/masi-os.git; cd masi-os; codex "Install MASI OS on this machine. Read INSTALL_AGENT.md and follow it exactly. Never ask me to paste API keys or tokens into this chat."
Что делает агент
- Проверка системыОпределяет Mac, Windows или Linux. Проверяет Python 3.11, ffmpeg и Git. Недостающее ставит только после вашего разрешения.
- ТестыЗапускает 12 офлайн-тестов. Сеть им не нужна, денег они не тратят.
- КлючиАгент останавливается и просит запустить в вашем терминале
python3 -m protocol.envsetup(Windows:py -3.11 -m protocol.envsetup). Команда спросит мастер-ключ, MCP-токен, токен бота MAX и включать ли Telegram. Ввод скрыт, агент значений не видит. - Проверка ключейКоманда
--checkпоказывает только имена и статус «записан» или «не задан». - Тестовая обработкаТолько по вашему разрешению: она вызывает платные модели. Учебную запись агент сам не ищет.
Без агента ту же настройку ключей можно сделать одной командой. Mac и Linux: python3 -m protocol.envsetup. Windows: py -3.11 -m protocol.envsetup.
INSTALL_AGENT.md, на английском. Команды выше только передают агенту задачу.Что передаём отдельно
| Что | Как |
|---|---|
| Место установки | личный ноутбук, офисный сервер, облако в РФ; выбор за Егором |
| Мастер-ключ Router AI | записывается командой из раздела 05 в .env |
| MCP-токен Router AI | записывается командой из раздела 05 в .env |
| Токен бота MAX | основной канал; вводится командой из раздела 05; подключается отдельным шагом |
| Токен бота Telegram | опционально; вводится командой из раздела 05; выключен по умолчанию |
| Данные встреч | вопрос о зарубежной обработке решается до первой реальной встречи; пока только учебные записи |
Мастер-ключ и MCP-токен передаются командой из раздела 05. Значения записываются в .env.
- Установить Python 3.11, Git и ffmpegPython с python.org, Git for Windows, ffmpeg с папкой в PATH.
- Получить кодВ PowerShell:
git clone https://github.com/sonicology/masi-os.git cd masi-os git checkout v0.1.2-test
- Записать ключи и токеныБлок Windows из раздела 05: сначала функция, затем строки ключей.
- Проверить тестыВсе 12 должны пройти.
py -3.11 -m unittest discover -s tests -v
- Тестовая обработкаУчебную запись передаёт Тарас.
py -3.11 -m protocol C:\путь\к\учебной_записи.mp3 --input-mode fixture
Репозиторий приватный: Егора нужно добавить участником или передать архив. Установка через агента: раздел 06.
Что проверено
Офлайн-тесты v0.1.2 пройдены на Mac: 12 из 12. Windows и Linux ещё не запускались. Команды для агентов ещё не проверены сквозным запуском. Живой прогон на новой установке ещё не сделан: первый шаг — тестовый Mac.