Português
Documentação
TUI

TUI

Usando a interface de usuário de terminal do OpenCode.

O OpenCode oferece uma interface interativa de terminal, ou TUI, para trabalhar nos seus projetos com um LLM.

Executar o OpenCode inicia a TUI para o diretório atual.

opencode

Ou você pode iniciá-la para um diretório de trabalho específico.

opencode /path/to/project

Quando estiver na TUI, você pode enviar uma mensagem como prompt.

Give me a quick summary of the codebase.

Referências de arquivos

Você pode referenciar arquivos nas suas mensagens usando @. Isso faz uma busca difusa de arquivos no diretório de trabalho atual.

Dica: Você também pode usar @ para referenciar arquivos nas suas mensagens.

How is auth handled in @packages/functions/src/api/index.ts?

O conteúdo do arquivo é adicionado automaticamente à conversa.

As referências configuradas também aparecem no autocompletar de @. Digite @alias para adicionar a raiz da referência como contexto, ou digite @alias/ para autocompletar arquivos dentro daquela referência.

Compare our setup with @docs/README.md

Comandos Bash

Comece uma mensagem com ! para executar um comando de shell.

!ls -la

A saída do comando é adicionada à conversa como um resultado de ferramenta.


Comandos

Ao usar a TUI do OpenCode, você pode digitar / seguido do nome de um comando para executar ações rapidamente. Por exemplo:

/help

A maioria dos comandos também tem atalhos de teclado usando ctrl+x como a tecla líder padrão. Saiba mais.

Aqui estão todos os comandos de barra disponíveis:


connect

Adiciona um provedor ao OpenCode. Permite que você selecione entre os provedores disponíveis e adicione suas chaves de API.

/connect

compact

Compacta a sessão atual. Alias: /summarize

/compact

Atalho: ctrl+x c


details

Alterna os detalhes de execução das ferramentas.

/details

editor

Abre um editor externo para compor mensagens. Usa o editor definido na sua variável de ambiente EDITOR. Saiba mais.

/editor

Atalho: ctrl+x e


exit

Sai do OpenCode. Aliases: /quit, /q

/exit

Atalho: ctrl+x q


export

Exporta a conversa atual para Markdown e abre no seu editor padrão. Usa o editor definido na sua variável de ambiente EDITOR. Saiba mais.

/export

Atalho: ctrl+x x


help

Mostra a caixa de diálogo de ajuda.

/help

init

Configuração guiada para criar ou atualizar o AGENTS.md. Saiba mais.

/init

models

Lista os modelos disponíveis.

/models

Atalho: ctrl+x m


new

Inicia uma nova sessão. Alias: /clear

/new

Atalho: ctrl+x n


redo

Refaz uma mensagem desfeita anteriormente. Disponível apenas após o uso de /undo.

Dica: Quaisquer alterações em arquivos também serão restauradas.

Internamente, isso usa o Git para gerenciar as alterações em arquivos. Por isso, seu projeto precisa ser um repositório Git.

/redo

Atalho: ctrl+x r


sessions

Lista e alterna entre sessões. Aliases: /resume, /continue

/sessions

Atalho: ctrl+x l


share

Compartilha a sessão atual. Saiba mais.

/share

themes

Lista os temas disponíveis.

/themes

Atalho: ctrl+x t


thinking

Alterna a visibilidade dos blocos de raciocínio/pensamento na conversa. Quando habilitado, você pode ver o processo de raciocínio do modelo para modelos que suportam pensamento estendido.

Nota: Este comando controla apenas se os blocos de pensamento são exibidos — ele não habilita nem desabilita as capacidades de raciocínio do modelo. Para alternar as capacidades reais de raciocínio, use ctrl+t para circular entre as variantes do modelo.

/thinking

undo

Desfaz a última mensagem da conversa. Remove a mensagem do usuário mais recente, todas as respostas subsequentes e quaisquer alterações em arquivos.

Dica: Quaisquer alterações feitas em arquivos também serão revertidas.

Internamente, isso usa o Git para gerenciar as alterações em arquivos. Por isso, seu projeto precisa ser um repositório Git.

/undo

Atalho: ctrl+x u


unshare

Cancela o compartilhamento da sessão atual. Saiba mais.

/unshare

