1. Что такое /init и зачем она нужна
  2. Как работает /init
  3. Работа без /init
  4. Сравнение подходов
  5. AGENTS.md: память проекта
  6. Когда использовать /init
  7. Практические примеры
  8. Рекомендации для разных сценариев
  9. Заключение

1. Что такое /init и зачем она нужна

Команда /init — это специальная команда OpenCode, которая выполняет первичную настройку проекта для дальнейшей работы. Когда вы вводите эту команду в терминале OpenCode, система автоматически анализирует структуру вашего проекта, изучает используемые технологии, фреймворки, языки программирования и создаёт специальный файл AGENTS.md в корневой директории проекта. Этот файл становится "памятью" проекта и сохраняется между сессиями работы с OpenCode. Без этого файла OpenCode каждый раз начинает работу "с чистого листа", не имея представления о специфике конкретного проекта.

Основная цель /init — помочь OpenCode лучше понимать контекст вашего проекта. Когда вы работаете над большим проектом с множеством файлов, сложной структурой и специфическими соглашениями по кодированию, OpenCode будет давать более релевантные и точные ответы, если он знает особенности вашей кодовой базы. Например, если в проекте используется определённый стиль именования переменных, архитектурные паттерны или соглашения по комментированию кода, OpenCode сможет учитывать эти особенности при генерации нового кода или рефакторинге существующего. Это делает сотрудничество с OpenCode более естественным и эффективным.

Файлы AGENTS.md, создаваемые командой /init, можно и нужно добавлять в систему контроля версий, например Git. Это позволяет всей команде разработчиков иметь доступ к единому контексту проекта при работе с OpenCode. Каждый новый участник команды, клонирующий репозиторий, автоматически получит настройки контекста, и OpenCode сможет сразу работать эффективно, понимая специфику проекта без необходимости повторного анализа. Такой подход особенно ценен в командной разработке, где важно поддерживать единые стандарты и подходы к написанию кода.

2. Как работает /init

При выполнении команды /init OpenCode проделывает несколько важных этапов работы, каждое из которых вносит свой вклад в формирование полной картины вашего проекта. Первый этап — сканирование структуры директорий, где OpenCode обходит все папки и файлы проекта, строя карту файловой системы. На этом этапе определяется, какие файлы существуют, как они организованы в директории, какие именованные конвенции используются в именах файлов и папок. Эта информация уже сама по себе многое говорит о структуре проекта и используемых технологиях.

Второй этап — анализ зависимостей и технологий. OpenCode изучает файлы типа package.json, requirements.txt, pom.xml, go.mod, Cargo.toml и другие, чтобы понять, какие библиотеки, фреймворки и инструменты используются в проекте. Это позволяет системе составить представление о стеке технологий и возможностях, которые можно использовать при работе с кодом. Например, если проект использует React для фронтенда и FastAPI для бэкенда, OpenCode будет знать об этом и сможет предлагать решения, учитывающие особенности этих технологий.

Третий этап — изучение существующего кода. OpenCode просматривает файлы с исходным кодом, анализируя их структуру, стиль написания, используемые паттерны и архитектурные решения. Этот этап особенно важен, потому что он позволяет понять не только "что делает этот код", но и "как здесь принято писать код". Система выявляет повторяющиеся паттерны, стиль именования переменных и функций, предпочтения в организации кода. Всё это формирует уникальный "почерк" проекта, который OpenCode будет стараться воспроизводить при генерации нового кода.

После завершения анализа OpenCode создаёт файл AGENTS.md, в котором сохраняет всю собранную информацию. Этот файл имеет определённую структуру и включает разделы с описанием структуры проекта, используемых технологий, архитектурных решений, шаблонов кодирования и других важных аспектов. Файл создаётся в корневой директории проекта и автоматически читается при каждом запуске OpenCode в этой директории. Это означает, что однажды выполнив /init, вы получаете постоянную "память" проекта, которая сохраняется между сессиями работы.

3. Работа без /init

Если вы не используете команду /init, OpenCode всё равно может анализировать ваш проект, но этот анализ будет ограниченным и непостоянным. При запуске без инициализации OpenCode имеет доступ только к файлам, которые вы явно указываете в запросах через символ @. Например, вы можете спросить "Объясни функцию в файле @src/auth.py", и OpenCode проанализирует только этот файл. Однако без контекста всего проекта система не сможет понять, как этот файл связан с остальными частями кодовой базы, какие зависимости использует, какие соглашения приняты в проекте.

