342 lines
8.8 KiB
Plaintext
342 lines
8.8 KiB
Plaintext
---
|
|
title: Introdução
|
|
description: Comece com o OpenCode.
|
|
---
|
|
|
|
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
|
import config from "../../../../config.mjs"
|
|
export const console = config.console
|
|
|
|
[**OpenCode**](/) é um agente de codificação AI de código aberto. Está disponível como uma interface baseada em terminal, aplicativo desktop ou extensão de IDE.
|
|
|
|

|
|
|
|
Vamos começar.
|
|
|
|
---
|
|
|
|
#### Pré-requisitos
|
|
|
|
Para usar o OpenCode no seu terminal, você precisará de:
|
|
|
|
1. Um emulador de terminal moderno como:
|
|
- [WezTerm](https://wezterm.org), multiplataforma
|
|
- [Alacritty](https://alacritty.org), multiplataforma
|
|
- [Ghostty](https://ghostty.org), Linux e macOS
|
|
- [Kitty](https://sw.kovidgoyal.net/kitty/), Linux e macOS
|
|
|
|
2. Chaves de API para os provedores de LLM que você deseja usar.
|
|
|
|
---
|
|
|
|
## Instalar
|
|
|
|
A maneira mais fácil de instalar o OpenCode é através do script de instalação.
|
|
|
|
```bash
|
|
curl -fsSL https://opencode.ai/install | bash
|
|
```
|
|
|
|
Você também pode instalá-lo com os seguintes comandos:
|
|
|
|
- **Usando 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>
|
|
|
|
- **Usando Homebrew no macOS e Linux**
|
|
|
|
```bash
|
|
brew install anomalyco/tap/opencode
|
|
```
|
|
|
|
> Recomendamos usar o tap do OpenCode para as versões mais atualizadas. A fórmula oficial `brew install opencode` é mantida pela equipe do Homebrew e é atualizada com menos frequência.
|
|
|
|
- **Usando Paru no Arch Linux**
|
|
|
|
```bash
|
|
paru -S opencode-bin
|
|
```
|
|
|
|
#### Windows
|
|
|
|
:::tip[Recomendado: Use WSL]
|
|
Para a melhor experiência no Windows, recomendamos usar o [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Ele oferece melhor desempenho e total compatibilidade com os recursos do OpenCode.
|
|
:::
|
|
|
|
- **Usando Chocolatey**
|
|
|
|
```bash
|
|
choco install opencode
|
|
```
|
|
|
|
- **Usando Scoop**
|
|
|
|
```bash
|
|
scoop install opencode
|
|
```
|
|
|
|
- **Usando NPM**
|
|
|
|
```bash
|
|
npm install -g opencode-ai
|
|
```
|
|
|
|
- **Usando Mise**
|
|
|
|
```bash
|
|
mise use -g github:anomalyco/opencode
|
|
```
|
|
|
|
- **Usando Docker**
|
|
|
|
```bash
|
|
docker run -it --rm ghcr.io/anomalyco/opencode
|
|
```
|
|
|
|
O suporte para instalar o OpenCode no Windows usando Bun está atualmente em andamento.
|
|
|
|
Você também pode baixar o binário na seção [Releases](https://github.com/anomalyco/opencode/releases).
|
|
|
|
---
|
|
|
|
## Configurar
|
|
|
|
Com o OpenCode, você pode usar qualquer provedor de LLM configurando suas chaves de API.
|
|
|
|
Se você é novo no uso de provedores de LLM, recomendamos usar o [OpenCode Zen](/docs/zen).
|
|
É uma lista selecionada de modelos que foram testados e verificados pela equipe do OpenCode.
|
|
|
|
1. Execute o comando `/connect` no TUI, selecione opencode e acesse [opencode.ai/auth](https://opencode.ai/auth).
|
|
|
|
```txt
|
|
/connect
|
|
```
|
|
|
|
2. Faça login, adicione seus dados de cobrança e copie sua chave de API.
|
|
|
|
3. Cole sua chave de API.
|
|
|
|
```txt
|
|
┌ Chave de API
|
|
│
|
|
│
|
|
└ enter
|
|
```
|
|
|
|
Alternativamente, você pode selecionar um dos outros provedores. [Saiba mais](/docs/providers#directory).
|
|
|
|
---
|
|
|
|
## Inicializar
|
|
|
|
Agora que você configurou um provedor, pode navegar até um projeto no qual deseja trabalhar.
|
|
|
|
```bash
|
|
cd /caminho/para/projeto
|
|
```
|
|
|
|
E execute o OpenCode.
|
|
|
|
```bash
|
|
opencode
|
|
```
|
|
|
|
Em seguida, inicialize o OpenCode para o projeto executando o seguinte comando.
|
|
|
|
```bash frame="none"
|
|
/init
|
|
```
|
|
|
|
Isso fará com que o OpenCode analise seu projeto e crie um arquivo `AGENTS.md` na raiz do projeto.
|
|
|
|
:::tip
|
|
Você deve commitar o arquivo `AGENTS.md` do seu projeto no Git.
|
|
:::
|
|
|
|
Isso ajuda o OpenCode a entender a estrutura do projeto e os padrões de codificação utilizados.
|
|
|
|
---
|
|
|
|
## Uso
|
|
|
|
Agora você está pronto para usar o OpenCode para trabalhar em seu projeto. Sinta-se à vontade para perguntar qualquer coisa!
|
|
|
|
Se você é novo no uso de um agente de codificação AI, aqui estão alguns exemplos que podem ajudar.
|
|
|
|
---
|
|
|
|
### Fazer perguntas
|
|
|
|
Você pode pedir ao OpenCode para explicar a base de código para você.
|
|
|
|
:::tip
|
|
Use a tecla `@` para buscar arquivos no projeto.
|
|
:::
|
|
|
|
```txt frame="none" "@packages/functions/src/api/index.ts"
|
|
Como a autenticação é tratada em @packages/functions/src/api/index.ts
|
|
```
|
|
|
|
Isso é útil se houver uma parte da base de código na qual você não trabalhou.
|
|
|
|
---
|
|
|
|
### Adicionar recursos
|
|
|
|
Você pode pedir ao OpenCode para adicionar novos recursos ao seu projeto. Embora primeiro recomendemos pedir para ele criar um plano.
|
|
|
|
1. **Criar um plano**
|
|
|
|
O OpenCode tem um _Modo de Plano_ que desabilita sua capacidade de fazer alterações e, em vez disso, sugere _como_ implementará o recurso.
|
|
|
|
Mude para ele usando a tecla **Tab**. Você verá um indicador para isso no canto inferior direito.
|
|
|
|
```bash frame="none" title="Mudar para o modo de plano"
|
|
<TAB>
|
|
```
|
|
|
|
Agora vamos descrever o que queremos que ele faça.
|
|
|
|
```txt frame="none"
|
|
Quando um usuário excluir uma nota, gostaríamos de marcá-la como excluída no banco de dados.
|
|
Em seguida, crie uma tela que mostre todas as notas recentemente excluídas.
|
|
A partir dessa tela, o usuário pode restaurar uma nota ou excluí-la permanentemente.
|
|
```
|
|
|
|
Você quer dar ao OpenCode detalhes suficientes para entender o que você deseja. Ajuda conversar com ele como se você estivesse falando com um desenvolvedor júnior da sua equipe.
|
|
|
|
:::tip
|
|
Dê ao OpenCode bastante contexto e exemplos para ajudá-lo a entender o que você deseja.
|
|
:::
|
|
|
|
2. **Iterar sobre o plano**
|
|
|
|
Uma vez que ele lhe der um plano, você pode dar feedback ou adicionar mais detalhes.
|
|
|
|
```txt frame="none"
|
|
Gostaríamos de projetar essa nova tela usando um design que já usei antes.
|
|
[Imagem #1] Dê uma olhada nesta imagem e use-a como referência.
|
|
```
|
|
|
|
:::tip
|
|
Arraste e solte imagens no terminal para adicioná-las ao prompt.
|
|
:::
|
|
|
|
O OpenCode pode escanear qualquer imagem que você fornecer e adicioná-la ao prompt. Você pode fazer isso arrastando e soltando uma imagem no terminal.
|
|
|
|
3. **Construir o recurso**
|
|
|
|
Uma vez que você se sinta confortável com o plano, volte para o _Modo de Construção_ pressionando a tecla **Tab** novamente.
|
|
|
|
```bash frame="none"
|
|
<TAB>
|
|
```
|
|
|
|
E peça para ele fazer as alterações.
|
|
|
|
```bash frame="none"
|
|
Parece bom! Vá em frente e faça as alterações.
|
|
```
|
|
|
|
---
|
|
|
|
### Fazer alterações
|
|
|
|
Para alterações mais simples, você pode pedir ao OpenCode para construí-las diretamente sem precisar revisar o plano primeiro.
|
|
|
|
```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
|
|
Precisamos adicionar autenticação à rota /settings. Dê uma olhada em como isso é tratado na rota /notes em @packages/functions/src/notes.ts e implemente a mesma lógica em @packages/functions/src/settings.ts
|
|
```
|
|
|
|
Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o OpenCode faça as alterações corretas.
|
|
|
|
---
|
|
|
|
### Desfazer alterações
|
|
|
|
Vamos supor que você peça ao OpenCode para fazer algumas alterações.
|
|
|
|
```txt frame="none" "@packages/functions/src/api/index.ts"
|
|
Você pode refatorar a função em @packages/functions/src/api/index.ts?
|
|
```
|
|
|
|
Mas você percebe que não era isso que você queria. Você **pode desfazer** as alterações usando o comando `/undo`.
|
|
|
|
```bash frame="none"
|
|
/undo
|
|
```
|
|
|
|
O OpenCode agora reverterá as alterações que você fez e mostrará sua mensagem original novamente.
|
|
|
|
```txt frame="none" "@packages/functions/src/api/index.ts"
|
|
Você pode refatorar a função em @packages/functions/src/api/index.ts?
|
|
```
|
|
|
|
A partir daqui, você pode ajustar o prompt e pedir ao OpenCode para tentar novamente.
|
|
|
|
:::tip
|
|
Você pode executar `/undo` várias vezes para desfazer várias alterações.
|
|
:::
|
|
|
|
Ou você **pode refazer** as alterações usando o comando `/redo`.
|
|
|
|
```bash frame="none"
|
|
/redo
|
|
```
|
|
|
|
---
|
|
|
|
## Compartilhar
|
|
|
|
As conversas que você tem com o OpenCode podem ser [compartilhadas com sua equipe](/docs/share).
|
|
|
|
```bash frame="none"
|
|
/share
|
|
```
|
|
|
|
Isso criará um link para a conversa atual e o copiará para sua área de transferência.
|
|
|
|
:::note
|
|
As conversas não são compartilhadas por padrão.
|
|
:::
|
|
|
|
Aqui está uma [conversa de exemplo](https://opencode.ai/s/4XP1fce5) com o OpenCode.
|
|
|
|
---
|
|
|
|
## Personalizar
|
|
|
|
E é isso! Agora você é um profissional em usar o OpenCode.
|
|
|
|
Para torná-lo seu, recomendamos [escolher um tema](/docs/themes), [personalizar os atalhos de teclado](/docs/keybinds), [configurar formatadores de código](/docs/formatters), [criar comandos personalizados](/docs/commands) ou brincar com a [configuração do OpenCode](/docs/config).
|