TUI
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.
opencodeOu você pode iniciá-lo para um diretório de trabalho específico.
opencode /path/to/projectUma vez que você esteja no TUI, você pode solicitar com uma mensagem.
Faça um resumo rápido da base de código.Você pode referenciar arquivos em suas mensagens usando @. Isso faz uma busca difusa de arquivos no diretório de trabalho atual.
Como a autenticação é tratada em @packages/functions/src/api/index.ts?O conteúdo do arquivo é adicionado à conversa automaticamente.
Comece uma mensagem com ! para executar um comando de shell.
!ls -laA saída do comando é adicionada à conversa como um resultado de ferramenta.
Ao usar o TUI do opencode, você pode digitar / seguido pelo nome de um comando para executar ações rapidamente. Por exemplo:
/helpA 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.
Aqui estão todos os comandos de barra disponíveis:
Adicione um provedor ao opencode. Permite que você selecione entre os provedores disponíveis e adicione suas chaves de API.
/connectCompacte a sessão atual. Alias: /summarize
/compactAtalho: ctrl+x c
Abra um editor externo para compor mensagens. Usa o editor definido na sua variável de ambiente EDITOR. Saiba mais.
/editorAtalho: ctrl+x e
Saia do opencode. Aliases: /quit, /q
/exitAtalho: ctrl+x q
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.
/exportAtalho: ctrl+x x
Mostre o diálogo de ajuda.
/helpAtalho: ctrl+x h
Crie ou atualize o arquivo AGENTS.md. Saiba mais.
/initAtalho: ctrl+x i
Liste os modelos disponíveis.
/modelsAtalho: ctrl+x m
Inicie uma nova sessão. Alias: /clear
/newAtalho: ctrl+x n
Refaça uma mensagem anteriormente desfeita. Disponível apenas após usar /undo.
Internamente, isso usa Git para gerenciar as alterações de arquivo. Portanto, seu projeto precisa ser um repositório Git.
/redoAtalho: ctrl+x r
Liste e alterne entre sessões. Aliases: /resume, /continue
/sessionsAtalho: ctrl+x l
Liste os temas disponíveis.
/themesAtalho: ctrl+x t
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.
/thinkingDesfaça a última mensagem na conversa. Remove a mensagem mais recente do usuário, todas as respostas subsequentes e quaisquer alterações de arquivo.
Internamente, isso usa Git para gerenciar as alterações de arquivo. Portanto, seu projeto precisa ser um repositório Git.
/undoAtalho: ctrl+x u
Tanto os comandos /editor quanto /export usam o editor especificado na sua variável de ambiente EDITOR.
# 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.
set EDITOR=notepad
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# inclua --wait
set EDITOR=code --waitPara torná-lo permanente, use Propriedades do Sistema > Variáveis de Ambiente.
$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 Codecursor- Cursorwindsurf- Windsurfnvim- Editor Neovimvim- Editor Vimnano- Editor Nanonotepad- Bloco de Notas do Windowssubl- Sublime Text
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.
Você pode personalizar o comportamento do TUI através de 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 do servidor/runtime.
keybinds é combinado com os padrões internos, então você só precisa configurar os atalhos que deseja alterar.
theme- Define o tema da sua interface. Saiba mais.keybinds- Personaliza atalhos de teclado. Saiba mais.leader_timeout- Controla por quanto tempo o OpenCode espera depois da leader key. O padrão é2000.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 sobrescroll_speede 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 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- Ativa ou desativa a captura do mouse no TUI (padrão:true). Quando desativado, o comportamento nativo do terminal para seleção e rolagem com o mouse é preservado.attention- Configura notificações de desktop e sons do TUI. Desativado por padrão.
Use OPENCODE_TUI_CONFIG para carregar um caminho de configuração TUI personalizado.
Attention permite que o TUI avise você quando o OpenCode espera uma resposta, precisa da aprovação de uma permissão, encontra um erro de sessão ou conclui uma sessão. Ative com attention.enabled; eventos integrados reproduzem sons quando acontecem. As notificações de desktop só são enviadas quando a janela do terminal não está em foco e não são usadas para eventos de subagent.
enabled- Ativa todas as notificações e sons de Attention. O padrão éfalse.notifications- Quando Attention está ativo, permite que o TUI envie notificações de desktop pelo terminal. O padrão étrue.sound- Quando Attention está ativo, permite reproduzir sons de aviso. O padrão étrue.volume- Volume padrão dos sons, de0a1. O padrão é0.4.sound_pack- ID do sound pack a ser usado. O padrão éopencode.default.sounds- Define arquivos de som personalizados paradefault,question,permission,error,doneousubagent_done. Os caminhos podem ser absolutos, URLsfile://ou relativos atui.json.
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