Как это работает
Что такое maxOS
June 15, 2026 · 4 min read
maxOS — опенсорсная AI-native платформа компании ООО «Гарипофф», работающая на локальных моделях. Её открытое ядро — агент: он читает и правит файлы в проекте и выполняет команды в терминале, но делает это на языковой модели, работающей у вас на машине. Ни код, ни запросы, ни содержимое файлов не уходят в чужое облако.
Ядро открыто под лицензией Apache-2.0: github.com/LLC-Garipoff/maxos. С него и начнём.
Агент, а не автодополнение
Автодополнение подсказывает следующую строку. Агент решает задачу целиком: разбирается в проекте, вносит правки в несколько файлов, запускает сборку и тесты, читает вывод и идёт дальше.
Внутри maxOS — простой цикл. Модели передаётся задача и описание доступных инструментов. Модель отвечает не текстом, а решением вызвать инструмент. Инструментов четыре:
read_file— прочитать файл;list_dir— посмотреть содержимое каталога;write_file— создать или перезаписать файл;run_bash— выполнить команду в оболочке (сборка, тесты, запуск).
maxOS выполняет вызов в рабочей директории, возвращает результат модели, и цикл повторяется, пока модель не перестанет звать инструменты и не ответит итогом. Все пути ограничены рабочей папкой — вызов, который пытается выйти за её пределы, отклоняется. Перед записью файла и перед выполнением команды maxOS по умолчанию спрашивает подтверждение.
Это весь принцип. Никакого скрытого облачного оркестратора — цикл, инструменты и промпт умещаются в несколько сотен строк без рантайм-зависимостей.
Только локальные модели
maxOS сам не считает нейросеть. Он делегирует инференс локальному рантайму с OpenAI-совместимым API — например Ollama или llama.cpp. Вы поднимаете модель у себя:
ollama pull qwen2.5-coder:7b
— а maxOS общается с ней по http://localhost. Облачного эндпоинта в схеме нет вообще: если машина тянет модель, агент работает полностью офлайн.
Здесь есть техническая тонкость, ради которой пришлось писать отдельный слой. Часть локальных моделей честно отдаёт вызовы инструментов в структурном поле tool_calls, как того ждёт OpenAI-совместимый протокол. Но многие — в том числе qwen2.5-coder — вместо этого пишут вызов JSON-текстом прямо в ответе. maxOS распознаёт оба случая: если структурного поля нет, он извлекает вызов из текста (включая формат с тегами <tool_call>) и продолжает цикл. Поэтому фреймворк работает не с одной «правильной» моделью, а с разными.
Куда подключаются модели для кодинга
maxOS — это оркестратор: промпт, инструменты, цикл, песочница, подтверждения. Сам код пишет и правит подключённая модель. Для кодинга в рантайм ставятся специализированные модели — qwen2.5-coder, llama3.1 и подобные, те, что умеют вызывать инструменты. Поменять модель — это одна строка (--model) или переменная окружения; остальной агент не меняется.
Разделение осознанное. Агентский цикл упирается в диск и сеть, а не в вычисления, поэтому он написан на TypeScript — быстро итерировать, легко ставить. А производительные и системные куски, которых ещё нет, мы планируем выносить в нативное ядро на Rust: индексация больших репозиториев и поиск по ним, единый бинарник без зависимости от Node. Логика та же — брать инструмент под конкретную причину, а не писать на Rust то, что упирается в ввод-вывод.
При чём здесь SpotMax
SpotMax — десктопное приложение команды, выросшее из той же идеи: модель, которая тебе помогает, должна работать рядом с тобой, а не в чужом дата-центре. Само имя — это Spotlight + max: инструмент, тесно вшитый в операционную систему, всегда под рукой.
Делали его под продажи — для собственных презентаций и питчей: помощник слышит разговор и в реальном времени подсказывает, чтобы держать нить и контекст. Оказалось, что он полезен шире — пригодился и соискателям, и HR. А сегодня им всё чаще пользуются для переговоров с иностранными контрагентами: SpotMax распознаёт и расшифровывает речь прямо на устройстве и помогает вести разговор, не теряя смысла. Как именно он слышит звонок, расшифровывает речь и подсказывает — разобрано отдельно: Как работает SpotMax: транскрипция, перевод и подсказки во время звонка.
Распознавание и разделение говорящих работают локально — это и есть те модели, что крутятся на устройстве. maxOS — общий, открытый фундамент под этим: агентский слой, который мы вынесли в опенсорс, чтобы его можно было читать, проверять и улучшать.
Почему локально
Облачные агенты для кода отправляют ваш исходник, ваши запросы и часто вывод терминала на сторонний сервер. Для большой части работы — закрытый код, регулируемые данные, NDA, да просто плохая сеть — это неприемлемо. maxOS делает локальный путь единственным: проверить это можно прямо по исходникам, потому что они открыты.
Код, баг-репорты и улучшения — на GitHub: github.com/LLC-Garipoff/maxos. А за конкретные улучшения локальных моделей у нас есть программа вознаграждений.