360 lines
12 KiB
Plaintext
360 lines
12 KiB
Plaintext
---
|
||
title: Введение
|
||
description: Начните работу с OpenCode.
|
||
---
|
||
|
||
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
||
import config from "../../../../config.mjs"
|
||
export const console = config.console
|
||
|
||
[**OpenCode**](/) — это агент кодирования искусственного интеллекта с открытым исходным кодом. Он доступен в виде интерфейса на базе терминала, настольного приложения или расширения IDE.
|
||
|
||

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