Перейти к содержимому
Воскресенье, Ноябрь 8, 2026НЕЗАВИСИМЫЕ ТЕХНИЧЕСКИЕ НОВОСТИ, ОБЗОРЫ И ПРАКТИЧЕСКИЕ РУКОВОДСТВА
О ПРОЕКТЕ
ПОСЛЕДНЕЕ /

Как пользоваться OpenCode: от первого промпта до App Store. Руководство 2026 года по тарифам для кодинга, Ollama, серверам MCP и навыкам

ЧИТАТЬ РУКОВОДСТВО
ИИ-АГЕНТЫGM / 903

Как пользоваться OpenCode: от первого промпта до App Store. Руководство 2026 года по тарифам для кодинга, Ollama, серверам MCP и навыкам

Как пользоваться OpenCode от установки до одобрения в App Store: планы для кода, Ollama локально и в облаке, MCP-серверы, навыки и правила Apple.

How to use OpenCode from first prompt to the App Store: coding plans, Ollama, MCP servers, skills and the 2026 App Store rules on a tech.grahammiranda.com title card

Где-то между первым промптом и первым письмом из App Review агент для ИИ-кодинга перестаёт быть игрушкой и становится инструментом, с которым вы выпускаете продукт. Это руководство о том, как пользоваться OpenCode чтобы пройти путь от одного до другого: установить его на чистый Mac, решить, за что платить в модели, которая думает, запустить модели на своей машине с Ollama, дать агенту настоящие руки с помощью серверов MCP, научить его вашим привычкам с помощью навыков, а затем провести приложение для iPhone через TestFlight и App Review, не потеряв неделю на бумажную работу.

Я не из мира программирования. Я руковожу небольшой IT-компанией в Германии и создаю программы с помощью ИИ-агентов. Два результата осенью вышли в App Store: Stash, который запоминает, куда вы что положили, и PingAtlas, который измеряет задержку сети с вашего собственного устройства. Они появляются в этом руководстве только там, где действительно полезны как примеры, и больше нигде.

Всё ниже сверено с официальной документацией, примечаниями к выпускам, страницами с ценами и самим App Store на 7 ноября 2026 года. ИИ-кодинг меняется быстро: только с 20 по 30 октября OpenCode выпустил не меньше десяти релизов версии 2, Ollama и MiniMax с конца августа переработали свои тарифы, а Apple за этот год как минимум дважды переписывала части своих правил проверки. Нестабильные цифры помечены там, где они встречаются. Проверяйте их, прежде чем что-то покупать.

Раскрытие информации: Stash и PingAtlas — мои собственные приложения, их выпускает моя компания Graham Miranda UG (haftungsbeschränkt). Оба бесплатны и не показывают рекламу. В этой статье есть одна партнёрская ссылка: ссылка на Z.ai GLM Coding Plan во второй части даёт вам скидку 10% и приносит мне комиссию, если вы оформите подписку. Команда OpenCode в Anomaly, Ollama, Apple, Expo, Z.ai и все остальные упомянутые здесь компании не спонсировали, не проверяли и не одобряли эту статью.


Коротко — весь путь в десяти пунктах

  • OpenCode — бесплатный агент для кодинга с открытым исходным кодом (MIT), который работает почти с любой моделью: облачные подписки, API с оплатой за токены или модели, запущенные на вашем собственном Mac. Сейчас это версия 2.2.6 (6 ноября 2026 года), с терминальным приложением, настольным приложением, веб- и телефонным интерфейсом и режимом ACP, который работает внутри Xcode 27.
  • Вы платите за модель, а не за агента. “Тарифы для кодинга” — это фиксированные месячные подписки на время работы модели. Для большинства новичков OpenCode Go ($10 в месяц) плюс Ollama (бесплатно локально, $20 в месяц за облачные кредиты Pro) — это схема, которую я рекомендую: дешёвая, не привязанная к конкретной модели, по умолчанию без сохранения данных для большинства моделей и без серых зон в чьих-либо условиях обслуживания.
  • Альтернативы существуют. ChatGPT Plus и Pro, GitHub Copilot и Z.ai GLM Coding Plan подключаются к OpenCode через встроенные провайдеры. Подписки Claude снова работают — через новый провайдер Claude Agent в OpenCode 2.2.3, но Anthropic публично не одобрила этот путь, поэтому прочитайте часть 2, прежде чем на него полагаться.
  • Ollama — один движок для локальных и облачных моделей. ollama launch opencode связывает их вместе, локальным моделям нужно контекстное окно не меньше 64K, а на Mac с 32 ГБ можно запускать серьёзные модели для кодинга, такие как qwen3.8:27b (скачивание на 18 ГБ).
  • Серверы MCP дают агенту руки. Для работы с приложениями короткий список такой: собственный MCP-мост Xcode (xcrun mcpbridge), XcodeBuildMCP, сервер MCP от Expo, Context7 для актуальной документации и Sentry для падений. Добавляйте только то, чем пользуетесь: каждый сервер стоит контекста.
  • Навыки дают агенту ваш рабочий сценарий. Навык — это папка с SKILL.md файлом. OpenCode читает их из .opencode/skills а также из .claude/skills и .agents/skills, поэтому навыки, написанные для других агентов, тоже работают. Expo публикует 23 официальных навыка, а в CLI App Store Connect (asc) их больше двадцати.
  • Пусть агент занимается бумагами, но никогда — отправкой. Этот asc CLI и его навыки могут загружать сборки, управлять TestFlight, синхронизировать метаданные и скриншоты и проверять статус проверки. Запретите команду отправки в разрешениях OpenCode и нажмите кнопку сами.
  • Правила Apple 2026 года важны для приложений, созданных с помощью ИИ. Приложения-клоны в переполненных категориях теперь отклоняют (правило 4.3(b), июнь), скрытые или неактивные функции запрещены (новое правило 2.5.19, октябрь), для сборок нужен Xcode 26 или новее, а с апреля 2027 года приложениям, собранным с SDK iOS 27.1, нужны скриншоты для iPhone Duo.
  • Стоимость первого года: $99, если вы запускаете всё локально и платите только Apple, около $419 на схеме, которую я рекомендую (Apple + OpenCode Go + Ollama Pro при годовой оплате), и примерно $1 779 за мощную конфигурацию. Все цены без НДС.
  • Самое важное правило: “Готово” — это заявление, а не факт. Запустите его на настоящем iPhone, в авиарежиме, в тёмной теме, с самым крупным размером текста и включённым VoiceOver. И только потом верьте.

Весь путь вкратце

Этап Что вы делаете Что делает OpenCode Инструменты
1. Настройка Установите, выберите план для кодинга, подключите модели Пока ничего OpenCode, OpenCode Go, Ollama
2. Обучение Напишите AGENTS.md, добавьте навыки, подключите серверы MCP Читает их в каждой сессии AGENTS.md, навыки, MCP
3. Планирование Напишите бриф, поспорьте с планом Превращает бриф в план и дорожную карту план агент, /goal
4. Сборка Проверяйте каждый diff, тестируйте на устройстве Пишет код небольшими частями, собирает, запускает тесты, делает скриншоты build агент, Xcode MCP, XcodeBuildMCP или Expo MCP
5. Бета-тест Пригласите тестировщиков, читайте отзывы Архивирует, загружает, управляет группами TestFlight Xcode, asc или EAS
6. Документы Честно отвечайте на юридические вопросы и вопросы конфиденциальности Готовит черновики метаданных, проверяет потоки данных, изменяет размер скриншотов asc навыки
7. Отправка Вы нажмите “Отправить на проверку” Проверяет статус проверки, разбирает отказы App Store Connect
8. Запуск Отвечайте пользователям, планируйте обновления Локализует, пишет примечания к выпуску, разбирает сбои asc, Sentry, ваш сайт
Как использовать OpenCode от первого промпта до App Store: конвейер из восьми этапов — от настройки и тарифных планов на кодинг до навыков, MCP-серверов, сборки, TestFlight, App Store Connect и запуска
Весь конвейер на одной странице. Агент делает большую часть работы за клавиатурой. За вами бриф, проверка каждого diff и кнопка “Отправить”.

Содержание


Часть 1 — Что такое OpenCode в ноябре 2026 года и почему я его рекомендую

OpenCode — это агент для ИИ-кодинга с открытым исходным кодом. Вы запускаете его в папке проекта, описываете, что нужно сделать, и он работает так же, как разработчик: читает ваши файлы, составляет план, правит код, запускает команды, читает ошибки и продолжает, пока работа не будет сделана или пока ему не понадобитесь вы. Он распространяется по лицензии MIT командой Anomaly, которая его и создала, и ему всё равно, какую модель вы ему дадите.

На главной странице проекта заявлено более 220 000 звёзд на GitHub, 1 089 участников и 22 миллиона разработчиков в месяц. Это собственные цифры проекта, и они меняются каждую неделю, но они объясняют, почему OpenCode стал самым известным агентом, не привязанным к конкретной модели, — альтернативой Claude Code и Codex, агентам самих производителей моделей.

Где он работает

OpenCode больше не одно приложение. После переписывания в версии 2.0 на вашей машине работает фоновый сервис, и с ним общается каждый интерфейс, поэтому сеанс, начатый в одном месте, появляется в остальных.

Интерфейс Что это Хорошо подходит для
Терминал (TUI) Классическое полноэкранное приложение для терминала Быстрая работа с клавиатуры, сеансы SSH, серверы
Настольное приложение Приложение на Electron для macOS (Apple silicon и Intel), Windows (x64 и ARM64) и Linux (.deb, .rpm, AppImage), с вкладками, диффами, терминалами и встроенным браузером Люди, которые не живут в терминале
Веб и телефон opencode pair выводит одноразовую ссылку (она действует пять минут), которая открывает ваши локальные сеансы в браузере; в версии 2.2.6 появился композер, удобный для телефона и планшета Проверка долгой задачи с дивана
Внутри Xcode 27 OpenCode поддерживает Agent Client Protocol, поэтому opencode acp его можно добавить как агента в настройках Intelligence в Xcode Разработчики на нативном Swift, которые хотят оставаться в Xcode
SDK и скрипты opencode run для разовых задач, плюс JavaScript SDK Автоматизация и CI

Что изменилось с версии 2.0

OpenCode 2.0 — это полная переработка: по словам команды в июльском анонсе, среда выполнения переехала с Bun на Node.js, чтобы снизить потребление памяти, настольное приложение перешло с Tauri на Electron, API переработали, и OpenCode начал по умолчанию работать как сервис. Версия 2.0.0 вышла 11 сентября 2026 года. В выпусках после этого в основном добавляли функции, важные для долгих реальных проектов:

Версия Дата Что добавили
2.2.0 27 окт. Экспериментальные плагины для настольного приложения, обновлённое настольное приложение, API изображений и принятия решений для плагинов
2.2.1 29 окт. Режим целей (/goal <objective>, с паузой, возобновлением и очисткой), включается по желанию запланированные промпты, генерация изображений
2.2.2 29 окт. Генерация изображений включена по умолчанию, если подключённый провайдер её поддерживает; выбор worktree по ветке Git
2.2.3 30 окт. Этот Claude Agent провайдер (подробнее в части 2)
2.2.4 30 окт. Пошаговая настройка Claude Agent, расписания, которые выполняются под opencode serve, постоянные терминалы в настольном приложении
2.2.5 30 окт. Ярлыки для worktree и shell-режима, буфер уплотнения контекста в процентах
2.2.6 6 нояб. opencode run --worktree для запусков по скриптам, мобильный док композера, общие подключения MCP

Источник: список изменений OpenCode, проверено 7 ноября 2026 года. К моменту, когда вы это прочитаете, версия наверняка будет новее.

