O teclado é
o volante.
Cada ação da TUI tem um keybind nomeado, remapeável no tui.json. A leader key evita conflito com o terminal — e o which-key mostra o mapa quando a memória falha.
01Leader key
O padrão é ctrl+x: pressione a leader, depois a tecla da ação — ctrl+x e n abre sessão nova. leader_timeout (2000ms) controla a espera pelo segundo toque.
{
"leader_timeout": 2000,
"keybinds": {
"leader": "ctrl+x",
"messages_copy": ["<leader>y", "ctrl+shift+c"],
"session_compact": "none"
}
}Valores aceitam um atalho, vários separados por vírgula, um array — ou um objeto com key, preventDefault e fallthrough para casos finos. "none" desabilita. Os keybinds se mesclam com os padrões: declare só o que muda.
02Os essenciais
| Ação | Keybind | Default |
|---|---|---|
| Command palette | command_list | ctrl+p |
| Alternar agente (plan/build) | agent_cycle | tab |
| Variante do modelo | variant_cycle | ctrl+t |
| Modelos · lista | model_list | <leader>m |
| Modelos · recentes | model_cycle_recent | f2 |
| Sessão nova · lista | session_new · session_list | <leader>n · <leader>l |
| Interromper geração | session_interrupt | escape |
| Compactar sessão | session_compact | <leader>c |
| Undo · redo de mensagem | messages_undo · messages_redo | <leader>u · <leader>r |
| Copiar última resposta | messages_copy | <leader>y |
| Editor externo | editor_open | <leader>e |
| Sidebar · status | sidebar_toggle · status_view | <leader>b · <leader>s |
| Timeline da sessão | session_timeline | <leader>g |
| Prompts enfileirados | session_queued_prompts | <leader>q |
| Sair | app_exit | ctrl+c · ctrl+d |
03Navegando subagentes
Sessões filhas usam setas puras de propósito — navegação não deveria exigir leader:
| Ação | Default |
|---|---|
| Entrar na primeira filha | <leader>+↓ |
| Circular entre filhas | → · ← |
| Voltar à sessão mãe | ↑ |
04Scroll e leitura
| Ação | Default |
|---|---|
| Página acima · abaixo | pageup · pagedown (ctrl+alt+b · f) |
| Meia página | ctrl+alt+u · ctrl+alt+d |
| Início · fim da conversa | ctrl+g / home · ctrl+alt+g / end |
| Which-key (mapa de atalhos) | ctrl+alt+k |
05Composer
O input aceita a família Readline completa — palavra a palavra, kill-line, undo — mais os essenciais:
| Ação | Default |
|---|---|
| Enviar | return |
| Nova linha | shift+return · ctrl+return · ctrl+j |
| Limpar input | ctrl+c |
| Apagar palavra · até o fim | ctrl+w · ctrl+k |
| Histórico de prompts | ↑ · ↓ |
| Autocomplete @ — navegar · aceitar | ctrl+p/n · tab |
input_undo ganha ctrl+z como default e terminal_suspend é forçado a none — terminais Windows não suportam suspend POSIX.
06Shift+Enter no seu terminal
Alguns terminais não enviam modificadores com Enter. No Windows Terminal, mapeie shift+enter para a sequência \u001b[13;2u via sendInput no settings.json — o par de blocos actions + keybindings resolve.
07Desktop
O prompt do app desktop tem os atalhos Readline embutidos (ctrl+a/e/b/f/k/u/w, alt+b/f/d, ctrl+g para cancelar popovers) — fixos por enquanto, não configuráveis via config.
