O terminal é
a superfície nativa.
A TUI é onde o MVCode nasceu: uma interface completa dentro do terminal, com timeline, diffs, permissões e teclado em primeiro lugar. Rodar o binário abre a TUI no diretório atual.
mvcode # ou aponte para um projeto específico mvcode /caminho/do/projeto
01Conversando com o agente
Digite a mensagem e envie. Três prefixos mudam o comportamento do composer:
| Prefixo | Faz o quê |
|---|---|
| @ | Busca difusa de arquivos no projeto; o conteúdo entra na conversa. Referências configuradas também aparecem — @alias/ autocompleta dentro delas. |
| ! | Executa um comando de shell e adiciona a saída como resultado de ferramenta. Ex.: !ls -la. |
| / | Comandos da TUI — a lista completa está abaixo. |
02Modos: plan e build
Alterne com Tab. No modo plan, edições ficam bloqueadas por permissão e o agente devolve um plano; no build, ele aplica as mudanças. Use ctrl+t para alternar variantes do modelo (com e sem reasoning estendido).
03Comandos
Digite / seguido do nome. A maioria tem atalho com a leader key ctrl+x — remapeável em atalhos.
| Comando | Ação | Atalho |
|---|---|---|
| /connect | Adicionar provedor e chave de API | — |
| /models | Listar e trocar modelos | ctrl+x m |
| /new | Nova sessão (alias /clear) | ctrl+x n |
| /sessions | Listar e alternar sessões (/resume, /continue) | ctrl+x l |
| /undo · /redo | Desfazer e refazer mudanças (requer repositório Git) | ctrl+x u · r |
| /compact | Compactar a sessão (/summarize) | ctrl+x c |
| /details | Alternar detalhes de execução das ferramentas | — |
| /thinking | Mostrar ou ocultar blocos de reasoning | — |
| /editor | Compor a mensagem no seu $EDITOR | ctrl+x e |
| /export | Exportar a conversa em Markdown | ctrl+x x |
| /share · /unshare | Compartilhar a sessão · remover o link | — |
| /init | Criar ou atualizar o AGENTS.md | — |
| /themes | Trocar tema | ctrl+x t |
| /help | Ajuda | — |
| /exit | Sair (/quit, /q) | ctrl+x q |
/undo remove a última mensagem, as respostas e as mudanças de arquivo — via snapshots Git. O projeto precisa ser um repositório Git.
04Power-user Implementado
- Vim mode Em rollout — navegação modal no composer, atrás da flag
vim_mode(desligada por padrão). Motionss/S/xe realce visual chegam na próxima rodada. - Copy-mode — selecione e copie qualquer trecho da timeline sem tocar o mouse.
- Densidade — alterne entre timeline confortável e compacta pela command palette.
- Spinner — o indicador de thinking aceita estilo
blocksoudiamondsviaspinner.main_style. - Quick-switch — sessões e pinned via palette; a árvore da sessão mostra subagentes e recuperação.
05Editor externo
/editor e /export usam o editor da variável EDITOR:
export EDITOR="code --wait" # GUI (VS Code, Cursor, Zed…) precisa do --wait; vim/nano dispensam
06Configuração da TUI
O comportamento visual da TUI vive em um arquivo próprio, tui.json{,c} — separado da config do runtime. Os keybinds se mesclam com os padrões; declare só o que muda. Use MVCODE_TUI_CONFIG para apontar um caminho customizado.
{
"theme": "maxvision",
"leader_timeout": 2000,
"keybinds": { "leader": "ctrl+x", "command_list": "ctrl+p" },
"scroll_speed": 3,
"diff_style": "auto",
"mouse": true,
"vim_mode": false,
"attention": {
"enabled": true,
"notifications": true,
"sound": true,
"volume": 0.4
}
}| Opção | Efeito | Default |
|---|---|---|
| theme | Tema visual — veja temas | maxvision |
| leader_timeout | Espera após a leader key, em ms | 2000 |
| scroll_speed | Velocidade de scroll (ignorada com aceleração ativa) | 3 |
| scroll_acceleration.enabled | Aceleração estilo macOS; tem precedência sobre scroll_speed | false |
| diff_style | auto adapta à largura · stacked força coluna única | auto |
| mouse | Captura de mouse; desligada preserva a seleção nativa do terminal | true |
| attention | Notificações e sons para perguntas, permissões, erros e conclusão | false |
O $schema do tui.json permanece em https://opencode.ai/tui.json — é o schema de validação herdado do núcleo e mantê-lo garante autocomplete no editor. O sound pack padrão também preserva o id opencode.default.