Почему я рекомендую именно этот агент

  1. Он не привязан ни к одной модели. OpenCode подключается к подпискам, API с оплатой за токены и локальным моделям одной /connect командой. Когда в следующем месяце выйдет модель получше, вы измените одну строку в файле конфигурации, а не весь рабочий процесс.
  2. Его разрешения работают как брандмауэр. Каждое действие (чтение, редактирование, запуск shell-команды, загрузка навыка, вызов инструмента MCP) проходит через упорядоченный список allow, «спрашивать» и deny правил, в которых побеждает последнее совпадение. “Никогда не выполнять git push” и “никогда не отправлять в App Store” — это по одной строке.
  3. Он говорит на всех форматах. Он читает AGENTS.md (и переключается на CLAUDE.md), загружает навыки из .claude/skills и .agents/skills а также из собственных папок, и подключается к любому серверу MCP. Экосистема, созданная другими агентами, здесь тоже работает.
  4. Он работает там, где вы. Терминал на сервере, десктопное приложение на Mac, браузер на телефоне или внутри Xcode.
  5. Он ничего не стоит. OpenCode бесплатен, и в него даже входит сменяющийся набор бесплатных моделей, которыми можно пользоваться без аккаунта.

Где он не лучший выбор

Сначала честно: OpenCode не лидер в рейтингах по кодингу, потому что это не одна модель. На вершине — пары от вендоров: Claude Code с лучшей моделью Anthropic, Codex с моделью OpenAI. Их настраивают вместе, и они превосходны. Я сравнил двадцать восемь из них в своей сравнение harness для ИИ-кодинга, и если вы уже платите за одну из этих подписок и вам всё нравится, ничто в этом руководстве не требует переходить.

Есть и шероховатости. OpenCode выпускает релизы почти каждый день, так что всё меняется у вас под ногами. Старая документация версии 1 всё ещё лежит на docs.opencode.ai (с баннером, указывающим на v2), и множество сторонних руководств, включая собственную страницу OpenCode у Ollama, до сих пор показывают адрес установщика v1. Некоторые из новейших функций помечены как экспериментальные. А менеджеры пакетов Windows не поддерживаются для инструмента командной строки v2; пользователи Windows получают десктопное приложение или отдельный zip.


Часть 2 — Планы для кодинга: что это такое (и два, которые я рекомендую)

OpenCode бесплатен. А модель, которая думает, — нет. Есть три способа за неё платить, и большая часть путаницы вокруг «планов для ИИ-кодинга» возникает из-за их смешения.

  1. Запустите у себя. Модели с открытыми весами на вашем Mac через Ollama. Вы платите железом и терпением, а не деньгами. Ваш код не покидает машину.
  2. Оформите подписку на план для кодинга. Фиксированная месячная плата покупает лимит использования, обычно измеряемый пятичасовыми и недельными окнами. Здесь живут OpenCode Go, Ollama Pro, GLM Coding Plan, подписки ChatGPT и Claude.
  3. Платите за токены. Возьмите ключ API у любого провайдера и платите ровно за то, что используете. Идеально для редкой сложной задачи; опасно для долгой отладки без предупреждения о бюджете.

Планы для кодинга, которые работают в OpenCode (ноябрь 2026)

Plan Месячная цена (USD) Что вы получаете Как он подключается к OpenCode
Бесплатные модели OpenCode $0 Сменяющийся набор бесплатных моделей на ограниченное время Встроено, аккаунт не нужен
Ollama, локально $0 Любая модель с открытыми весами, которую выдержит ваш Mac Определяется автоматически, или ollama launch opencode
OpenCode Go ⭐ $10 · Go Plus $40 · Go Teams $20 за участника 32 открытые модели, включая GLM-5.3, GLM-5.3-Flash, Kimi K3 и K3.1 Pro, MiniMax M3.1 Flash, DeepSeek V4.1 Flash и Qwen3.8 Max /connect → OpenCode Go → вставьте свой ключ
Ollama Pro / Max ⭐ $20 ($200 в год) · Max $100 $60 (Pro) или $300 (Max) кредитов на облачные модели в месяц, плюс неограниченное локальное использование Как у локальной Ollama; облачные модели появляются рядом с локальными
GLM Coding Plan (Z.ai) Lite $18 · Pro $80 · Max $168 (скидка 20% при оплате за квартал, 30% за год) GLM-5.3 и GLM-5.3-Flash, обе с контекстом в 1M токенов /connect → провайдер Z.AI Coding Plan
MiniMax M Plan Go $22 · Explore $55 · Build $132 (два месяца бесплатно при годовой оплате) MiniMax M3.1 Flash, а также модели изображений, аудио и (с тарифа Explore) видео Провайдер планов для кодинга от MiniMax, с ключом M Plan
ChatGPT Plus $20 · Pro от $100 Семейство GPT-6 от OpenAI через ваш план ChatGPT /connect → OpenAI → “Войти через ChatGPT”
GitHub Copilot Pro $10 · Pro+ $39 · Max $100 Пул моделей Copilot, тарифицируемый в GitHub AI Credits /connect → GitHub Copilot → вход по коду устройства
Claude Pro $20 · Max от $100 модели Anthropic через Claude Code /connect → Claude Agent (OpenCode 2.2.3+, установлен Claude Code); см. оговорку ниже
Оплата за токены Что вы используете API любого провайдера, включая собственный шлюз OpenCode с оплатой по факту использования /connect → провайдер → ключ API

Каталожные цены на 7 ноября 2026 года без НДС. ⭐ = то, что рекомендует это руководство. Цены, квоты и состав моделей постоянно меняются, поэтому проверяйте страницу каждого поставщика, прежде чем оформлять подписку. Цены GLM взяты из среза на 24 сентября и из заголовка Z.ai “планы от $18”; членство Kimi (от $19) опущено, потому что я не смог подтвердить для него официальный путь через OpenCode.

Сравнение тарифов на ИИ-кодинг, ноябрь 2026: месячные стартовые цены от бесплатных до $168 для OpenCode Go, Ollama, GitHub Copilot, GLM Coding Plan, ChatGPT, Claude и MiniMax — с выделенными OpenCode Go и Ollama
Лестница цен. Два выделенных плана — те, с которых я бы начал; всё остальное — хороший повод остаться на подписке, которая у вас уже есть.

Как на самом деле работают лимиты

Заголовочная цена говорит очень мало. Живёте вы с лимитом.

  • OpenCode Go даёт каждой модели собственный месячный лимит в долларах, и вы можете потратить 20% его за любое пятичасовое окно и 50% за любую неделю. На плане за $10, например, GLM-5.3-Flash получает $60 в месяц, DeepSeek V4.1 Flash — $100, а Kimi K3 — $15, так что дешёвые и эффективные модели растягиваются гораздо дальше, чем тяжёлые. Когда вы упираетесь в лимит, запросы блокируются, если вы не включили Extra Usage, который переключается на кредит с оплатой по факту использования. Бесплатные модели продолжают работать в любом случае.
  • Ollama перешёл на кредиты: Pro включает $60 облачного использования в месяц, а Max — $300, оба тарифицируются по цене за токен, и неиспользованный кредит не переносится. Pro допускает три запроса одновременно, Max — десять. Цены снижаются вне интервала с 12:00 до 18:00 UTC по будням и весь уикенд, что отлично подходит для европейских вечеров. Локальные модели безлимитны на любом плане, включая бесплатный.
  • План GLM Coding тратит кредиты на каждое пятичасовое и недельное окно, а использование вне пиковых часов (вне 14:00–18:00 по китайскому времени в будни) стоит вдвое меньше кредитов.
  • ChatGPT и Copilot считают через свои системы: ChatGPT — в оценках сообщений за пять часов для каждой модели, Copilot — в AI Credits. Внутри OpenCode вход через ChatGPT не показывает стоимость за запрос, потому что использование списывается с вашего плана, а OpenCode по умолчанию ограничивает для них входное контекстное окно (500 000 токенов на новейших моделях GPT).

Конфиденциальность и хранение данных

Ваши промпты содержат ваш код. Куда они уходят — важно, особенно для клиентской работы на условиях защиты данных ЕС.

  • OpenCode Go блокирует по умолчанию платные эндпоинты, которые обучаются на ваших данных. Большинство моделей (GLM, Kimi, MiniMax, Qwen, MiMo и другие) работают с нулевым хранением; несколько (Grok, модели GPT Luna, Claude Haiku и две бесплатные промо-модели) хранят логи 30 дней. Модели “Contributor” со скидкой действительно обучаются на ваших промптах, и их нужно включать намеренно. Регионы по умолчанию — Европа и США, а модели DeepSeek требуют согласия на глобальную маршрутизацию с соглашением о нулевом хранении, действующим до 30 ноября 2026 года.
  • Ollama Cloud говорит прямо: “Данные промптов или ответов никогда не логируются и не используются для обучения.” Модели работают в основном в США, а резервные мощности могут маршрутизироваться в Европу.
  • Бесплатные модели OpenCode — это другое дело: документация отмечает, что некоторые бесплатные модели могут использовать ваши данные для улучшения модели. Нормально для экспериментов, не для клиентского кода. Установите OPENCODE_DISABLE_FREE_MODELS=1 чтобы скрыть их.
  • Локальные модели никогда не покидают вашу машину. Для всего, что подпадает под строгое соглашение об обработке данных, это по-прежнему самый чистый ответ.

Вопрос о Claude

У подписок Claude был тяжёлый год в сторонних инструментах. В январе Anthropic ужесточила проверки, и входы Claude Pro и Max перестали работать в таких harness, как OpenCode, а в марте OpenCode убрал опцию входа по просьбе Anthropic. 30 октября OpenCode 2.2.3 вернул подписки другим путём: встроенный Claude Agent провайдер, который управляет установленным у вас Claude Code (версия 2.1.248 или новее) через официальный Agent SDK от Anthropic, после того как вы войдёте с помощью claude auth login.

Факты, которые нужно знать, прежде чем использовать его:

  • OpenCode не читает сохранённый вход Claude Code; настоящая claude программа отправляет запросы.
  • Собственные инструменты Claude Code, настройки, CLAUDE.md файлы, хуки, MCP-серверы и навыки отключены. Вместо этого Claude работает через инструменты и запросы разрешений OpenCode.
  • Документация Agent SDK от Anthropic говорит, что сторонние разработчики не могут предлагать вход через claude.ai или лимиты подписки в своих продуктах, если Anthropic не одобрила это. На момент написания Anthropic публично не комментировала провайдер OpenCode, и никто не может с уверенностью сказать, подвергает ли это ваш аккаунт риску.

Мой совет: если вы уже платите за Claude и хотите попробовать, используйте его для личных проектов и следите за официальными заявлениями. Для деловой работы используйте ключ API Anthropic — единственный путь, который называет документация Anthropic.

Что я рекомендую и почему

Начните с OpenCode Go и Ollama. Вот рассуждение:

  • Цена. $10 в месяц открывает доступ к 32 сильным открытым моделям. Добавьте Ollama Pro за $20, если хотите больше облачного запаса; пропустите его, если ваш Mac хорошо тянет локальные модели.
  • Выбор без привязки. Go и Ollama Cloud несут одни и те же семейства с открытыми весами (GLM, Kimi, MiniMax, DeepSeek и другие), так что вы можете сравнить модели на своём проекте вместо того, чтобы доверять таблице лидеров.
  • Конфиденциальность по умолчанию. Нулевое хранение для большинства моделей Go, политика без логирования в Ollama и возможность полностью уйти в локальный режим для чувствительной работы.
  • Никаких серых зон. Оба созданы именно для этого — для работы внутри OpenCode.
  • Локальный резервный вариант бесплатен. Когда пятичасовое окно заканчивается в 23:00, локальная модель на Ollama позволяет продолжать работу над небольшими задачами.

Когда выбрать что-то другое. Если вы уже платите за ChatGPT Plus или Copilot, подключите этот сервис в первую очередь: это не будет стоить вам ничего дополнительно. Если GLM станет вашей основной моделью, квота GLM Coding Plan может оказаться более разумным выбором, чем ограничения Go на каждую модель, и вы можете получить скидку 10% на GLM Coding Plan по моей партнёрской ссылке (партнёрская ссылка, см. уведомление в начале статьи). Ключи Coding Plan и стандартные API-ключи Z.ai не взаимозаменяемы, поэтому выберите провайдера Coding Plan в /connect. А если для вашей работы нужен самый верх таблицы лидеров, передовая модель по API-ключу для самых сложных задач — это деньги, потраченные не зря.


Часть 3 — Ollama: один движок для локальных и облачных моделей

