--- title: Introdução description: Comece a usar 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 de IA de código aberto. Está disponível como uma interface baseada em terminal, aplicativo desktop ou extensão de IDE. ![opencode TUI com o tema opencode](../../../assets/lander/screenshot.png) 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. --- ## Instalação 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** ```bash npm install -g opencode-ai ``` ```bash bun install -g opencode-ai ``` ```bash pnpm install -g opencode-ai ``` ```bash yarn global add opencode-ai ``` - **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). --- ## Configuração 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 ┌ API key │ │ └ enter ``` Alternativamente, você pode selecionar um dos outros provedores. [Saiba mais](/docs/providers#directory). --- ## Inicialização Agora que você configurou um provedor, pode navegar até um projeto no qual deseja trabalhar. ```bash cd /path/to/project ``` 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 de IA, aqui estão alguns exemplos que podem ajudar. --- ### Fazendo 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" How is authentication handled in @packages/functions/src/api/index.ts ``` Isso é útil se houver uma parte da base de código na qual você não trabalhou. --- ### Adicionando 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="Switch to Plan mode" ``` Agora vamos descrever o que queremos que ele faça. ```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. ``` 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" 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 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" ``` E peça para ele fazer as alterações. ```bash frame="none" Sounds good! Go ahead and make the changes. ``` --- ### Fazendo 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" 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 ``` Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o opencode faça as alterações corretas. --- ### Desfazendo alterações Vamos supor que você peça ao opencode para fazer algumas alterações. ```txt frame="none" "@packages/functions/src/api/index.ts" Can you refactor the function in @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" Can you refactor the function in @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 ``` --- ## Compartilhamento 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. --- ## Personalização 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).