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.
opencodeOu você pode iniciá-la para um diretório de trabalho específico.
opencode /path/to/projectQuando 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.mdComandos Bash
Comece uma mensagem com ! para executar um comando de shell.
!ls -laA 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:
/helpA 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.
/connectcompact
Compacta a sessão atual. Alias: /summarize
/compactAtalho: ctrl+x c
details
Alterna os detalhes de execução das ferramentas.
/detailseditor
Abre um editor externo para compor mensagens. Usa o editor definido na sua variável de ambiente EDITOR. Saiba mais.
/editorAtalho: ctrl+x e
exit
Sai do OpenCode. Aliases: /quit, /q
/exitAtalho: 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.
/exportAtalho: ctrl+x x
help
Mostra a caixa de diálogo de ajuda.
/helpinit
Configuração guiada para criar ou atualizar o AGENTS.md. Saiba mais.
/initmodels
Lista os modelos disponíveis.
/modelsAtalho: ctrl+x m
new
Inicia uma nova sessão. Alias: /clear
/newAtalho: 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.
/redoAtalho: ctrl+x r
sessions
Lista e alterna entre sessões. Aliases: /resume, /continue
/sessionsAtalho: ctrl+x l
share
Compartilha a sessão atual. Saiba mais.
/sharethemes
Lista os temas disponíveis.
/themesAtalho: 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+tpara circular entre as variantes do modelo.
/thinkingundo
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.
/undoAtalho: ctrl+x u
unshare
Cancela o compartilhamento da sessão atual. Saiba mais.
/unshareConfiguraçã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 --waitPara 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 Codecursor- Cursorwindsurf- Windsurfnvim- Editor Neovimvim- Editor Vimnano- Editor Nanonotepad- Bloco de Notas do Windowssubl- 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).
{
"$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 sobrescroll_speede 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 sescroll_acceleration.enabledestiver definido comotrue.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 de0a1. 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 paradefault,question,permission,error,doneousubagent_done. Os caminhos podem ser absolutos, URLsfile://ou relativos aotui.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