Ollama запускает модели с открытыми весами на вашем компьютере и предоставляет доступ к ним через простой локальный API. С прошлого года она также запускает более крупные модели в собственном облаке — через то же приложение и тот же API, поэтому для OpenCode облачная модель выглядит точно так же, как локальная. В этом и вся привлекательность: один движок, одна настройка и переключение между “приватной и бесплатной” и “большой и быстрой” — достаточно просто сменить имя модели.

Установка Ollama (пошагово)

  1. Скачайте её. и ollama.com/download. На Mac откройте загруженный файл и перетащите Ollama в папку «Программы». В Windows запустите установщик. В Linux официальная команда установки в одну строку:
    curl -fsSL https://ollama.com/install.sh | sh
  2. Запустите её. Откройте приложение или введите ollama в терминале. Начиная с версии 0.40.15 (начало ноября), запуск ollama без аргументов открывает приветственное стартовое окно.
  3. Войдите в аккаунт, если вам нужны облачные модели. При настройке приложение само предложит войти. Локальные модели работают без аккаунта; сведения об использовании облака — на странице ollama.com/settings/usage.
  4. Загрузите модель чтобы проверить, что всё работает:
    ollama pull qwen3.8:27b
    ollama run qwen3.8:27b "Say hello in Swift"

Подключение Ollama к OpenCode

У вас есть три варианта — от самого простого до самого гибкого.

Вариант 1: позвольте OpenCode найти её. OpenCode v2 при запуске проверяет локальный адрес Ollama по умолчанию и добавляет все модели, способные генерировать текст, в /models. Без аккаунта и без настройки. Модели, работающие только с эмбеддингами, пропускаются.

Вариант 2: позвольте Ollama всё настроить.

ollama launch opencode            # configure OpenCode for Ollama and start it
ollama launch opencode --config   # configure only, don't start a session

ollama launch работает с OpenCode v2 начиная с версии Ollama 0.40.12 (27 октября). Она не перезаписывает ваш ~/.config/opencode/opencode.json, поэтому ваши собственные настройки сохраняются. Одна особенность: модели, определённые только в конфигурации OpenCode, не появляются в списке выбора при запуске Ollama.

Вариант 3: укажите OpenCode на сервер Ollama, расположенный в другом месте. Если Ollama работает на Mac mini в шкафу или на сервере, добавьте её как провайдера, указав её адрес. Обратите внимание на /v1 в конце — это важно:

{
  "$schema": "https://opencode.ai/config.json",
  "providers": {
    "ollama": {
      "settings": {
        "baseURL": "https://ollama.example.com/v1",
        "apiKey": "{env:OLLAMA_API_KEY}"   // optional, sent as a bearer token
      }
    }
  }
}

Настройка, которая ломает большинство локальных конфигураций: длина контекста

В FAQ Ollama указано, что контекстное окно по умолчанию составляет 4 096 токенов. Собственное руководство Ollama по OpenCode требует не менее 64K, потому что системный промпт агента, определения инструментов и содержимое файлов заполняют небольшое окно ещё до начала работы. Задайте его на сервере Ollama, а не в OpenCode:

# Если вы запускаете сервер сами:
OLLAMA_CONTEXT_LENGTH=65536 ollama serve

# Если вы пользуетесь приложением для Mac: задайте переменную для launchd, затем закройте и снова откройте Ollama
launchctl setenv OLLAMA_CONTEXT_LENGTH 65536

Затем проверьте, что настройка применилась: ollama ps показывает размер контекста каждой загруженной модели и то, работает ли она на GPU. Большее окно требует больше памяти, поэтому на Mac с 32 ГБ памяти 64K — разумный предел для модели с 27 млрд параметров.

Какая локальная модель подойдёт вашему Mac

Полезное практическое правило из ноябрьского рейтинга BenchLM: модели требуется примерно размер её загружаемого файла плюс 20% на контекст, а Mac может отдать GPU около трёх четвертей своей объединённой памяти. На практике держите размер загружаемого файла в пределах примерно 60% памяти вашего Mac.

Память вашего Mac Модель, которую стоит попробовать первой Скачать Контекст Хорошо подходит для
16 ГБ gemma4:12b или gemma4:e4b 7.7 GB / 6.6 GB 256K / 128K Пояснения, небольшие правки, сообщения коммитов. Слишком мала для долгих сессий агента; для сборки используйте облачные модели
24–32 GB qwen3.8:27b (также как 27b-mlx для Apple silicon) 18 GB 256K Оптимальный локальный вариант для кодинга с агентом
24–32 GB qwen3-coder:30b 19 GB 256K Кодер на смеси экспертов всего с примерно 3 млрд активных параметров, поэтому он быстрый
24–32 GB gpt-oss:20b 14 GB 128K Меньшая модель OpenAI с открытыми весами; оставляет больше всего запаса
64 GB Те же модели с более высокой точностью, например qwen3.8:27b-q8_0 30 GB 256K Лучшие ответы, запас под большой контекст
96–128 GB gpt-oss:120b или devstral-2:123b 65 GB / 75 GB 128K / 256K Качество большой модели без облака

Размеры и контекстные окна по данным библиотеки Ollama на 7 ноября 2026 года. Скорость зависит от пропускной способности памяти вашего чипа не меньше, чем от её объёма. Что касается аппаратной части, смотрите моё руководство по MacBook для локальных LLM.

Ollama Cloud: модели, которые не помещаются в ваш Mac

Самые сильные модели с открытыми весами для кодинга сегодня слишком велики для ноутбука. Ollama Cloud запускает их за вас. В приложении или CLI они несут :cloud тег и ничего не скачивают:

ollama run glm-5.3:cloud
ollama run minimax-m3.1-flash:cloud

Релевантная для кодинга часть облачного каталога на 7 ноября:

Модель Производитель Контекст Рейтинг использования Ollama Примечания
glm-5.3 Z.ai 1M Высоко Флагман Z.ai; силён в долгих агентных задачах
glm-5.3-flash Z.ai 1M Средний Нативно мультимодальная, 18 млрд активных параметров; отличная модель для сборки по умолчанию
kimi-k3.1-pro Moonshot AI 1M Очень высокий Самое новое пополнение (обновлено 4 ноября), мультимодальная, самая мощная модель Moonshot
kimi-k2.7-code Moonshot AI 256K Высоко Настроена под кодинг и экономнее расходует токены размышлений
minimax-m3.1-flash MiniMax 976K Средний Читает изображения; $0,15 за вход и $0,60 за выход на миллион токенов
deepseek-v4.1-flash DeepSeek 1M Средний Создана для скорости и пропускной способности; читает изображения
mistral-large-4 Mistral 1M Высоко Европейская лаборатория, открытые веса
gemma4 Google 256K Низкий Достаточно дешёвая для помощников и субагентов

Этот рейтинг — краткое обозначение Ollama для того, как быстро модель расходует ваши кредиты. Если хотите как следует сравнить крупные модели, мои Kimi K3 vs Fable 5.1 vs GLM-5.3 и GLM-5.3-Flash vs MiniMax M3 сравнения копают глубже.

Локальные и облачные модели Ollama для OpenCode: какая локальная модель для кодинга подойдёт для Mac с 16, 32, 64 или 128 ГБ, и облачные модели Ollama Cloud для более крупных задач — с размерами контекста и оценками использования
Локально — для конфиденциальности и мелких задач, облако — для тяжёлой работы. Тот же движок, тот же API, разница лишь в имени модели.

Схема маршрутизации, которую я бы скопировал

Не обязательно выбирать одну модель. Для каждого вида работы берите самую дешёвую модель, которая справляется с ней хорошо:

  • Планирование (самые дорогие ошибки случаются именно здесь): ваша самая сильная модель.
  • Сборка: быстрая и способная модель, например GLM-5.3-Flash или MiniMax M3.1 Flash.
  • Поиск по кодовой базе, чтение документации, написание тестов и сообщений коммитов: локальная модель. Она ничего не стоит, и ваш код остаётся на месте.

В части 4 показано, как именно это настроить в конфигурации OpenCode.

Режим «только локально» для чувствительных проектов

Если проект не должен ни при каких обстоятельствах обращаться к облачной модели, сделайте это настройкой, а не обещанием. Ollama умеет полностью отключать свои облачные функции (добавьте "disable_ollama_cloud": true до ~/.ollama/server.json, или задайте OLLAMA_NO_CLOUD=1, затем перезапустите его), а бесплатные облачные модели OpenCode можно скрыть с помощью OPENCODE_DISABLE_FREE_MODELS=1. Затем подключайте в этом проекте только локальных провайдеров.

Честные оговорки об Ollama

  • Локальные модели медленнее и слабее в длительном многошаговом использовании инструментов, чем крупные облачные модели. Они хороши на ограниченных задачах.
  • Облако — всё равно чужой компьютер. Политика Ollama об отсутствии логирования — это хорошо, но ваш код всё равно покидает вашу машину, в основном в сторону США.
  • Кредиты заканчиваются. $60 кредита Pro — это надолго на GLM-5.3-Flash и куда меньше на модели с рейтингом “extra high”.
  • Медленный ответ — не всегда вина модели. Каждый облачный запрос сначала совершает круговой путь через ваш Wi-Fi, ваш роутер и интернет в целом. Если ответы кажутся медленными, проверьте соединение, прежде чем винить модель: моё собственное приложение PingAtlas измеряет время кругового обращения с вашего iPhone, iPad или Mac до городов и до сервисов вроде GitHub, а остальную часть пути я объяснил в что происходит внутри вашего роутера.

Часть 4 — Как пользоваться OpenCode: установка и подключение моделей, шаг за шагом

Вот такую настройку я бы посоветовал другу. Она занимает около двадцати минут, большая часть — загрузки.

Шаг 0 — что нужно заранее

  • Mac с чипом Apple silicon, если хотите собирать приложения для iPhone нативно. Xcode 27.1 (выпущен 15 октября, со Swift 6.4 и SDK iOS 27.1) требует macOS Tahoe 26.6 или новее. Если собираете с Expo, его облачный сервис может собирать приложения для iOS из Windows или Linux, но iPhone для тестирования вам всё равно понадобится.
  • Xcode из Mac App Store, запущенный один раз, чтобы он установил свои компоненты.
  • Git. Ваша настоящая кнопка отмены.
  • Node.js, только если будете использовать Expo: SDK 58 требует Node 22.13 или новее, 24.3 или новее либо 26 и новее (нечётные выпуски вроде 23 и 25 не поддерживаются).
  • План для кодинга из части 2 или Ollama из части 3.

Шаг 1 — Установите OpenCode

На macOS или Linux:

curl -fsSL https://opencode.ai/v2/install | bash

Предпочитаете приложение? Скачайте десктопную версию для macOS, Windows или Linux с opencode.ai/download. Терминальное и десктопное приложения используют один и тот же фоновый сервис и сессии. В Windows используйте десктопное приложение или отдельный zip; менеджеры пакетов Windows для v2 не поддерживаются.

Две ловушки, о которых стоит знать:

  • Старые руководства используют старый установщик. opencode.ai/install (без /v2/) до сих пор встречается во множестве руководств, включая некоторые официальные документы партнёров. Используйте /v2/install адрес выше.
  • пользователи mise нужна mise 2026.10.9 или новее, иначе они получат OpenCode 1.

Шаг 2 — Подключите модели

Запустите OpenCode в папке проекта и выполните /connect:

mkdir -p ~/code/my-first-app && cd ~/code/my-first-app
git init
opencode

Затем, в зависимости от того, за что вы платите:

У вас есть В /connect, выберите Затем
OpenCode Go OpenCode Go Вставьте API-ключ из OpenCode Console
Ollama Ничего; локальные модели появляются сами Или выполните ollama launch opencode
ChatGPT Plus или Pro OpenAI → Войти через ChatGPT Войдите в браузере
GitHub Copilot GitHub Copilot Завершите вход на устройстве
Claude Pro или Max Claude Agent (не “Anthropic” — он для API-ключей) Запуск claude auth login сначала в терминале; прочитайте оговорку из части 2
GLM Coding Plan Провайдер Z.AI Coding Plan Вставьте ключ Coding Plan, а не обычный API-ключ
API-ключ Название провайдера Вставьте ключ

Шаг 3 — Выберите модели

Запуск /models и выберите. Модели OpenCode Go называются opencode-go/<model-id>; локальные модели Ollama появляются у провайдера Ollama. Скопируйте точные ID из /models в свой конфиг, потому что названия и теги меняются.