Основное ограничение работы без /init — отсутствие постоянной памяти проекта. Каждая новая сессия работы с OpenCode начинается с чистого листа, и системе требуется заново объяснять особенности проекта. Если вы работаете над большим проектом с множеством файлов, это может значительно замедлить работу, потому что придётся постоянно переключаться между файлами и повторно объяснять контекст. Кроме того, без сохранённого контекста сложнее поддерживать единообразие генерируемого кода на протяжении всей работы над проектом.

Тем не менее, работа без /init имеет свои преимущества в определённых ситуациях. Для быстрых одноразовых задач, когда вам нужно просто получить ответ на конкретный вопрос или решить локальную проблему, полный анализ проекта может быть избыточным. Например, если вам нужно быстро исправить опечатку в одном файле или получить объяснение работы конкретной функции, использование /init только замедлит процесс. В таких случаях прямой анализ нужного файла через @filename будет быстрее и эффективнее. Также работа без инициализации подходит для экспериментов и исследования новых библиотек или технологий, когда вы ещё не уверены, будет ли проект долгосрочным.

Ещё одно преимущество работы без /init — отсутствие необходимости создавать дополнительные файлы в проекте. Если вы работаете над проектом, где нежелательно добавлять файлы конфигурации, или если проект используется в команде, которая не использует OpenCode, файл AGENTS.md может создавать лишний шум в репозитории. В таких случаях можно хранить контекст локально, не добавляя его в систему контроля версий, или просто работать без сохранённого контекста, периодически пересоздавая его заново при необходимости.

4. Сравнение подходов

Для наглядного сравнения двух подходов представим основные различия в виде таблицы, которая поможет быстро оценить преимущества и недостатки каждого варианта работы с OpenCode. Первый критерий — сохранение контекста между сессиями. При использовании /init контекст проекта сохраняется в файле AGENTS.md и доступен при каждом новом запуске OpenCode в директории проекта. Без /init контекст не сохраняется, и при каждом новом запуске системе нужно заново объяснять особенности проекта, что увеличивает время на подготовку к работе.

Второй критерий — глубина понимания проекта. С файлом AGENTS.md OpenCode имеет целостное представление о структуре проекта, используемых технологиях, архитектурных решениях и принятых соглашениях по кодированию. Это позволяет давать более релевантные ответы и генерировать код, который лучше вписывается в существующую кодовую базу. Без сохранённого контекста OpenCode может анализировать только те файлы, которые вы явно указываете, и не имеет представления о проекте в целом, что ограничивает качество его ответов и предложений.

Третий критерий — удобство командной работы. Когда файл AGENTS.md добавлен в репозиторий, каждый член команды получает доступ к единым настройкам контекста при работе с OpenCode. Это обеспечивает консистентность в работе и ускоряет адаптацию новых участников команды. Без файла контекста каждый участник должен самостоятельно объяснять системе особенности проекта, что приводит к разному качеству работы и дополнительным затратам времени.

Четвёртый критерий — скорость первоначальной настройки. При первом использовании /init требуется время на анализ проекта, которое может занять от нескольких секунд до минут в зависимости от размера проекта. Работа без инициализации позволяет начать работу немедленно, но это преимущество нивелируется необходимостью повторно объяснять контекст при каждой новой сессии. Для долгосрочных проектов время, потраченное на первоначальный анализ, многократно окупается за счёт экономии времени в последующих сессиях.

Пятый критерий — гибкость и контроль. Работа без /init даёт больше контроля над тем, какую информацию OpenCode использует в каждый конкретный момент. Вы можете явно указать только те файлы, которые релевантны текущей задаче, и система не будет "загромождаться" информацией о неиспользуемых частях проекта. Однако эта гибкость достигается ценой дополнительных усилий по управлению контекстом вручную, что может быть утомительным при работе над сложными проектами.

5. AGENTS.md: память проекта

Файл AGENTS.md — это центр управления контекстом проекта для OpenCode. После выполнения команды /init в корневой директории вашего проекта появляется этот файл, который содержит структурированную информацию о проекте и служит справочником для OpenCode при каждом запуске. Давайте подробнее рассмотрим структуру этого файла и то, какую информацию он может содержать. Понимание структуры AGENTS.md позволит вам не только использовать автоматически сгенерированный файл, но и дополнять его вручную, добавляя важную информацию, которую автоматический анализ мог пропустить.

Структура файла AGENTS.md включает несколько ключевых разделов, каждый из которых отвечает за определённый аспект контекста проекта. Раздел "Описание проекта" содержит общее описание назначения проекта, его целей и основных функций. Этот раздел помогает OpenCode понять, для чего создан проект и какие задачи он решает. Раздел "Структура проекта" описывает организацию файлов и директорий, принятые соглашения по именованию и архитектурные решения. Раздел "Технологии и зависимости" перечисляет используемые языки программирования, библиотеки, фреймворки и инструменты.

