---
title: Введение
description: Начните работу с opencode.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console

[**opencode**](/) — это агент кодирования искусственного интеллекта с открытым исходным кодом. Он доступен в виде интерфейса на базе терминала, настольного приложения или расширения IDE.

![opencode TUI с темой opencode](../../../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**

        <Tabs>

      <TabItem label="npm">
      ```bash
      npm install -g opencode-ai
      ```

          </TabItem>

        <TabItem label="Bun">
        ```bash
        bun install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="pnpm">
        ```bash
        pnpm install -g opencode-ai
        ```

          </TabItem>

        <TabItem label="Yarn">
        ```bash
        yarn global add opencode-ai
        ```

      </TabItem>

  </Tabs>

- **Использование Homebrew в macOS и Linux**

  ```bash
  brew install anomalyco/tap/opencode
  ```

  > Мы рекомендуем использовать tap opencode для получения самых последних версий. Официальная формула `brew install opencode` поддерживается командой Homebrew и обновляется реже.

- **Использование Paru в Arch Linux**

  ```bash
  sudo pacman -S opencode           # Arch Linux (Stable)
  paru -S opencode-bin              # Arch Linux (Latest from AUR)
  ```

#### Windows

:::tip[Рекомендуется: используйте WSL]
Для наилучшей работы в Windows мы рекомендуем использовать [Подсистема Windows для Linux (WSL)](/docs/windows-wsl). Он обеспечивает лучшую производительность и полную совместимость с функциями opencode.
:::

- **Используя Chocolatey**

  ```bash
  choco install opencode
  ```

- **Использование Scoop**

  ```bash
  scoop install opencode
  ```

- **Использование NPM**

  ```bash
  npm install -g opencode-ai
  ```

- **Использование Mise**

  ```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"
   <TAB>
   ```

   Теперь давайте опишем, что мы хотим от него.

   ```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 достаточно подробностей, чтобы ему понять, чего вы хотите. Это помогает
   поговорить с ним так, как будто вы разговариваете с младшим разработчиком в своей команде.

   :::tip
   Дайте 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.
   ```

   :::tip
   Перетащите изображения в терминал, чтобы добавить их в подсказку.
   :::

   opencode может сканировать любые изображения, которые вы ему предоставляете, и добавлять их в командную строку. Вы можете
   сделать это, перетащив изображение в терминал.

3. **Создайте функцию**

   Как только вы почувствуете себя комфортно с планом, вернитесь в _режим сборки_,
   снова нажав клавишу **Tab**.

   ```bash frame="none"
   <TAB>
   ```

   И попросите его внести изменения.

   ```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).