Шаг 4 — Добавьте конфигурацию проекта

Значения по умолчанию работают, но проект приложения заслуживает конфигурационного файла, который делает три вещи: направляет каждого агента к нужной модели, держит агента подальше от всего необратимого и подключает ваши MCP-серверы. Сохраните это как opencode.jsonc в корне проекта и подставьте ID моделей /models показывает вам:

{
  "$schema": "https://opencode.ai/config.json",

  // The model new sessions start with
  "model": "opencode-go/glm-5.3-flash",

  "agents": {
    // Planning: your strongest model, because a bad plan costs the most later
    "plan":    { "model": "opencode-go/glm-5.3" },
    // Building: fast and capable
    "build":   { "model": "opencode-go/glm-5.3-flash" },
    // Read-only exploring: local, free, private
    "explore": { "model": "ollama/qwen3.8:27b" }
  },

  // Rules are checked in order and the LAST match wins
  "permissions": [
    { "action": "shell", "resource": "*",                     "effect": "ask"   },
    { "action": "shell", "resource": "git status *",          "effect": "allow" },
    { "action": "shell", "resource": "git diff *",            "effect": "allow" },
    { "action": "shell", "resource": "git log *",             "effect": "allow" },
    { "action": "shell", "resource": "xcodebuild -list *",    "effect": "allow" },
    { "action": "shell", "resource": "asc * list *",          "effect": "allow" },
    { "action": "shell", "resource": "asc review status *",   "effect": "allow" },
    { "action": "shell", "resource": "git push *",            "effect": "deny"  },
    { "action": "shell", "resource": "asc publish appstore *","effect": "deny"  },
    { "action": "shell", "resource": "* --submit *",          "effect": "deny"  },
    { "action": "shell", "resource": "* --confirm *",         "effect": "deny"  }
  ],

  "mcp": {
    "servers": {
      // Apple's bridge to the Xcode project you have open (Part 6)
      "xcode": { "type": "local", "command": ["xcrun", "mcpbridge"] },
      // Headless builds, simulator control and screenshots (Part 6)
      "XcodeBuildMCP": { "type": "local", "command": ["npx", "-y", "xcodebuildmcp@latest", "mcp"] },
      // Up-to-date library documentation
      "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp" }
    }
  }
}

Что вы вставляете, простыми словами:

  • Каждая команда оболочки сначала спрашивает разрешение, кроме нескольких команд только для чтения. Только для чтения asc запросы (всё, что выводит списки, плюс статус проверки) разрешены, чтобы агент мог проверять сборки и ход проверки, не беспокоя вас.
  • Несколько вещей заблокированы полностью: отправка кода, публикация или отправка приложения на проверку и подтверждение разрушительных действий в App Store Connect. Это вы делаете сами, намеренно. Загрузка сборки в TestFlight остаётся разрешённой (после запроса), потому что она ничего не отправляет на проверку.
  • Настройки OpenCode по умолчанию уже запрашивают разрешение перед чтением .env файлов. Оставьте это включённым.
  • Права — это ограждения, а не песочница. Настойчивая модель найдёт другой способ что-то сделать. Держите производственные учётные данные, ключи подписи и Admin-ключ App Store Connect подальше от машины, где агенты работают без присмотра.

Шаг 5 — Напишите AGENTS.md до первого кода

OpenCode читает AGENTS.md в корне проекта в начале каждой сессии, плюс личный файл в ~/.config/opencode/AGENTS.md если вы его создадите. Эта /init команда может создать черновик, просмотрев ваш репозиторий. Это самая эффективная привычка в разработке с помощью ИИ, и обо всей системе я написал в своей руководство по вайб-кодингу. Для приложения для iPhone в нём должны быть правила продукта, а также команды:

# Заметки для агентов-кодеров

## Что это за приложение
Одно предложение. Если изменение ему не служит, значит, ему там не место.

## Незыблемые правила
- Работает офлайн. Сетевые функции деградируют изящно.
- Никакой аналитики, рекламы и трекинговых SDK. Спрашивайте перед добавлением ЛЮБОЙ зависимости.
- Никаких секретов в бандле приложения. Ключи, которые стоят денег, живут на сервере.
- Никаких скрытых, спящих или отладочных функций в релизных сборках
  (правило App Review 2.5.19). Отладочные меню вырезаются из Release.
- Никогда не отправляйте личные данные в сторонний ИИ-сервис без
  явного экрана согласия в приложении (правило 5.1.2(i)).
- Доступность: Dynamic Type, метки VoiceOver, цели касания 44 x 44 pt,
  светлая и тёмная тема на каждом экране.
- Каждая строка, видимая пользователю, локализована, включая виджеты,
  уведомления и запросы разрешений.

## Команды
- Сборка и запуск: используйте инструменты XcodeBuildMCP (build_run_sim), схема "MyApp"
- Тесты: test_sim
- Никогда не запускайте asc publish или что-либо с --submit.

## Определение готовности
- Собирается без предупреждений, тесты проходят
- Проверено скриншотом + snapshot_ui на симуляторе
- Работает в авиарежиме, тёмной теме и при максимальном размере текста

Шаг 6 — Ваша первая настоящая сессия

  1. Начните в режиме плана. Переключитесь на план агента (он не может редактировать файлы вашего проекта) и попросите его поспорить с вашим брифом: “Прочитайте AGENTS.md и BRIEF.md. Перечислите пользовательские сценарии, крайние случаи, о которых я не подумал, и экраны, которых мне не хватает. Затем скажите, что вырезать.”
  2. Сохраните план как дорожную карту. Попросите его записать ROADMAP.md в виде чек-листа из небольших фрагментов, работающих от начала до конца.
  3. Собирайте по одному фрагменту за раз с build агентом. Один экран, одна функция, работающая от начала до конца.
  4. Проверьте дифф, запустите его, сделайте коммит. Каждый фрагмент заканчивается коммитом. Если шаг пошёл не так, /undo откатывает последний шаг агента из снимков OpenCode; Git — более надёжная страховка.
  5. Начните новую сессию для следующего фрагмента. Чистая сессия, которая заново читает AGENTS.md и ROADMAP.md, обычно умнее длинной, полной устаревших допущений.

Часть 5 — Агенты, команды, разрешения и режим целей: как сделать OpenCode своим

Когда основы заработают, четыре функции превращают OpenCode из чата с терминалом в мастерскую, подогнанную под ваш проект.

Встроенные агенты

Агент Тип Что оно делает
build Основной По умолчанию. Редактирует файлы, запускает команды, выполняет работу
план Основной Исследует и планирует, не редактируя файлы проекта (может создавать собственные файлы плана)
general Субагент Исследования и многошаговые задачи; не может запускать других субагентов
исследовать Субагент Ищет и читает код или веб-страницы; ничего не может редактировать

Основные агенты — те, с которыми вы общаетесь. Субагентов запускает основной агент для конкретной задачи, поэтому контекст основной сессии остаётся чистым.

Напишите своего субагента: скептик из App Review

Пользовательские агенты — это файлы Markdown в .opencode/agents/ (или ~/.config/opencode/agents/ для каждого проекта). Front matter настраивает агента, а тело файла становится его инструкциями. Этот агент проверяет ваше приложение так, как это сделает App Review, и ничего не может изменить во время проверки:

---
description: Проверяет приложение и его метаданные на соответствие правилам App Review от Apple перед отправкой
mode: subagent
model: opencode-go/glm-5.3
permissions:
  - action: edit
    resource: "*"
    effect: deny
  - action: shell
    resource: "*"
    effect: deny
---

Вы — скептичный специалист по App Review. Проверьте текущий код и файлы в metadata/ и перечислите проблемы, начиная с самых серьёзных, с указанием файла и строки:

- Падения, текст-заглушки, нерабочие ссылки, отсутствующий демо-аккаунт (2.1)
- Всё, что похоже на копию приложения из переполненной категории (4.3(b))
- Скрытые, спящие или недокументированные функции, отладочные меню, флаги функций (2.5.19)
- Данные, которые покидают устройство и отсутствуют в политике конфиденциальности или в ярлыке конфиденциальности
- Персональные данные, отправляемые в любой ИИ-сервис без явного согласия (5.1.2(i))
- Создание аккаунта без удаления аккаунта внутри приложения (5.1.1(v))
- Скриншоты или описания, обещающие функции, которых нет в сборке

Ничего не исправляйте. Только отчёт.

Сохраните его как .opencode/agents/appstore-reviewer.md, затем спросите: “Используйте субагента appstore-reviewer, чтобы проверить всё с момента последнего релизного тега.”

Пользовательские команды для повторяющихся задач

Команды — это шаблоны промптов, которые вы запускаете через слэш. Положите их в .opencode/commands/; $ARGUMENTS заменяется на то, что вы введёте после команды, а ` !command ` вставляет вывод шелл-команды перед отправкой промпта. Эта команда составляет примечания к выпуску в App Store:

---
description: Составляет примечания «What's New» для App Store по коммитам с момента последнего тега
agent: build
---

Вот коммиты с момента последнего релиза:

!`git log $(git describe --tags --abbrev=0)..HEAD --oneline`

Напишите примечания «What's New» для версии $ARGUMENTS простым, дружелюбным английским языком, не более 400 символов, только изменения, видимые пользователю. Сохраните их в metadata/en-US/release_notes.txt и покажите мне текст.

Сохраните его как .opencode/commands/whats-new.md и запустите её командой /whats-new 1.2.0. Одно предупреждение из документации OpenCode стоит повторить: эти ! блоки выполняются вне системы разрешений агента, поэтому вставляйте в них только команды, которым доверяете.

Сборник рецептов разрешений для проектов приложений

Конфигурация из части 4 — хорошее начало. Ещё несколько правил, которые стоит знать:

  • Правила для отдельных агентов находятся в разделе agents.<id>.permissions и добавляются после глобальных, поэтому вы можете, например, разрешить только build агенту запускать xcodebuild.
  • Инструменты MCP — это тоже действия, с именем <server>_<tool>. Правило вида { "action": "XcodeBuildMCP_*", "resource": "*", "effect": "ask" } заставляет каждый вызов XcodeBuildMCP сначала спрашивать разрешение.
  • Навыки можно ограничивать с навык action: allow свободно объявляет и загружает навык, «спрашивать» объявляет его, но спрашивает перед загрузкой, deny полностью скрывает его.
  • Когда проверяется несколько ресурсов сразу, любой deny побеждает, затем любой «спрашивать».

Режим цели, рабочие деревья и расписания

Три новые функции меняют ощущение длинных задач:

  • Режим целей (2.2.1): /goal Сделайте так, чтобы каждый экран прошёл аудит VoiceOver, и исправьте то, что не проходит держит сессию в работе над целью, пока её не проверят, с командами пауза, продолжить и очистить. Идеально для больших скучных задач: проверок доступности, локализации, покрытия тестами.
  • Рабочие деревья: начать сессию в отдельном рабочем дереве Git с экрана новой сессии (или ⌘⌥O в десктопном приложении), чтобы эксперимент не затронул вашу основную ветку. Скриптовые запуски принимают opencode run --worktree=<name> начиная с 2.2.6. Выбросьте рабочее дерево, если эксперимент провалился.
  • Запланированные промпты (по желанию, экспериментально): /schedule запускает промпт по расписанию, пока opencode serve работает, например ночной “прогон тестов с кратким отчётом о сбоях”.

Часть 6 — Серверы MCP: даём агенту руки

Сам по себе агент для кодинга умеет читать файлы и выполнять команды оболочки. MCP, Model Context Protocol, — стандартный способ дать ему больше: запущенный проект Xcode, симулятор, по которому он может нажимать и делать скриншоты, ваши отчёты о сбоях, актуальную документацию, ваш сервис сборки. Каждый сервер MCP предоставляет набор инструментов, и агент сам решает, когда их вызывать.

За это есть цена, и документация OpenCode говорит о ней прямо: “Инструменты MCP расходуют контекст модели, поэтому добавляйте только те серверы, которые вам нужны.” Каждый подключённый сервер добавляет описания инструментов в каждый запрос. Десять серверов, которыми вы почти не пользуетесь, делают каждый ответ медленнее и менее точным.

