Pular para o conteúdo
Docs de V1
Referências de arquivos

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.

Terminal
opencode

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

Terminal
opencode /path/to/project

Uma 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.

Terminal
!ls -la

A 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:

Terminal
/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.

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.

Terminal
/connect

Compacte a sessão atual. Alias: /summarize

Terminal
/compact

Atalho: ctrl+x c


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

Terminal
/editor

Atalho: ctrl+x e


Saia do opencode. Aliases: /quit, /q

Terminal
/exit

Atalho: 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.

Terminal
/export

Atalho: ctrl+x x


Mostre o diálogo de ajuda.

Terminal
/help

Atalho: ctrl+x h


Crie ou atualize o arquivo AGENTS.md. Saiba mais.

Terminal
/init

Atalho: ctrl+x i


Liste os modelos disponíveis.

Terminal
/models

Atalho: ctrl+x m


Inicie uma nova sessão. Alias: /clear

Terminal
/new

Atalho: 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.

Terminal
/redo

Atalho: ctrl+x r


Liste e alterne entre sessões. Aliases: /resume, /continue

Terminal
/sessions

Atalho: ctrl+x l


Liste os temas disponíveis.

Terminal
/themes

Atalho: 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.

Terminal
/thinking

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.

Internamente, isso usa Git para gerenciar as alterações de arquivo. Portanto, seu projeto precisa ser um repositório Git.

Terminal
/undo

Atalho: ctrl+x u


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

Terminal
# 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.

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

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).

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 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 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.
  • 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, de 0 a 1. 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 para default, question, permission, error, done ou subagent_done. Os caminhos podem ser absolutos, URLs file:// ou relativos a tui.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