Помимо автоматически собранной информации, вы можете добавлять в AGENTS.md собственные разделы с рекомендациями по работе над проектом. Например, раздел "Шаблоны кодирования" может описывать предпочтительный стиль написания кода, используемые паттерны проектирования, соглашения по именованию переменных и функций. Раздел "Архитектурные решения" может содержать описание выбранной архитектуры, используемых паттернов взаимодействия между компонентами, принципов организации кода. Раздел "Рабочий процесс" может описывать типичные задачи разработки, стандартные процедуры и best practices, принятые в команде.

Файл AGENTS.md поддерживает Markdown-разметку, что позволяет структурировать информацию с помощью заголовков, списков, таблиц и других элементов форматирования. Это делает файл не только полезным для OpenCode, но и удобным для чтения и редактирования разработчиками. Вы можете добавлять примеры кода, ссылки на документацию, заметки и любую другую информацию, которая поможет OpenCode лучше понимать специфику проекта. Файл можно и нужно редактировать вручную, добавляя новую информацию по мере развития проекта и изменения его особенностей.

Важный аспект работы с AGENTS.md — управление версиями. Рекомендуется добавить этот файл в .gitignore, если вы не хотите, чтобы он попадал в общий репозиторий команды. Однако для командной работы добавление AGENTS.md в репозиторий, напротив, очень полезно, так как позволяет всем участникам команды использовать единый контекст проекта. В этом случае файл становится частью документации проекта и должен обновляться при изменении значимых аспектов кодовой базы. Также можно использовать разные версии файла для разных веток проекта, если разные ветки имеют существенно разную структуру или архитектуру.

6. Когда использовать /init

Теперь, когда мы разобрали технические аспекты работы с контекстом, давайте определим, в каких ситуациях использование /init наиболее оправдано, а когда можно обойтись без него. Понимание этих нюансов поможет вам выбрать оптимальный подход для каждого конкретного случая и максимизировать эффективность работы с OpenCode. Ключевой фактор здесь — долгосрочность проекта и сложность задач, которые вы планируете решать с помощью OpenCode.

Использование /init настоятельно рекомендуется для долгосрочных проектов, которые будут развиваться и поддерживаться в течение длительного времени. В таких проектах время, потраченное на первоначальный анализ, многократно окупается за счёт экономии времени в последующих сессиях работы. Каждый раз, когда вы возвращаетесь к работе над проектом, OpenCode уже "знает" о нём всё необходимое и может сразу приступить к решению задач, не тратя время на повторное изучение структуры и особенностей кодовой базы. Особенно важно это для проектов со сложной архитектурой, множеством модулей и специфическими архитектурными решениями.

Для командной разработки использование /init и совместное использование файла AGENTS.md через систему контроля версий является почти обязательным. Это обеспечивает единообразие работы всех участников команды с OpenCode, ускоряет адаптацию новых членов команды и поддерживает консистентность в генерируемом коде. Когда каждый член команды работает с одним и тем же контекстом проекта, результаты работы с OpenCode становятся более предсказуемыми и лучше вписываются в существующую кодовую базу. Кроме того, коллективное ведение файла AGENTS.md позволяет накапливать знания о проекте и делиться ими между членами команды.

Использование /init также оправдано для проектов со сложной структурой и множеством файлов. Когда проект содержит сотни или тысячи файлов, ручное указание релевантных файлов в каждом запросе становится трудоёмким и неэффективным. Файл AGENTS.md позволяет OpenCode самостоятельно ориентироваться в структуре проекта и находить нужные файлы без явного указания. Это особенно полезно для проектов, где функции распределены по множеству модулей и файлов, и связь между ними не всегда очевидна без глубокого понимания архитектуры проекта.

С другой стороны, для быстрых одноразовых задач использование /init может быть избыточным. Если вам нужно просто исправить опечатку в одном файле, получить краткое объяснение работы конкретной функции или выполнить другую локальную задачу, полный анализ проекта только замедлит работу. В таких случаях эффективнее использовать прямые ссылки на нужные файлы через символ @ и получить результат немедленно. Также можно обойтись без /init при работе с небольшими проектами из нескольких файлов, где структура проекта и так очевидна и легко умещается в памяти.

7. Практические примеры

Чтобы лучше понять разницу между работой с /init и без неё, рассмотрим несколько практических примеров. Первый пример — работа над новой функцией в большом проекте с инициализированным контекстом. Допустим, у вас есть проект с файлом AGENTS.md, и вы хотите добавить функционал аутентификации пользователей. Вы запускаете OpenCode и просто описываете задачу: "Добавь аутентификацию через JWT токены с refresh механизмом". OpenCode, зная структуру проекта, используемые технологии и принятые соглашения по кодированию, может сразу предложить решение, которое органично вписывается в существующую кодовую базу.