Короткий список для разработчика приложений

Сервер Что он даёт агенту Как добавить в OpenCode Стоит знать
Xcode (Apple) Ваш открытый проект Xcode: сборка, тестирование и другое — через сам Xcode opencode mcp add xcode -- xcrun mcpbridge В Xcode → Настройки → Intelligence установите Разрешить внешним агентам использовать инструменты Xcode до Всегда или Пока Xcode открыт. Откройте проект в Xcode перед тем, как дать промпт; Xcode показывает, когда агент подключается
XcodeBuildMCP Сборки без интерфейса, запуск на симуляторе и устройстве, скриншоты, нажатия и свайпы, снимки состояния доступности, тесты, отладка LLDB opencode mcp add XcodeBuildMCP -- npx -y xcodebuildmcp@latest mcp Открытый исходный код (MIT), проект поддерживает Sentry с февраля, когда она его приобрела. Требуются macOS 14.5+, Xcode 16+ и Node 18+. По умолчанию включены только инструменты симулятора
Expo Сборки, рабочие процессы и отправка через EAS, документация Expo, облачные симуляторы, данные о сбоях и отзывах из TestFlight и магазинов opencode mcp add expo --url https://mcp.expo.dev/mcp, затем opencode mcp auth expo Нужны аккаунт Expo и последняя версия SDK. Часть инструментов требует платного плана Expo. Локальным инструментам симулятора нужны npx expo install expo-mcp --dev и SDK 54+
Context7 Актуальная документация по библиотекам и фреймворкам для конкретных версий opencode mcp add context7 --url https://mcp.context7.com/mcp Не даёт модели выдумывать API, которые изменились в прошлом месяце
Sentry Ваши реальные сбои и ошибки opencode mcp add sentry --url https://mcp.sentry.dev/mcp, затем opencode mcp auth sentry Вход через OAuth
Playwright Настоящий браузер, которым агент может управлять opencode mcp add playwright -- npx @playwright/mcp@latest Для веб-версии вашего приложения и лендинга
Firebase Ваш проект Firebase, правила безопасности и конфигурация opencode mcp add firebase -- npx -y firebase-tools@latest mcp Спрашивает перед любым изменением в вашем проекте

Проверьте, что подключено, командой opencode mcp list, а включать и выключать серверы на время сессии можно командой /mcps.

Если вы рисуете в Figma, её MCP-сервер тоже может передавать агенту фреймы и переменные. Об особенности OpenCode (удалённый сервер против настольного) я рассказал в руководстве как собрать приложение с нуля с помощью ИИ.

MCP-мост Xcode против XcodeBuildMCP

Они пересекаются и хорошо работают вместе:

  • Собственный сервер Xcode (xcrun mcpbridge) работает через открытое приложение Xcode. Он от Apple, понимает ваш проект так же, как Xcode, и требует запущенного Xcode.
  • XcodeBuildMCP оборачивает консольные инструменты Apple (xcodebuild, simctl, devicectl), поэтому работает без графического интерфейса. Его главная сила — цикл проверки: build_run_sim чтобы собрать и запустить, screenshot чтобы посмотреть, snapshot_ui чтобы прочитать дерево доступности, tap и type_text чтобы поработать с приложением, и test_sim чтобы запустить тесты. Выполните xcodebuildmcp init один раз в вашем проекте, чтобы установить два сопутствующих навыка.

В файле конфигурации

Те же серверы можно прописать в opencode.jsonc (полный пример есть в части 4) — для команды этот вариант лучше, потому что настройка путешествует вместе с репозиторием:

"mcp": {
  "servers": {
    "expo":   { "type": "remote", "url": "https://mcp.expo.dev/mcp" },
    "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp" },
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": { "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" }
    },
    "playwright": { "type": "local", "command": ["npx", "@playwright/mcp@latest"], "disabled": true }
  }
}

Две детали из документации OpenCode по MCP: секреты передаются как {env:NAME} (простой $NAME не раскрывается), а "disabled": true оставляет сервер настроенным, но не подключает его.

MCP-серверы для разработки iOS-приложений с OpenCode: MCP-мост Xcode, XcodeBuildMCP, Expo, Context7, Sentry, Playwright и Firebase вокруг OpenCode, а также инструменты командной строки gh, asc и eas как более лёгкая альтернатива
Семь серверов, которые заслуженно занимают место в проекте приложения, и три инструмента командной строки, которые часто справляются с задачей при меньшем расходе контекста.

Когда инструмент командной строки лучше MCP-сервера

Моё правило: если есть хороший инструмент командной строки, сначала попробуйте его с навыком, а уже потом добавляйте сервер. Агент и так умеет выполнять команды, CLI не расходует контекст, пока его не используют, а его вывод можно отфильтровать до того, как он попадёт в модель. Для работы над приложением три CLI закрывают многое:

  • gh для GitHub: задачи, пул-реквесты, релизы.
  • asc для App Store Connect: сборки, TestFlight, метаданные, скриншоты, статус проверки (часть 9).
  • eas для сервиса сборки и отправки Expo.

Безопасность MCP в четырёх правилах

  1. Ставьте серверы от их создателей или из проектов, которые вы можете прочитать. Сервер — это код, который выполняется на вашей машине с вашими правами.
  2. Считайте вывод инструментов недоверенным. Веб-страница, комментарий в issue или отчёт о падении могут содержать инструкции, адресованные вашему агенту. Держите рискованные действия на «спрашивать».
  3. Ограничивайте инструменты по имени. Каждый инструмент MCP — это действие разрешения с именем <server>_<tool>, так что вы можете разрешить только читающие и требовать подтверждения для остальных.
  4. Удаляйте то, чем не пользуетесь. Он расходует контекст, и это на одну вещь меньше, которая может сломаться.

Часть 7 — Навыки: напишите свой сценарий один раз

AGENTS.md рассказывает агенту, что представляет собой ваш проект. Навыки учат его тому, как вы выполняете конкретные задачи: выпускаете сборку, пишете миграцию, готовите скриншоты, проверяете конфиденциальность. Навык — это папка, содержащая SKILL.md файл с кратким описанием сверху и инструкциями ниже, а также любые нужные ему скрипты и справочные файлы. Формат — открытый стандарт, общий для OpenCode, Claude Code, Codex и других, поэтому навык, написанный для одного агента, обычно работает и в остальных.

Как OpenCode использует навык

  1. На каждом шаге, OpenCode показывает модели список навыков, которые она может использовать: только ID, имя и описание каждого навыка. Сами инструкции не загружаются, поэтому сто навыков почти ничего не стоят.
  2. Когда задача совпадает, модель вызывает навык инструмент с ID навыка, и OpenCode проверяет ваши разрешения.
  3. OpenCode добавляет инструкции в разговор вместе с путём к папке навыка и списком до десяти его вспомогательных файлов.
  4. Вспомогательные файлы загружаются только тогда, когда инструкции их запрашивают. Длинный чек-лист или скрипт лежит на диске, пока не понадобится.

Вы также можете загрузить навык сами, упомянув его в промпте: @app-store-release.

Где ищет OpenCode

Охват Папка
Ваш проект .opencode/skills/
Ваш проект (общий для других агентов) .claude/skills/ и .agents/skills/
Каждый проект на вашей машине ~/.config/opencode/skills/
Каждый проект (общий) ~/.claude/skills/ и ~/.agents/skills/
В любом другом месте Пути или HTTP-каталоги, перечисленные в навыки массиве в opencode.jsonc

ID навыка берётся из имени его папки, а не из назвать в его front matter, и он чувствителен к регистру: .opencode/skills/app-store-release/SKILL.md имеет ID app-store-release. Если один и тот же ID задан в двух источниках, побеждает более поздний в этом порядке: встроенный, .claude/skills, .agents/skills, ваша глобальная папка, папка вашего проекта .opencode/skills, затем явные записи в конфиге. Навык без описание вообще не показывается модели.

Напишите свой первый навык: чек-лист релиза в App Store

Создайте .opencode/skills/app-store-release/SKILL.md:

---
name: App Store release
description: Подготовить релиз iOS. Повышает версию и номер сборки, прогоняет чек-лист релиза, архивирует, загружает в TestFlight с помощью asc и готовит заметки «Что нового». Используйте, когда просят «выпустить», «зарелизить» или «отправить в TestFlight».
---

# App Store release

1. Проверьте `git status`. Если рабочее дерево не чистое, остановитесь и скажите об этом.
2. Повысьте маркетинговую версию и номер сборки (если версия не указана, спросите, какая нужна).
3. Пройдите по references/release-checklist.md. Каждый пункт должен пройти.
4. Архивируйте и экспортируйте IPA с помощью scripts/archive.sh.
5. Загрузите: `asc builds upload --app "$ASC_APP_ID" --ipa build/MyApp.ipa`
6. Подготовьте заметки «Что нового» из коммитов после последнего тега и сохраните их
   в metadata/en-US/release_notes.txt.
7. НИКОГДА не отправляйте на проверку. Сообщите, что сборка загружена, и остановитесь.

Положите чек-лист в references/release-checklist.md а скрипт архивации — в scripts/archive.sh рядом с ним. В следующий раз, когда вы скажете “выпусти 1.2.0 в TestFlight”, агент найдёт навык по его описанию и выполнит ваши шаги, а не станет импровизировать.

Как работают навыки агентов OpenCode: папка навыка с SKILL.md, справочными материалами и скриптами; OpenCode показывает список описаний навыков, модель загружает нужный с помощью инструмента skill, а вспомогательные файлы читаются только при необходимости
Навык занимает одну строку контекста, пока не понадобится. Поэтому можно установить десятки.

Навыки, которые стоит установить для работы над приложением

Набор навыков Что в него входит Установите
Навыки Expo (официальные) 23 навыка: 16 для Expo SDK (Router, нативный UI, @expo/ui, дизайн-системы, обновления, нативные модули и другое) и 7 для сервисов Expo, включая eas-app-stores для сборки и отправки в TestFlight, App Store и Google Play npx skills add expo/skills
Навыки для CLI App Store Connect Более двадцати asc навыков: процесс релиза, оркестрация TestFlight, синхронизация метаданных с проверкой лимитов символов, перевод листинга, конвейеры скриншотов, настройка подписи, проверка готовности к отправке, триаж падений, ASO-аудиты asc install-skills, или npx skills add rorkai/app-store-connect-cli-skills
Навыки XcodeBuildMCP Два навыка, которые знакомят агента с инструментами и CLI XcodeBuildMCP xcodebuildmcp init
skills.sh Открытый каталог навыков сообщества от Vercel; он указывает OpenCode среди поддерживаемых агентов npx skills add <owner/repo>

Если OpenCode не показывает установленный навык, сверьте, куда его положил установщик, с папками выше — или скопируйте папку навыка в .opencode/skills/.

Безопасность навыков

Навык — это инструкции плюс, часто, скрипты, которые агент будет выполнять. Читайте сторонний навык перед установкой так же, как читали бы shell-скрипт из интернета. Предпочитайте навыки от тех, кто делает сам инструмент (Expo — для Expo, asc сопровождающие — для asc), держите неизвестные навыки под контролем «спрашивать» с помощью правила разрешений, и помните, что deny полностью скрывает навык от модели.


Часть 8 — Сборка приложения: от идеи до сборки, которой можно доверять

Инструменты готовы. Теперь часть, от которой зависит, скачает ли кто-нибудь результат.

Выберите идею, которую пропустит App Review

ИИ сделал создание приложений дешёвым, и Apple это заметила. 9 июня она переписала правило 4.3(b), своё правило о спаме: приложения, которые по сути повторяют то, чего в магазине и так полно, теперь отклоняются, и Apple называет приложения для знакомств, фонарик, обои, таймеры и гадания категориями, где нужен осмысленно другой или лучший опыт. Приложения-однодневки, сделанные без усилий, могут быть удалены, существующие приложения в этих категориях могут быть сняты, если их не улучшают или они не привлекают пользователей, а повторные отправки такого рода могут стоить вам членства разработчика.

Поэтому перед первым промптом — один тест: можете ли вы одним предложением сказать, что делает ваше приложение такого, чего не делают топовые результаты по его основному поисковому запросу? Если вы не можете, агент построит всё красиво, а App Review вернёт это назад.

