--- title: Введение description: Начните работу с OpenCode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" import config from "../../../../config.mjs" export const console = config.console [**OpenCode**](/) — это агент кодирования искусственного интеллекта с открытым исходным кодом. Он доступен в виде интерфейса на базе терминала, настольного приложения или расширения IDE. ![OpenCode TUI с темой открытого кода](../../../assets/lander/screenshot.png) Давайте начнем. --- #### Предварительные условия Чтобы использовать OpenCode в вашем терминале, вам понадобится: 1. Современный эмулятор терминала, например: - [WezTerm](https://wezterm.org), кроссплатформенный - [Alacritty](https://alacritty.org), кроссплатформенный - [Ghostty](https://ghostty.org), Linux и macOS - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux и macOS 2. Ключи API для поставщиков LLM, которых вы хотите использовать. --- ## Установить Самый простой способ установить OpenCode — через сценарий установки. ```bash curl -fsSL https://opencode.ai/install | bash ``` Вы также можете установить его с помощью следующих команд: - **Использование Node.js** ```bash npm install -g opencode-ai ``` ```bash bun install -g opencode-ai ``` ```bash pnpm install -g opencode-ai ``` ```bash yarn global add opencode-ai ``` - **Использование Homebrew в macOS и Linux** ```bash brew install anomalyco/tap/opencode ``` > Мы рекомендуем использовать кран OpenCode для получения самых последних версий. Официальная формула `brew install opencode` поддерживается командой Homebrew и обновляется реже. - **Использование Paru в Arch Linux** ```bash paru -S opencode-bin ``` #### Окна :::tip[Рекомендуется: используйте WSL] Для наилучшей работы в Windows мы рекомендуем использовать [Подсистема Windows для Linux (WSL)](/docs/windows-wsl). Он обеспечивает лучшую производительность и полную совместимость с функциями OpenCode. ::: - **Используя шоколадный** ```bash choco install opencode ``` - **Использование Scoop** ```bash scoop install opencode ``` - **Использование NPM** ```bash npm install -g opencode-ai ``` - **Использование Мизе** ```bash mise use -g github:anomalyco/opencode ``` - **Использование Docker** ```bash docker run -it --rm ghcr.io/anomalyco/opencode ``` В настоящее время находится поддержка установки OpenCode в Windows с помощью Bun. Вы также можете получить двоичный файл из файла [Releases](https://github.com/anomalyco/opencode/releases). --- ## Настроить С OpenCode вы можете использовать любого поставщика LLM, настроив его ключи API. Если вы новичок в использовании поставщиков LLM, мы рекомендуем использовать [OpenCode Zen](/docs/zen). Это тщательно подобранный список моделей, протестированных и проверенных OpenCode. команда. 1. Запустите команду `/connect` в TUI, выберите opencode и перейдите по адресу [opencode.ai/auth](https://opencode.ai/auth). ```txt /connect ``` 2. Войдите в систему, добавьте свои платежные данные и скопируйте ключ API. 3. Вставьте свой ключ API. ```txt ┌ API key │ │ └ enter ``` Альтернативно вы можете выбрать одного из других поставщиков. [Подробнее](/docs/providers#directory). --- ## Инициализировать Теперь, когда вы настроили поставщика, вы можете перейти к проекту, который над которым вы хотите работать. ```bash cd /path/to/project ``` И запустите OpenCode. ```bash opencode ``` Затем инициализируйте OpenCode для проекта, выполнив следующую команду. ```bash frame="none" /init ``` Это позволит OpenCode проанализировать ваш проект и создать файл `AGENTS.md` в корень проекта. :::tip Вам следует зафиксировать файл `AGENTS.md` вашего проекта в Git. ::: Это помогает OpenCode понять структуру проекта и шаблоны кодирования. использовал. --- ## Использование Теперь вы готовы использовать OpenCode для работы над своим проектом. Не стесняйтесь спрашивать это что-либо! Если вы новичок в использовании агента кодирования ИИ, вот несколько примеров, которые могут вам помочь. помощь. --- ### Задавайте вопросы Вы можете попросить OpenCode объяснить вам кодовую базу. :::tip Используйте ключ `@` для нечеткого поиска файлов в проекте. ::: ```txt frame="none" "@packages/functions/src/api/index.ts" How is authentication handled in @packages/functions/src/api/index.ts ``` Это полезно, если есть часть кодовой базы, над которой вы не работали. --- ### Добавить функции Вы можете попросить OpenCode добавить новые функции в ваш проект. Хотя мы сначала рекомендуем попросить его создать план. 1. **Составьте план** OpenCode имеет _режим планирования_, который отключает возможность вносить изменения и вместо этого предложите _как_ реализовать эту функцию. Переключитесь на него с помощью клавиши **Tab**. Вы увидите индикатор этого в правом нижнем углу. ```bash frame="none" title="Switch to Plan mode" ``` Теперь давайте опишем, что мы хотим от него. ```txt frame="none" When a user deletes a note, we'd like to flag it as deleted in the database. Then create a screen that shows all the recently deleted notes. From this screen, the user can undelete a note or permanently delete it. ``` Вы хотите предоставить OpenCode достаточно подробностей, чтобы понять, чего вы хотите. Это помогает поговорить с ним так, как будто вы разговариваете с младшим разработчиком в своей команде. :::кончик Дайте OpenCode много контекста и примеров, чтобы помочь ему понять, что вы хотеть. ::: 2. **Итерация плана** Как только он предоставит вам план, вы можете оставить ему отзыв или добавить более подробную информацию. ```txt frame="none" We'd like to design this new screen using a design I've used before. [Image #1] Take a look at this image and use it as a reference. ``` :::кончик Перетащите изображения в терминал, чтобы добавить их в подсказку. ::: OpenCode может сканировать любые изображения, которые вы ему предоставляете, и добавлять их в командную строку. Ты можешь сделайте это, перетащив изображение в терминал. 3. **Создайте функцию** Как только вы почувствуете себя комфортно с планом, вернитесь в _режим сборки_, снова нажав клавишу **Tab**. ```bash frame="none" ``` И попросить его внести изменения. ```bash frame="none" Sounds good! Go ahead and make the changes. ``` --- ### Внести изменения Для более простых изменений вы можете попросить OpenCode создать его напрямую. без необходимости предварительного рассмотрения плана. ```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts" We need to add authentication to the /settings route. Take a look at how this is handled in the /notes route in @packages/functions/src/notes.ts and implement the same logic in @packages/functions/src/settings.ts ``` Вы хотите убедиться, что вы предоставляете достаточно деталей, чтобы OpenCode сделал правильный выбор. изменения. --- ### Отменить изменения Допустим, вы просите OpenCode внести некоторые изменения. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` Но ты понимаешь, что это не то, чего ты хотел. Вы **можете отменить** изменения с помощью команды `/undo`. ```bash frame="none" /undo ``` OpenCode теперь отменит внесенные вами изменения и покажет исходное сообщение. снова. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @packages/functions/src/api/index.ts? ``` Отсюда вы можете настроить подсказку и попросить OpenCode повторить попытку. :::tip Вы можете запустить `/undo` несколько раз, чтобы отменить несколько изменений. ::: Или вы **можете повторить** изменения с помощью команды `/redo`. ```bash frame="none" /redo ``` --- ## Делиться Разговоры, которые вы ведете с OpenCode, можно [поделиться с вашим команда](/docs/share). ```bash frame="none" /share ``` Это создаст ссылку на текущий разговор и скопирует ее в буфер обмена. :::note По умолчанию общий доступ к беседам не предоставляется. ::: Вот [пример диалога](https://opencode.ai/s/4XP1fce5) с OpenCode. --- ## Настроить И все! Теперь вы профессионал в использовании OpenCode. Чтобы создать свою собственную, мы рекомендуем [выбрать тему](/docs/themes), [настроить привязки клавиш](/docs/keybinds), [настроить средства форматирования кода](/docs/formatters), [создать собственные команды](/docs/commands) или поиграться с файлом [OpenCode config](/docs/config).