File size: 10,276 Bytes
3e05655 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 | ---
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`.
<Tabs>
<TabItem label="Linux/macOS">
```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.
</TabItem>
<TabItem label="Windows (CMD)">
```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**.
</TabItem>
<TabItem label="Windows (PowerShell)">
```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.
</TabItem>
</Tabs>
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",
"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.
### Opções
- `theme` - Define o tema da sua interface. [Saiba mais](/docs/themes).
- `keybinds` - Personaliza atalhos de teclado. [Saiba mais](/docs/keybinds).
- `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
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`.
---
## 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
|