Маленькое и конкретное побеждает большое и общее. Мои два приложения намеренно узкие:

  • Stash запоминает, куда вы положили вещи: сфотографируйте место, выберите комнату, сохраните, затем ищите по названию, комнате или расшифрованной голосовой заметке.
  • PingAtlas измеряет время кругового обмена пакетами в сети с вашего iPhone, iPad или Mac до 202 городов, 278 публичных точек, 109 игр и 32 онлайн-сервисов — без учётной записи и без удалённого сервиса измерений.

По одной задаче на каждое. Именно поэтому их может создать один человек с агентом и объяснить одной фразой на странице App Store.

Выберите свой стек

SwiftUI + Xcode 27.1 Expo SDK 58 (React Native 0.88)
Работает на iPhone, iPad, Mac, Apple Watch, Vision Pro iPhone, iPad, Android и веб из одной кодовой базы
Язык Swift 6.4 TypeScript
Нужен Mac? Да Не для сборки или отправки (этим занимается облако Expo); да — для локальных инструментов симулятора iOS
Инструменты агента MCP-мост Xcode, XcodeBuildMCP, OpenCode внутри Xcode через ACP MCP-сервер Expo, 23 официальных навыка, экспериментальный @expo/agent-cli и машиночитаемый expo command:ps вывод для агентов
Новое этой осенью iOS 27.1 SDK, симулятор iPhone Duo (с некоторыми ограничениями для расширений) Собран на iOS 27 SDK; приложения переходят на жизненный цикл сцен UIKit, готовы к iPhone Duo; поддержка App Intents в альфе; macOS не поддерживается в SDK 58
Кому подходит Приложения только для Apple, которым нужны новейшие возможности платформы Один человек выпускает для iPhone и Android с веб-версией

Если вы любите сначала выпускать веб-версию (я так и делаю), веб-вывод Expo позволяет показать людям работающее демо ещё до того, как появится версия в App Store. Сайт Stash делает нечто похожее с демо в браузере собранным вокруг образцового дома: люди могут попробовать идею, прежде чем что-то устанавливать.

Цикл сборки, который работает

Агент пишет быстро. Доверие к результату обеспечивает цикл вокруг него:

  1. Бриф. Одностраничный BRIEF.md: обещание одной фразой, три пользовательские истории, список экранов.
  2. План. Этот план агент превращает его в ROADMAP.md: небольшие вертикальные срезы, каждый — одна возможность, работающая от начала до конца.
  3. Соберите один срез. Этот build агент реализует его и пишет тесты.
  4. Проверяйте как пользователь. С XcodeBuildMCP агент может собрать и запустить приложение в симуляторе, сделать скриншот, прочитать дерево доступности с помощью snapshot_ui, пройти по сценарию и запустить тесты. С Expo локальные инструменты MCP делают то же самое для симулятора. Попросите его сравнить увиденное с тем, что вы просили.
  5. Проверяйте как App Review. Запустите appstore-reviewer субагента из части 5.
  6. Прочитайте diff сами. Каждую строку, которая попадёт в релиз.
  7. Закоммитьте, отметьте пункт, начните новую сессию.

Для больших механических проходов (добавление меток доступности повсюду, локализация каждой строки, повышение покрытия тестами) используйте режим цели: /goal Локализуйте каждую строку, видимую пользователю, на немецкий, включая виджеты, уведомления и запросы разрешений.

Три шаблона промптов, которые стоит адаптировать:

Срез: Реализуйте срез 4 из ROADMAP.md (поиск). Сначала прочитайте AGENTS.md. Сначала напишите модульные тесты, затем код. Соберите и запустите в симуляторе, сделайте скриншот экрана результатов и сверьте его с брифом. Покажите мне diff и перечислите все допущения, которые вы сделали.

Ошибка: На iPhone при максимальном размере Dynamic Type клавиатура закрывает кнопку «Сохранить» на экране добавления. Воспроизведите это в симуляторе, сделайте скриншот, объясните причину в двух предложениях, исправьте её и проверьте все остальные формы на ту же проблему.

Проверка перед коммитом: Проверьте всё с момента последнего коммита глазами скептичного старшего iOS-ревьюера: падения, потеря данных, утечки приватных данных, отсутствующие метки доступности, жёстко заданные строки и цвета, всё, что ломает работу офлайн. Нумерованный список, самое серьёзное в начале. Пока ничего не исправляйте.

Уроки двух небольших приложений

Stash и локализация. Stash 1.1.0 (28 октября) добавила к английскому десять языков: испанский, французский, немецкий, итальянский, бразильский португальский, нидерландский, польский, японский, корейский и упрощённый китайский. Приложение подхватывает язык с устройства и позволяет сменить его в разделе «Настройки → Язык», а в примечаниях к выпуску отмечено, что виджеты, напоминания и системные запросы разрешений тоже переведены. Последняя деталь и есть урок: локализация — идеальная работа для агента, но строки, которые агенты забывают, живут вне основных экранов — в виджетах, уведомлениях, строках назначения разрешений и форматировании дат. Назовите их в AGENTS.md, и они будут сделаны.

PingAtlas и честные обещания. Описание PingAtlas в App Store даёт конкретные обещания: отсутствующий ответ показывается как “Нет ответа”, а не как 0 мс; GPS и разрешения на геолокацию нет; рекламы, аналитики и аккаунта нет; результаты остаются на устройстве, если вы их не экспортируете; а проверка сайтов использует только HEAD-запросы. Таким обещаниям место в AGENTS.md как непреложным правилам, потому что они же определяют, что говорит ваша метка конфиденциальности. Метка PingAtlas гласит “Данные не собираются”, и это верно ровно до тех пор, пока код с этим согласен. Субагент-ревьюер нужен, чтобы заметить день, когда это перестанет быть так.

Узкий охват — это преимущество. PingAtlas весит 1,9 МБ. Stash — с фотографиями, голосовыми заметками, синхронизацией и виджетами — около 65 МБ. Больше функций — больше тестировать, больше объяснять в политике конфиденциальности и больше поводов для вопросов у App Review. Начинайте с самой маленькой версии, которая выполняет обещание.

Два приложения, созданные одним разработчиком с помощью ИИ-агентов для кодинга: Stash, который запоминает, куда вы положили вещи, и PingAtlas, который измеряет сетевую задержку с вашего собственного устройства, — с фактами об их публикации в App Store
Два небольших приложения, у каждого одна задача. Чем уже обещание, тем проще агенту его построить, а App Review — одобрить.

Доступность с первого дня

Apple Accessibility Nutrition Labels позволяют указать на странице в App Store поддержку девяти функций: VoiceOver, Voice Control, Larger Text, Dark Interface, Differentiate Without Color Alone, Sufficient Contrast, Reduced Motion, Captions и Audio Descriptions. Сегодня они добровольны, но Apple говорит, что со временем их придётся заполнять, чтобы отправлять новые приложения и обновления. Указывать функцию можно, только если с ней люди могут выполнить все обычные задачи приложения, включая первый запуск, вход, покупки и настройки.

Ни в одном из моих собственных листингов пока не заявлено ни одной — и это ровно та брешь, ради которой написан этот гайд. Агент может выполнить большую часть аудита: XcodeBuildMCP snapshot_ui читает дерево доступности, поэтому /goal Сделайте каждый экран полностью доступным для работы с VoiceOver и при максимальном размере текста и перечислите всё, что не сможете исправить — реальная задача на полдня.


Часть 9 — Публикация в App Store: пусть OpenCode сделает документы, а кнопку «Отправить» нажмите сами

Сборка — это интересная часть. Публикация — отдельный проект, и именно на ней разработчики-новички теряют неделю. Хорошая новость 2026 года: почти всё это теперь можно автоматизировать скриптами, а значит, агент может печатать, пока вы принимаете решения.

Что изменилось в Apple в 2026 году

Когда Что изменилось Что делать
31 янв. 2026 Новые вопросы о возрастном рейтинге стали обязательными для обновлений Ответьте на них для каждого приложения перед отправкой
28 апр. 2026 Загрузки должны быть собраны с помощью Xcode 26 или новее и SDK 26 Используйте Xcode 26 или 27
9 июн. 2026 Правило 4.3(b) переписаны: копии и приложения низкого качества отклоняются или удаляются Выделитесь (часть 8)
9 сент. 2026 Загрузки должны быть собраны под iOS 13 или новее Ничего, для любого нового приложения
15 окт. 2026 Xcode 27.1 (Swift 6.4, iOS 27.1 SDK; требуется macOS Tahoe 26.6+) и Expo SDK 58 Обновите набор инструментов
16 окт. 2026 Новое правило 2.5.19 запрещает скрытые, неактивные или недокументированные функции; более строгие правила для приложений, скрывающих своё назначение во время проверки Убирайте меню отладки и флаги функций из релизных сборок при компиляции
Действует Правило 5.1.2(i): сообщайте людям и получайте их разрешение, прежде чем передавать персональные данные стороннему ИИ (добавлено в ноябре 2025 года) Добавьте экран согласия, если приложение обращается к сервису ИИ
Сейчас Скриншоты: один набор для iPhone с Dynamic Island (средний дисплей) обязателен, плюс 13-дюймовый iPad, если приложение работает на iPad Спланируйте размеры скриншотов (часть 10)
апрель 2027 iPhone Duo скриншоты, требуемые для приложений, собранных с iOS 27.1 SDK или новее Начните проектировать под второй экран уже сейчас
Пока это добровольно Accessibility Nutrition Labels Указывайте, что вы действительно поддерживаете

Новый пункт 2.5.19 — тот, что бьёт по приложениям, собранным с ИИ. Агенты любят полезные добавки: скрытый экран отладки, флаг функции, оставленный выключенным, тестовое меню под долгим нажатием. Новая формулировка Apple звучит прямо: “Не включайте в приложение никаких скрытых, спящих или недокументированных функций.” Согласно отчёту 9to5Mac об этом изменении, попытка скрыть такие функции, например с помощью обфускации кода, может привести к удалению приложения и прекращению действия вашей учётной записи разработчика. Занесите правило в AGENTS.md и попросите субагента-ревьюера искать его перед каждой отправкой.

Правила App Store в 2026 году: хронология от январского дедлайна по возрастным рейтингам и требования Xcode 26 в апреле до правила 4.3(b) в июне, Xcode 27.1 и правила 2.5.19 в октябре, а также скриншотов для iPhone Duo с апреля 2027 года
Даты, изменившие отправку в App Store в 2026 году, в реальном масштабе времени. Два изменения правил важнее всего для приложений, созданных с ИИ.

Рабочий процесс, шаг за шагом

  1. Зарегистрируйтесь в Apple Developer Program. Это стоит $99 в год (€99 в Германии). Компании регистрируются как организация, для этого нужен номер D-U-N-S. Начинайте заранее; проверка может занять несколько дней. Зарегистрироваться.
  2. Укажите статус торговца в ЕС. По Закону ЕС о цифровых услугах каждый разработчик обязан указать, является ли он торговцем. Если вы публикуете как бизнес, ваш адрес, номер телефона и электронная почта появляются на странице продукта во всех странах ЕС. В феврале 2025 года Apple убрала тысячи приложений из витрин ЕС за то, что этого не было.
  3. Создайте ключ API App Store Connect. В App Store Connect перейдите в раздел Пользователи и доступ → Интеграции → App Store Connect API и сгенерируйте командный ключ. Запросить доступ к API изначально может только владелец учётной записи. Дайте ключу наименее полномочную роль, которой хватает для задачи (в обзоре ролей Apple видно, что умеет каждая), скачайте .p8 файл один раз и храните его в надёжном месте вне репозитория.
  4. Установите App Store Connect CLI и войдите. asc — это инструмент командной строки с открытым исходным кодом (MIT) для API App Store Connect, созданный для скриптов и агентов: он печатает таблицы в терминале и JSON, когда вывод читает другая программа.
brew install asc        # or: curl -fsSL https://asccli.sh/install | bash

asc auth login --name "MyApp" --key-id "ABC123" --issuer-id "DEF456" \
  --private-key ~/keys/AuthKey_ABC123.p8 --network
asc auth status --validate