Configuração do editor

Tanto o comando /editor quanto o /export usam o editor especificado na sua variável de ambiente EDITOR.

Linux/macOS

# Example for nano or vim
export EDITOR=nano
export EDITOR=vim
 
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
export EDITOR="code --wait"

Para torná-lo permanente, adicione isto ao perfil do seu shell; ~/.bashrc, ~/.zshrc, etc.

Windows (CMD)

set EDITOR=notepad
 
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set EDITOR=code --wait

Para torná-lo permanente, use Propriedades do Sistema > Variáveis de Ambiente.

Windows (PowerShell)

$env:EDITOR = "notepad"
 
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
$env:EDITOR = "code --wait"

Para torná-lo permanente, adicione isto ao seu perfil do PowerShell.

Opções populares de editor incluem:

  • code - Visual Studio Code
  • cursor - Cursor
  • windsurf - Windsurf
  • nvim - Editor Neovim
  • vim - Editor Vim
  • nano - Editor Nano
  • notepad - Bloco de Notas do Windows
  • subl - Sublime Text

Nota: 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 o processo do editor bloquear até ser fechado.


Configurar

Você pode personalizar o comportamento da TUI através do tui.json (ou tui.jsonc).

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "opencode",
  "leader_timeout": 2000,
  "keybinds": {
    "leader": "ctrl+x",
    "command_list": "ctrl+p"
  },
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": false
  },
  "diff_style": "auto",
  "mouse": true,
  "attention": {
    "enabled": true,
    "notifications": true,
    "sound": true,
    "volume": 0.4,
    "sound_pack": "opencode.default",
    "sounds": {
      "error": "./sounds/error.mp3"
    }
  }
}

Isso é separado do opencode.json, que configura o comportamento de servidor/runtime.

keybinds é mesclado com os padrões integrados, então você só precisa configurar os atalhos que deseja alterar.

Opções

  • theme - Define o tema da sua UI. Saiba mais .
  • keybinds - Personaliza os atalhos de teclado. Saiba mais .
  • leader_timeout - Controla quanto tempo o OpenCode espera após a tecla líder. O padrão é 2000 .
  • scroll_acceleration.enabled - Habilita a aceleração de rolagem no estilo macOS para uma rolagem suave e natural. Quando habilitada, 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 sobrescreve quando habilitada.
  • scroll_speed - Controla a velocidade com que a TUI rola ao usar os comandos de rolagem (mínimo: 0.001 , suporta valores decimais). O padrão é 3 . Nota: Isto é 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.
  • mouse - Habilita ou desabilita a captura do mouse na TUI (padrão: true ). Quando desabilitada, o comportamento nativo de seleção/rolagem com o mouse do terminal é preservado.
  • attention - Configura as notificações de desktop e os sons da TUI. Desabilitado por padrão.

Use OPENCODE_TUI_CONFIG para carregar um caminho de configuração de TUI personalizado.

Attention

A TUI pode solicitar atenção para perguntas, permissões, erros de sessão e sessões concluídas. Habilite-a com attention.enabled; os eventos integrados tocam sons quando acionados, e os eventos que não são de subagentes solicitam notificações de desktop apenas quando o terminal está sem foco.

  • enabled - Habilita todas as notificações e sons de atenção. O padrão é false .
  • notifications - Permite notificações de desktop mediadas pelo terminal quando a atenção está habilitada. O padrão é true .
  • sound - Permite sons de atenção quando a atenção está habilitada. O padrão é true .
  • volume - Volume de som padrão de 0 a 1 . O padrão é 0.4 .
  • sound_pack - ID do pacote de sons a ser usado. O padrão é opencode.default .
  • sounds - Sobrescreve os arquivos de som para default , question , permission , error , done ou subagent_done . Os caminhos podem ser absolutos, URLs file:// ou relativos ao tui.json .

Personalização

Você pode personalizar vários aspectos da visualização da TUI usando a paleta de comandos (ctrl+p). Essas configurações persistem entre reinicializações.


Exibição do nome de usuário

Alterna se o seu nome de usuário aparece nas mensagens do chat. Acesse isto através de:

  • Paleta de comandos: Pesquise por "username" ou "hide username"
  • A configuração persiste automaticamente e será lembrada entre as sessões da TUI