Второй пример — работа над той же задачей без инициализации. В этом случае вам нужно сначала объяснить системе контекст: "Это REST API на FastAPI, используем SQLAlchemy для работы с базой данных, структура проекта — файлы моделей в models/, роутеры в routers/, схемы в schemas/. Добавь аутентификацию через JWT". Каждый раз при новой сессии работы эти пояснения придётся повторять заново, что значительно увеличивает время на подготовку к работе. Если вы забыли упомянуть какой-то важный аспект проекта, OpenCode может предложить решение, которое не соответствует принятым в проекте стандартам.

Третий пример — командная работа. Допустим, к вам присоединяется новый разработчик и клонирует репозиторий. Если в репозитории есть файл AGENTS.md, новый разработчик может сразу приступить к работе с OpenCode, который уже "знает" о проекте всё необходимое. Без этого файла новому члену команды пришлось бы сначала изучить проект, а затем объяснить OpenCode все его особенности, что замедляет процесс адаптации и может привести к неконсистентным результатам работы разных членов команды с OpenCode.

Четвёртый пример — быстрая задача. Вам нужно просто исправить опечатку в сообщении об ошибке. В этом случае использование /init не требуется — вы просто открываете нужный файл через @, находите опечатку и исправляете её. Вся задача занимает минуту и не требует глубокого понимания контекста проекта. Это хороший пример ситуации, когда простота и скорость важнее полноты контекста, и работа без инициализации является оптимальным выбором.

8. Рекомендации для разных сценариев

Исходя из проведённого анализа, можно сформулировать конкретные рекомендации по использованию /init для различных сценариев работы с OpenCode. Для долгосрочных личных проектов использование /init является оптимальным выбором. Даже если проект начинался как небольшой эксперимент, со временем он может вырасти в более сложную систему, и наличие сохранённого контекста значительно упростит работу в будущем. Рекомендуется выполнить /init в самом начале работы над проектом, сразу после создания базовой структуры, и периодически обновлять файл AGENTS.md по мере развития проекта и принятия новых архитектурных решений.

Для командной разработки использование /init и добавление AGENTS.md в репозиторий является настоятельно рекомендуемой практикой. Это обеспечивает единообразие работы всех участников команды с OpenCode, ускоряет адаптацию новых членов и поддерживает консистентность в генерируемом коде. Рекомендуется назначить ответственного за поддержание файла контекста в актуальном состоянии, который будет обновлять информацию при значимых изменениях в проекте. Также полезно проводить периодический аудит файла AGENTS.md всей командой, чтобы убедиться, что он отражает текущее состояние проекта.

Для экспериментов и прототипирования можно начинать работу без /init, а выполнить инициализацию только если проект переходит в стадию активной разработки. Это позволяет быстро начать работу и оценить потенциал идеи, не тратя время на настройку контекста. Если проект оказывается успешным и продолжает развиваться, тогда имеет смысл выполнить /init и создать полноценный контекст для дальнейшей работы. Такой подход экономит время на начальных этапах и позволяет сфокусироваться на проверке основных гипотез.

Для задач анализа и рефакторинга больших проектов использование /init особенно полезно, потому что эти задачи требуют глубокого понимания всей кодовой базы. OpenCode с сохранённым контекстом может эффективнее находить связанные файлы, понимать зависимости между компонентами и предлагать более качественные решения для рефакторинга. При проведении рекомендуется дополнить автоматически сгенерированный AGENTS.md вручную добавить информацию о проблемных участках кода, известных технических долгах и планируемых изменениях архитектуры.

9. Заключение

В этой статье мы подробно разобрали работу с контекстом в OpenCode, сравнили использование команды /init и работу без неё, рассмотрели структуру файла AGENTS.md и дали рекомендации для разных сценариев использования. Ключевой вывод таков: выбор подхода зависит от характера вашего проекта и задач, которые вы решаете. Для долгосрочных проектов с сложной структурой, особенно в командной работе, использование /init является оптимальным выбором, который окупается за счёт экономии времени и повышения качества работы с OpenCode.

Файл AGENTS.md становится настоящей "памятью" проекта, которая сохраняется между сессиями и помогает OpenCode давать более релевантные ответы. Его можно и нужно дополнять вручную, добавляя информацию, которую автоматический анализ мог пропустить. Совместное использование этого файла через систему контроля версий обеспечивает консистентность работы всей команды и ускоряет адаптацию новых участников. Однако для быстрых одноразовых задач полный анализ проекта может быть избыточным, и в таких случаях эффективнее работать без инициализации.

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


Дата: 8 февраля 2026