Затем установите его навыки (asc install-skills), чтобы OpenCode знал, как ими пользоваться.

  1. Создайте запись приложения. В App Store Connect выберите Приложения → + → Новое приложение, и выбирайте bundle ID внимательно, потому что он никогда не меняется (у Stash — network.grahammiranda.stash, у PingAtlas — network.grahammiranda.pingatlas). asc Навыки asc включают тот, что делает это через автоматизацию браузера, но это двухминутная работа, которую стоит один раз сделать вручную.
  2. Разберитесь с подписью. Для нативного приложения автоматическая подпись Xcode берёт на себя сертификаты и профили. Для Expo учётными данными управляет EAS. Навык asc-signing-setup охватывает bundle ID, возможности, сертификаты и профили, если вы предпочитаете делать это скриптом.
  3. Соберите и загрузите. Нативно: сделайте архив в Xcode (или пусть агент сделает это с asc-xcode-build навыком), затем загрузите:
asc builds upload --app "123456789" --ipa build/MyApp.ipa

Expo: eas build --platform ios, затем eas submit -p ios, который загружает сборку в App Store Connect (он не отправляет её на проверку). Загрузку можно безопасно делегировать; отправку на проверку — нет.

  1. Сначала протестируйте через TestFlight. Внутренние тестировщики (до 100 человек в вашей команде) получают сборки без проверки. Внешним тестировщикам (до 10 000 человек, по электронной почте или публичной ссылке) нужна короткая бета-проверка App Review для первой сборки. Сборки остаются доступными для тестирования в течение 90 дней. Агент может управлять группами с помощью asc testflight groups list --app "123456789" и asc-testflight-orchestration навык. Дайте приложение пяти людям с разными iPhone на неделю; они найдут сбой, который не нашли вы.
  2. Напишите метаданные, затем дайте агенту их проверить. Храните карточку приложения в файлах в репозитории (metadata/en-US/…) и сначала примените её с пробным запуском:
asc metadata apply --app "123456789" --version "1.0.0" --dir ./metadata --dry-run

Этот asc-metadata-sync навык проверяет ограничения Apple по количеству символов, прежде чем что-либо будет загружено. В части 10 рассказано, что писать.

  1. Сделайте скриншоты. Не менее одного, до десяти, для каждого требуемого размера, в формате PNG или JPEG без прозрачности. Навык asc-shots-pipeline может делать их из симулятора, оформлять и загружать с помощью asc screenshots upload. В части 10 указаны размеры.
  2. Отвечайте честно на вопросы о конфиденциальности, возрастном рейтинге и соответствии требованиям. Это та часть, которую нельзя слепо делегировать:
  • Ярлык конфиденциальности. По правилам Apple данные считаются собранными, когда покидают устройство и хранятся дольше, чем требуется для обработки запроса. Данные, обрабатываемые только на устройстве, не считаются собранными. Синхронизация контента пользователей с вашим сервером считается сбором, даже если видеть его можете только они. Попросите агента проверить каждый сетевой вызов и SDK, а затем самостоятельно заполните ярлык по его таблице.
  • Политика конфиденциальности должна быть указана ссылкой в App Store Connect и открываться внутри приложения и описывать именно это приложение, а не только вашу компанию.
  • Сторонний ИИ (правило 5.1.2(i)): если персональные данные передаются в ИИ-сервис, сообщите об этом и сначала получите разрешение.
  • Удаление аккаунта (правило 5.1.1(v)): если пользователи могут создать аккаунт, они должны иметь возможность удалить его внутри приложения.
  • Возрастной рейтинг, соответствие экспортным требованиям и маркировка доступности. Если ваше приложение использует только встроенное в iOS шифрование, например HTTPS, установите ITSAppUsesNonExemptEncryption в Info.plist, предварительно сверившись с рекомендациями Apple, чтобы вас не спрашивали при каждой загрузке.
  1. Отправьте сами. Добавьте версию на проверку и отправьте её на странице приложения в App Store Connect или выполните asc publish appstore … --submit --confirm из собственного терминала (правила разрешений из части 4 не позволяют агенту выполнить её). Затем позвольте агенту наблюдать: asc review status --app "123456789".

Проверка: чего ожидать

Apple заявляет, что в среднем 90% заявок рассматриваются менее чем за 24 часа, а более 40% нерешённых проблем связаны с правилом 2.1 «Полнота приложения»: сбои, контент-заглушки, неполная информация и неработающие ссылки. Если вас отклонили, прочитайте сообщение дважды, устраните настоящую проблему и ответьте в App Store Connect. Навык asc-submission-health помогает диагностировать блокирующие проблемы, а агент хорошо составляет спокойный и конкретный ответ. Отправьте его сами.


Часть 10 — Запуск: карточка приложения, скриншоты, ASO и жизнь после одобрения

Одобренное приложение со слабой карточкой — это магазин без вывески. Вот что ещё предстоит сделать.

Карточка приложения по полям

Поле Ограничение Что работает
Название приложения 30 символов Бренд плюс преимущество. “Stash — Find It Fast” объясняет постороннему человеку, для чего нужно приложение
Подзаголовок 30 символов Преимущество простыми словами. В PingAtlas используется “Ping cities, games & services”
Ключевые слова 100 символов Через запятую, без пробелов. Не повторяйте слова, которые уже есть в названии или подзаголовке, — они всё равно учитываются
Промотекст 170 символов Изменения без новой проверки, поэтому используйте это для сезонов и новостей
Описание 4 000 символов Что оно делает, для кого оно, чего оно не делает с данными людей. Просто и конкретно
Что нового По версиям Настоящие изменения человеческим языком; /whats-new команда из части 5 готовит его
Скриншоты От 1 до 10 на размер Рассказывайте историю по порядку; большинство людей не пролистывает дальше первых трёх

Два правила, если вы позволяете агенту писать что-либо из этого: скажите ему использовать только те функции, которые есть в коде (и называть файл, где находится каждая из них), и держите результат в своём репозитории, чтобы каждое изменение проверялось как код. asc-aso-audit навык затем может проверить пробелы в ключевых словах офлайн, прежде чем что-то выйдет в свет.

Размеры скриншотов в ноябре 2026

Устройство Обязательно? Размеры в портретной ориентации (в пикселях)
iPhone с Dynamic Island, средний экран Да 1179 × 2556 или 1206 × 2622
iPhone с Dynamic Island, большой экран Необязательно 1260 × 2736, 1290 × 2796 или 1320 × 2868
iPad, 13-дюймовый экран Да, если ваше приложение работает на iPad 2064 × 2752 или 2048 × 2732
iPhone Duo (внешний / внутренний экран) С апрель 2027, для приложений, собранных с iOS 27.1 SDK или новее 1398 × 2034 / 2007 × 2853

Если ваш интерфейс выглядит одинаково на разных размерах и языках, вам нужна только самая высокая требуемая разрешающая способность; App Store Connect масштабирует её для меньших устройств. Скриншоты не могут содержать прозрачность.

Устройство страницы приложения в App Store и лимиты символов: название приложения — 30, подзаголовок — 30, ключевые слова — 100, промо-текст — 170, описание — 4 000, а также размеры скриншотов, обязательные в ноябре 2026 года, и размеры для iPhone Duo с апреля 2027 года
Всё, что читает поиск App Store, и всё, что видит посторонний человек перед нажатием «Загрузить», на одной странице.

Локализуйте страницу приложения, а не только само приложение

Если приложение говорит на нескольких языках, страница тоже должна. asc-localize-metadata навык переводит текст страницы и asc-metadata-sync проверяет каждый язык на соответствие ограничениям Apple по символам — именно здесь обычно ошибаются немецкие подзаголовки, переведённые вручную. Пусть результат прочитает носитель языка; машинный перевод сейчас отличный, но текст для магазина приложений — это маркетинг, а маркетингу нужен человеческий слух.

После одобрения

  • Просите оценку в удачный момент. Системный запрос оценки Apple появляется не чаще трёх раз в год на человека, поэтому не тратьте его на первый запуск. Спрашивайте сразу после того, как всё прошло хорошо.
  • Используйте промотекст, чтобы привязать к событию. Сезон переездов, весенняя уборка, игровые выходные. Он меняется без проверки.
  • Следите за сбоями с первого дня. Этот asc-crash-triage навык просматривает сбои и отзывы TestFlight; Expo MCP сервер может получать сбои, отзывы и оценки (ответы требуют вашего подтверждения); MCP-сервер Sentry приносит ошибки из продакшена.
  • Выпускайте небольшие обновления часто. Stash вышел 23 сентября, 2 октября получил редизайн, а 28 октября в версии 1.1.0 добавил десять языков. Выпускайте работающую версию, а затем улучшайте её публично.
  • Дайте приложению дом в интернете. Простая страница с демо, политикой конфиденциальности, написанной для приложения, и, если вы в Германии, Impressum. Моё руководство по созданию приложения с нуля охватывает юридические страницы для немецких разработчиков и разработчиков из ЕС.

Часть 11 — Сколько это стоит: четыре бюджета на первый год

OpenCode бесплатен. Ollama бесплатен на вашем собственном оборудовании. Единственная статья расходов, которую не обойти при создании приложения для iPhone, — членство Apple; всё остальное зависит от того, сколько времени работы модели вы хотите купить.

Бюджет Что в него входит Первый год (USD)
Только локально Apple Developer Program; OpenCode; Ollama с локальными моделями на Mac, который у вас уже есть (32 ГБ или больше) $99
Стартовый Только локально + OpenCode Go ($10 в месяц) $219
Рекомендуется Starter + Ollama Pro при годовой оплате ($200) $419
Power Apple + OpenCode Go Plus ($40 в месяц) + Ollama Max ($100 в месяц) $1,779

Цены по прайс-листу на 7 ноября 2026 года, без НДС и без акционных скидок. Подставьте свои варианты: GLM Coding Plan Lite вместо Go стоит $216 в год при месячной оплате (около $151 при годовой) вместо $120; ChatGPT Plus — $240 в год. Необязательные доплаты: разовый взнос Google Play в $25, если вы выпускаете приложение на Android, платные тарифы Expo, если вам станет мало бесплатного уровня, и всё, во что обходится ваш сайт.

Стоимость разработки и публикации приложения с OpenCode и Ollama за первый год в 2026 году: $99 — только локально, $219 — стартовый, $419 — рекомендуемый и $1 779 — мощный, с разбивкой на Apple, OpenCode Go и Ollama
Взнос Apple — единственная строка, которой не избежать. Рекомендуемая конфигурация обходится примерно в $35 в месяц.

Но настоящая цена не в этом списке: это ваши вечера. ИИ сокращает набор текста, а не размышления, а размышления — большая часть работы.


Часть 12 — Пятнадцать ошибок, которых стоит избегать

  1. Разрешать агенту отправлять приложение на проверку. Запретите это в разрешениях. Кнопку нажимаете вы.
  2. Хранить ключ Admin API там, где агенты работают без присмотра. Используйте минимально достаточную роль, а ключи подписи и рабочие учётные данные держите в другом месте.
  3. Создавать копию того, что уже существует. Правило 4.3(b) теперь называет целые категории. Сначала найдите своё отличие в одном предложении.
  4. Выпускать скрытые дополнения. Экраны отладки, спящие флаги функций и тестовые меню нарушают правило 2.5.19. Исключите их из релизных сборок при компиляции.
  5. Метка конфиденциальности, которая правдоподобна, а не точна. Если данные покидают устройство и остаются на сервере, они считаются собранными, даже если их видит только пользователь.
  6. Отправлять персональные данные в ИИ-сервис без разрешения. Правило 5.1.2(i) требует раскрытия информации и разрешения.
  7. Секреты в пакете приложения. Всё, что находится внутри приложения, можно извлечь. Ключи, которые стоят денег, хранятся на сервере.
  8. Подключать каждый найденный MCP-сервер. Каждый из них съедает контекст при каждом запросе. Добавляйте только то, чем пользуетесь.
  9. Устанавливать навыки и серверы, которые вы не читали. Это инструкции и код, которые работают с вашими правами.
  10. Верить в “готово”. Запустите его на настоящем iPhone, без сети, в тёмной теме, с самым крупным размером текста и с включённым VoiceOver.
  11. Использовать бесплатные промо-модели для кода клиентов. Некоторые могут использовать ваши данные для улучшения модели. Отключайте их для клиентских проектов.
  12. Забывать про длину контекста в Ollama. При значении по умолчанию агент исчерпывает место ещё до начала работы. Задайте 64K на сервере.
  13. Позволять зависимостям накапливаться. Каждый пакет — это код, который вы не читали, и обновление, которым придётся управлять. Пусть агент спрашивает.
  14. Долгие, разросшиеся сессии. Начинайте заново для каждого фрагмента и используйте worktrees для экспериментов.
  15. Обещать то, что в планах. Скриншоты и описания показывают, что делает эта сборка. Идеям место на вашем сайте, с пометкой, что это идеи.

