Запуск за пять минут
От скачивания до первой прямой линии. Команды ниже — для Windows; заметки для Android в конце каждого раздела.
01Скачивание и запуск
Возьмите mdo.exe около 4 МБ со страницы скачивания, положите в любую доступную для записи папку и запустите двойным щелчком. Первый запуск создаёт mdo-home/ рядом с exe и открывает нативное окно — это вся установка: ни реестра, ни AppData, нулевой след на системном диске.
# запуск сразу после скачивания — без установщика .\mdo.exe # проверка в режиме только-чтение без окна: ничего не создаёт и не меняет .\mdo.exe -- --help
На Android установите APK около 3.8 МБ и запустите один раз — приватный Home приложения будет создан автоматически.
02Первая задача
Создайте задачу в проекте по умолчанию и начните диалог. Новые задачи проекта по умолчанию используют mdo-home/workspace/ как выделенный рабочий каталог, создаваемый при первом обращении — никогда каталог программы или запуска. Существующие сессии помнят рабочий каталог с момента создания; явно указанные пути всегда приоритетнее.
Таймлайн вживую показывает поток ответов, вызовы инструментов, артефакты и рассуждения — события приходят по WebSocket того же порта, без опроса; каждое побочное действие сначала поднимает запрос на одобрение. Повторное открытие старой задачи подгружает историю по раундам, а компоновка контекста не удаляет увиденное. Верхняя панель переключает интерфейс между 中文, English и Русский.
03Настройка моделей
Встроенная бесплатная модель по умолчанию ornith-1.5-35b (протокол Responses по умолчанию, плюс Chat Completions и Anthropic, окно контекста 240K) работает сразу — ключ не нужен.
Свои модели подключаются через Настройки → Модели: сначала провайдер (endpoint, проверка TLS, таймаут), затем профиль модели (wire-имя, набор протоколов, окна контекста и вывода). Провайдеры и модели разделены — одна модель может висеть на разных подключениях.
{
"providers": [{
"id": "my-provider",
"endpoints": { "responses": "https://api.example.com/v1" },
"credential": { "secret_ref": "env:MY_PROVIDER_KEY" }
}],
"items": [{
"id": "my-model", "provider": "my-provider",
"wire_model": "example-large", "protocols": ["responses"]
}]
}Обычный JSON-конфиг никогда не хранит api_key, token, password и подобные секреты открытым текстом: учётные данные существуют только как ссылки secret_ref (env:, file:, keychain: или prompt:), разрешаются в момент использования и сразу освобождаются. Авторитетные определения полей — в контракте конфигурации репозитория.
04Полномочия и одобрения
Поза mdo по умолчанию — «сначала направляющая»: записи в файлы требуют токенов допуска записи, сетевые инструменты подчиняются политикам доменов и адресов, а каждый побочный вызов агента поднимает по-вызовное одобрение — строгость настраивается.
- Восстановление после срыва: после отменённого или прерванного запуска экран восстановления показывает все незавершённые вызовы; каждый требует явного
RETRY(перезапуск с повторной проверкой полномочий) илиRECORD_UNCERTAIN(без вызова, с записью прослеживаемого неопределённого результата). Автоповтор разрешён только заведомо read-only инструментам. - Сетевое трио:
web_searchиweb_openреально ходят в сеть с проверкой публичных адресов;web_findчитает только внутрипроцессный снимок документа. Доступ к поиску даёт вход по аккаунту (PKCE) с шифрованием учётных данных на устройстве. - Аудит: решения об одобрениях, результаты инструментов и история восстановления журналируются и воспроизводимы.
05Портативные Home
Рантайм-данные попадают только в mdo-home/ рядом с исполняемым файлом — ни реестра, ни AppData, в облако ничего не уходит. Боитесь забить системный диск? Положите exe на любой диск или укажите --home / MDO_HOME на другой диск, внешний носитель или флешку (первый приоритетнее). Оба лишь вычисляют путь; удаление = удалить одну папку, следов не остаётся.
# портативный режим с флешки: exe + Home едут вместе E:\mdo.exe -- --home E:\mdo-home # нулевой след на системном диске: живём на D: $env:MDO_HOME = "D:\mdo-home"; .\mdo.exe
Старый data/ рядом с прежним исполняемым файлом и .mdo/ в пользовательском каталоге импортируются через Настройки → Миграция: явный предпросмотр, токен подтверждения и атомарная публикация; целевой Home не должен существовать, старые каталоги не изменяются. См. заметки по миграции.
06Расширенное
- Память: глобальный и покомплектный
MEMORY.md. Агент использует обычные файловые инструменты; вы редактируете тот же файл в настройках. Отпечатки снимков делают устаревшие сохранения UI явно неудачными после прямых правок — тихих перезаписей нет. - Skill: внешние каталоги Skill — полная граница доверия: внешний каталог с тем же ID целиком затеняет встроенный Skill; скрипты и ресурсы читаются через API только при объявлении в front matter.
- MCP: транспорты stdio и HTTPS Streamable HTTP; секреты существуют лишь короткое время внутри регистрации кандидатов и никогда не возвращаются каталогом или API статуса.
- C-модули: кладите исходники на C в
agents/,subagents/илиtools/; они собираются ограниченным TCC с транзакционной горячей перезагрузкой поверх публичного ABI изinclude/mdo/module.h. - Отложенные задачи: задачи из настроек переиспользуют полную цепочку полномочий и аудита обычных агентных запусков и продолжаются после перезапуска.
07Связь устройств
После входа в один аккаунт участника телефон и ПК могут выбирать друг друга и управлять друг другом через список устройств в боковой панели. Дистанционное управление по умолчанию выключено: только после явного включения в настройках устройство подключается исходящим соединением к официальному релею (транспорт TLS, без открытых портов).
- Выбрали — приняли управление: после выбора цели диалог, проекты, файлы, одобрения, настройки и обновления действуют на целевом устройстве; в шапке всегда видны идентификатор цели и режим «только чтение»/«управление».
- Сначала наблюдение: начните в режиме «только чтение», чтобы посмотреть состояние цели, и переключитесь на управление, когда будете готовы.
- Записи с квитанциями: запросы записи несут уникальный ID и отпечаток содержимого; цель дедуплицирует и выдаёт квитанцию. При разрыве записи замораживаются — отката к контроллеру не существует.
- Изоляция по аккаунту: сервер проверяет сессию участника и владельца устройства; устройства чужих аккаунтов недоступны.
- Сдержанность на мобильных: Android запрашивает фоновые ресурсы только при включённом удалённом управлении и освобождает их при закрытии, отзыве или выходе; действуют системные и вендорские ограничения — бесконечного фонового онлайна не обещаем.
- Релей ничего не хранит: пересылаемое проходит только через память — без базы данных и журналов доступа.
Полный протокол и записи приёмки — в контракте удалённого управления; общие обязательства по данным — в разделе безопасность данных.
Более глубокие контракты (хранилище сессий, бэкап и восстановление, границы сетевых инструментов, ABI модулей…) читайте прямо в каталоге docs/ репозитория MIT — каждый документ развивается вместе с кодом.