--- title: TUI description: Usando a interface de usuário de terminal opencode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" O opencode fornece uma interface de terminal interativa ou TUI para trabalhar em seus projetos com um LLM. Executar opencode inicia o TUI para o diretório atual. ```bash opencode ``` Ou você pode iniciá-lo para um diretório de trabalho específico. ```bash opencode /path/to/project ``` Uma vez que você esteja no TUI, você pode solicitar com uma mensagem. ```text Faça um resumo rápido da base de código. ``` --- ## Referências de arquivos Você pode referenciar arquivos em suas mensagens usando `@`. Isso faz uma busca difusa de arquivos no diretório de trabalho atual. :::tip Você também pode usar `@` para referenciar arquivos em suas mensagens. ::: ```text "@packages/functions/src/api/index.ts" Como a autenticação é tratada em @packages/functions/src/api/index.ts? ``` O conteúdo do arquivo é adicionado à conversa automaticamente. --- ## Comandos Bash Comece uma mensagem com `!` para executar um comando de shell. ```bash frame="none" !ls -la ``` A saída do comando é adicionada à conversa como um resultado de ferramenta. --- ## Comandos Ao usar o TUI do opencode, você pode digitar `/` seguido pelo nome de um comando para executar ações rapidamente. Por exemplo: ```bash frame="none" /help ``` A maioria dos comandos também possui atalhos usando `ctrl+x` como a tecla líder, onde `ctrl+x` é a tecla líder padrão. [Saiba mais](/docs/keybinds). Aqui estão todos os comandos de barra disponíveis: --- ### connect Adicione um provedor ao opencode. Permite que você selecione entre os provedores disponíveis e adicione suas chaves de API. ```bash frame="none" /connect ``` --- ### compact Compacte a sessão atual. _Alias_: `/summarize` ```bash frame="none" /compact ``` **Atalho:** `ctrl+x c` --- ### details Alternar detalhes da execução da ferramenta. ```bash frame="none" /details ``` **Atalho:** `ctrl+x d` --- ### editor Abra um editor externo para compor mensagens. Usa o editor definido na sua variável de ambiente `EDITOR`. [Saiba mais](#editor-setup). ```bash frame="none" /editor ``` **Atalho:** `ctrl+x e` --- ### exit Saia do opencode. _Aliases_: `/quit`, `/q` ```bash frame="none" /exit ``` **Atalho:** `ctrl+x q` --- ### export Exporte a conversa atual para Markdown e abra no seu editor padrão. Usa o editor definido na sua variável de ambiente `EDITOR`. [Saiba mais](#editor-setup). ```bash frame="none" /export ``` **Atalho:** `ctrl+x x` --- ### help Mostre o diálogo de ajuda. ```bash frame="none" /help ``` **Atalho:** `ctrl+x h` --- ### init Crie ou atualize o arquivo `AGENTS.md`. [Saiba mais](/docs/rules). ```bash frame="none" /init ``` **Atalho:** `ctrl+x i` --- ### models Liste os modelos disponíveis. ```bash frame="none" /models ``` **Atalho:** `ctrl+x m` --- ### new Inicie uma nova sessão. _Alias_: `/clear` ```bash frame="none" /new ``` **Atalho:** `ctrl+x n` --- ### redo Refaça uma mensagem anteriormente desfeita. Disponível apenas após usar `/undo`. :::tip Quaisquer alterações de arquivo também serão restauradas. ::: Internamente, isso usa Git para gerenciar as alterações de arquivo. Portanto, seu projeto **precisa ser um repositório Git**. ```bash frame="none" /redo ``` **Atalho:** `ctrl+x r` --- ### sessions Liste e alterne entre sessões. _Aliases_: `/resume`, `/continue` ```bash frame="none" /sessions ``` **Atalho:** `ctrl+x l` --- ### share Compartilhe a sessão atual. [Saiba mais](/docs/share). ```bash frame="none" /share ``` **Atalho:** `ctrl+x s` --- ### themes Liste os temas disponíveis. ```bash frame="none" /themes ``` **Atalho:** `ctrl+x t` --- ### thinking Alternar a visibilidade dos blocos de pensamento/razão na conversa. Quando ativado, você pode ver o processo de raciocínio do modelo para modelos que suportam pensamento estendido. :::note Este comando apenas controla se os blocos de pensamento são **exibidos** - não ativa ou desativa as capacidades de raciocínio do modelo. Para alternar as capacidades reais de raciocínio, use `ctrl+t` para alternar entre variantes do modelo. ::: ```bash frame="none" /thinking ``` --- ### undo Desfaça a última mensagem na conversa. Remove a mensagem mais recente do usuário, todas as respostas subsequentes e quaisquer alterações de arquivo. :::tip Quaisquer alterações de arquivo feitas também serão revertidas. ::: Internamente, isso usa Git para gerenciar as alterações de arquivo. Portanto, seu projeto **precisa ser um repositório Git**. ```bash frame="none" /undo ``` **Atalho:** `ctrl+x u` --- ### unshare Descompartilhe a sessão atual. [Saiba mais](/docs/share#un-sharing). ```bash frame="none" /unshare ``` --- ## Configuração do Editor Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua variável de ambiente `EDITOR`. ```bash # Exemplo para nano ou vim export EDITOR=nano export EDITOR=vim # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # inclua --wait export EDITOR="code --wait" ``` Para torná-lo permanente, adicione isso ao seu perfil de shell; `~/.bashrc`, `~/.zshrc`, etc. ```bash set EDITOR=notepad # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # inclua --wait set EDITOR=code --wait ``` Para torná-lo permanente, use **Propriedades do Sistema** > **Variáveis de Ambiente**. ```powershell $env:EDITOR = "notepad" # Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # inclua --wait $env:EDITOR = "code --wait" ``` Para torná-lo permanente, adicione isso ao seu perfil do PowerShell. As opções de editor populares incluem: - `code` - VS Code - `cursor` - Cursor - `windsurf` - Windsurf - `nvim` - Editor Neovim - `vim` - Editor Vim - `nano` - Editor Nano - `notepad` - Bloco de Notas do Windows - `subl` - Sublime Text :::note Alguns editores como o VS Code precisam ser iniciados com a flag `--wait`. ::: Alguns editores precisam de argumentos de linha de comando para rodar em modo bloqueante. A flag `--wait` faz com que o processo do editor bloqueie até ser fechado. --- ## Configuração Você pode personalizar o comportamento do TUI através de `tui.json` (ou `tui.jsonc`). ```json title="tui.json" { "$schema": "https://opencode.ai/tui.json", "theme": "opencode", "keybinds": { "leader": "ctrl+x" }, "scroll_speed": 3, "scroll_acceleration": { "enabled": true }, "diff_style": "auto" } ``` Isso é separado do `opencode.json`, que configura o comportamento do servidor/runtime. ### Opções - `theme` - Define o tema da sua interface. [Saiba mais](/docs/themes). - `keybinds` - Personaliza atalhos de teclado. [Saiba mais](/docs/keybinds). - `scroll_acceleration.enabled` - Ative a aceleração de rolagem no estilo macOS para uma rolagem suave e natural. Quando ativado, a velocidade de rolagem aumenta com gestos de rolagem rápidos e permanece precisa para movimentos mais lentos. **Esta configuração tem precedência sobre `scroll_speed` e a substitui quando ativada.** - `scroll_speed` - Controla quão rápido o TUI rola ao usar comandos de rolagem (mínimo: `0.001`, suporta valores decimais). O padrão é `3`. **Nota: Isso é ignorado se `scroll_acceleration.enabled` estiver definido como `true`.** - `diff_style` - Controla a renderização de diffs. `"auto"` se adapta à largura do terminal, `"stacked"` sempre mostra um layout de coluna única. Use `OPENCODE_TUI_CONFIG` para carregar um caminho de configuração TUI personalizado. --- ## Personalização Você pode personalizar vários aspectos da visualização do TUI usando a paleta de comandos (`ctrl+x h` ou `/help`). Essas configurações persistem entre reinicializações. --- #### Exibição do nome de usuário Alternar se seu nome de usuário aparece nas mensagens de chat. Acesse isso através de: - Paleta de comandos: Pesquise por "username" ou "hide username" - A configuração persiste automaticamente e será lembrada entre as sessões do TUI