Часть 13 — Какую конфигурацию выбрать? Шесть сценариев

1. “Я никогда не писал код, и у меня есть Mac.”

Десктопное приложение OpenCode, OpenCode Go и Ollama для мелких задач. Expo, если вам нужен ещё и Android; SwiftUI, если вам важен только iPhone. Держите команды оболочки на «спрашивать», коммитьте после каждого рабочего шага и начинайте с приложения, у которого одна задача.

2. “Мой код не должен покидать мою машину.”

OpenCode только с локальным Ollama. Отключите облачные функции Ollama, задайте OPENCODE_DISABLE_FREE_MODELS=1, и не подключайте в этом проекте облачных провайдеров. Ожидайте более медленную и простую помощь и давайте агенту задачи поменьше. Mac с 64 ГБ и больше делает это намного комфортнее.

3. “Я уже плачу за ChatGPT, Copilot или Claude.”

Сначала подключите то, что у вас уже есть. ChatGPT Plus и Pro, а также GitHub Copilot работают через встроенный вход без дополнительных затрат. Claude работает через провайдер Claude Agent; прочитайте часть 2, прежде чем полагаться на него в рабочих задачах. Позже добавьте OpenCode Go, если хотите рядом и модели с открытыми весами.

4. “Я хочу iPhone и Android из одной кодовой базы.”

Expo SDK 58, MCP-сервер Expo, официальные навыки Expo и EAS для облачных сборок и загрузок. Вы можете собирать и загружать приложения iOS без Mac, хотя он всё равно понадобится (как и iPhone) для тестирования.

5. “Меня интересуют только платформы Apple, и я хочу, чтобы всё было нативно.”

SwiftUI в Xcode 27.1, с OpenCode либо внутри Xcode через ACP (Xcode → Settings → Intelligence → Добавить агента…, исполняемый файл opencode, аргумент acp) либо в терминале с помощью MCP-моста Xcode и XcodeBuildMCP. Один минус маршрута внутри Xcode: там нет выбора модели, поэтому задайте модель по умолчанию в opencode.jsonc сначала.

6. “Я хочу быстро, и я готов за это платить.”

OpenCode Go Plus и Ollama Max, worktrees для параллельных экспериментов, режим goal для долгих механических задач и frontier-модель по API-ключу для по-настоящему сложных проблем. Следите за расходами еженедельно. Если хотите запускать несколько агентов бок о бок, моё сравнение harness охватывает эти варианты.


Часто задаваемые вопросы

Как впервые начать работать с OpenCode?

Установите его командой curl -fsSL https://opencode.ai/v2/install | bash (или скачайте приложение для компьютера с opencode.ai/download), откройте терминал в папке проекта и выполните opencode. Введите /connect чтобы добавить провайдера моделей, например OpenCode Go, вход через ChatGPT или локальную модель Ollama, затем /models чтобы выбрать модель. Добавьте файл AGENTS.md с описанием проекта, начните с агента plan и собирайте по одной небольшой функции за раз, проверяя каждое изменение.

Бесплатен ли OpenCode?

Да. OpenCode распространяется как открытый исходный код по лицензии MIT и ничего не стоит. В него даже входит сменяемый набор бесплатных моделей, которыми можно пользоваться без аккаунта. Вы платите только за доступ к моделям, который сами добавляете: например, OpenCode Go за $10 в месяц, тариф Ollama Cloud, уже имеющуюся подписку ChatGPT или Copilot либо API-ключи с оплатой за токены. Локальные модели через Ollama бесплатны.

Что такое OpenCode Go и сколько он стоит?

OpenCode Go — собственный тариф для кодинга от OpenCode: $10 в месяц за доступ к 32 открытым моделям, включая GLM-5.3, Kimi K3, MiniMax M3.1 Flash и DeepSeek V4.1 Flash. У каждой модели есть месячный лимит в долларах, из которого можно израсходовать 20% за пять часов и 50% за неделю. Go Plus стоит $40 в месяц с более высокими лимитами, а Go Teams — $20 за участника. Большинство моделей работают без хранения данных.

Можно ли использовать OpenCode вместе с Ollama?

Да. OpenCode автоматически находит локальный сервер Ollama и показывает его модели в /models. Также можно выполнить ollama launch opencode, который работает с OpenCode v2 начиная с Ollama 0.40.12. Задайте длину контекста Ollama не менее 64K токенов: значение по умолчанию 4 096 слишком мало для агента-кодера. Облачные модели Ollama работают так же, если вы вошли в аккаунт.

Какую локальную модель выбрать для OpenCode на Mac?

Держите размер загружаемой модели в пределах примерно 60% памяти вашего Mac. При 32 ГБ начните с qwen3.8:27b (18 ГБ), qwen3-coder:30b (19 ГБ) или gpt-oss:20b (14 ГБ). На 64 ГБ используйте те же модели с более высокой точностью и большим контекстом. При 96–128 ГБ подойдут gpt-oss:120b (65 ГБ) и devstral-2:123b (75 ГБ). При 16 ГБ локальные модели годятся для небольших задач; для сборки используйте облачные модели.

Можно ли использовать подписку Claude Pro или Max в OpenCode?

Начиная с OpenCode 2.2.3 (30 октября 2026) — да, через провайдер Claude Agent: установите Claude Code 2.1.248 или новее, выполните claude auth login, затем выберите Claude Agent в /connect. Он запускает официальную программу Claude Code через Agent SDK от Anthropic. Anthropic публично не одобрила такое использование, а условия Agent SDK ограничивают сторонние сервисы, предлагающие вход через claude.ai, поэтому для рабочих задач используйте API-ключ Anthropic.

Можно ли использовать ChatGPT Plus или GitHub Copilot в OpenCode?

Да, оба варианта — через встроенные провайдеры. Для ChatGPT Plus или Pro выполните /connect, выберите OpenAI, а затем “Войти с помощью ChatGPT”; расход засчитывается в ваш тариф. Для GitHub Copilot выберите GitHub Copilot и завершите вход по устройству; аккаунту нужен доступ к Copilot Chat, который входит в бесплатный тариф Copilot.

Что такое MCP-серверы и какие нужны для разработки под iOS?

MCP-серверы (Model Context Protocol) дают агенту-кодеру дополнительные инструменты, например управление Xcode или симулятором. Для работы с iOS полезнее всего собственный мост Xcode (xcrun mcpbridge), XcodeBuildMCP для сборок, управления симулятором и скриншотов, MCP-сервер Expo для проектов Expo, Context7 для актуальной документации и Sentry для данных о сбоях. Каждый сервер добавляет контекст к каждому запросу, поэтому подключайте только то, чем пользуетесь.

Что такое skills в OpenCode?

Skills — это папки с файлом SKILL.md : краткое описание и пошаговые инструкции, иногда со скриптами. OpenCode показывает модели только описания и загружает инструкции skill, когда они нужны для задачи. Он читает skills из .opencode/skills, .claude/skills и .agents/skills в вашем проекте и из глобальных папок. Expo и CLI App Store Connect публикуют официальные наборы skills.

Может ли OpenCode опубликовать моё приложение в App Store?

Он может выполнить почти всю работу: архивирование, загрузку сборок, управление TestFlight, синхронизацию метаданных и скриншотов и проверку статуса проверки — с помощью таких инструментов, как asc CLI или EAS от Expo. Нажимать “Отправить на проверку” он не должен. Заблокируйте команды отправки в разрешениях OpenCode, сами отвечайте на вопросы о конфиденциальности и соответствии требованиям и сами отправляйте версию в App Store Connect.

Нужен ли Mac, чтобы опубликовать приложение для iPhone?

Строго говоря, нет. С Expo сборку вашего приложения для iOS выполняет EAS в облаке и оттуда же загружает её в App Store Connect — с Windows или Linux. Для нативной разработки в Xcode нужен Mac, а Xcode 27.1 требует macOS Tahoe 26.6 или новее. В любом случае для тестирования понадобится настоящий iPhone, а для публикации — членство в Apple Developer Program ($99 в год).

Сколько стоит собрать и опубликовать приложение с OpenCode?

От $99 в первый год, если вы используете локальные модели и платите только за членство у Apple. Набор, который рекомендуется в этом руководстве (OpenCode Go плюс Ollama Pro при годовой оплате), обойдётся примерно в $419 за первый год с учётом взноса Apple, а мощный вариант с OpenCode Go Plus и Ollama Max — примерно в $1 779. Цены — прайс-листовые на ноябрь 2026 года без НДС.

Что изменилось в правилах App Store в 2026 году?

Сборки должны выполняться в Xcode 26 или новее (с апреля), приложения-клоны и малоценные приложения в перенасыщенных категориях отклоняются по переписанному правилу 4.3(b) (июнь), скрытые, спящие или недокументированные функции запрещены новым правилом 2.5.19 (октябрь), а приложения должны поддерживать iOS 13 или новее (сентябрь). Скриншоты для iPhone Duo станут обязательными в апреле 2027 года для приложений, собранных с SDK iOS 27.1, а обязательный набор скриншотов iPhone теперь соответствует дисплеям Dynamic Island среднего размера (1179 × 2556 или 1206 × 2622 пикселя).

Что такое Stash и PingAtlas?

Это два бесплатных приложения для iPhone и iPad от Graham Miranda UG, компании автора. Stash — Find It Fast запоминает, куда вы что-то положили: вы фотографируете место, выбираете комнату и позже находите вещь — в том числе по расшифрованным голосовым заметкам, на 11 языках. PingAtlas измеряет время кругового обхода сети с вашего устройства до городов, игр и онлайн-сервисов — без аккаунта, без рекламы и без аналитики.


Итог

Обучение как пользоваться OpenCode всё же не в заучивании команд. Дело в том, чтобы построить небольшую систему вокруг агента: тариф для кодинга, который укладывается в ваш бюджет, Ollama для работы, которая должна оставаться на вашей машине, несколько MCP-серверов, которые позволяют агенту видеть, что он собирает, навыки, в которых хранится ваш свод правил, и разрешения, которые оставляют необратимые решения за вами.

Моя рекомендация остаётся в силе: OpenCode с OpenCode Go и Ollama — это самый дешёвый, самый гибкий и меньше всего привязывающий к поставщику способ собрать приложение с помощью ИИ в конце 2026 года. Добавьте подписку, за которую вы уже платите, или фронтирную модель по ключу API, когда задача этого заслуживает. Затем поручите агенту и бумажную работу, а кнопку “Отправить” оставьте себе.

Если хотите посмотреть, что такой процесс даёт в небольшом масштабе, оба моих приложения бесплатны: Stash — Find It Fast для вещей, которые вы убираете, и PingAtlas чтобы проверить, насколько интернет на самом деле близок оттуда, где вы сидите. А потом идите и делайте своё.


Собираете с OpenCode? Хотелось бы узнать, на каком тарифе для кодинга вы остановились, какая локальная модель заслужила место на вашем Mac и без какого MCP-сервера или навыка вы не обходитесь. Правки и опровержения приветствуются; статья обновляется, когда картина меняется.

Раскрытие информации: Stash и PingAtlas — мои собственные приложения, их выпускает моя компания Graham Miranda UG (haftungsbeschränkt). Оба бесплатны и без рекламы. В статье есть одна партнёрская ссылка — на GLM Coding Plan от Z.ai во второй части: по ней вы получаете скидку 10%, а я получаю комиссию. Ни одна упомянутая здесь компания не спонсировала эту статью, не проверяла и не одобряла её.

Последнее обновление: 7 ноября 2026 года.

Добавьте свой сигнал.

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ru_RUРусский