Vobuda
Baixar Como funcionaClaude Codevs CodexComparar Sobre Contato

Como funciona, parte por parte

Uma regra sustenta o programa inteiro: o estado da janela vive na memória e a configuração vive em arquivos. Tudo a seguir decorre disso.

A regra por trás de tudo

Uma janela contém abas. Uma aba contém blocos. Um bloco é um terminal, um arquivo em edição, o painel de arquivos, uma página web, uma imagem, um PDF, uma página Markdown, um diff, o monitor do sistema, a tela de configurações ou o painel de um plugin. Eles se dividem em qualquer direção, com aninhamento, se arrastam, se redimensionam e se fecham por um único conjunto de regras, em vez de um novo para cada recurso. Tudo o que é grande demais para pertencer a todo mundo é um plugin do catálogo do próprio vobuda, Design e Director até agora, instalado e removido por inteiro num só toque.

Nada nesse arranjo é armazenado em um banco de dados, porque não existe banco de dados. O que a janela está fazendo vive na memória; o que você decidiu vive em arquivos. É por isso que um botão, uma tecla, a barra de menus, Cmd+K e a linha de comando chamam todos a mesma ação pelo nome, e por isso fazê-la se comportar de outra forma quase sempre significa editar JSON.

É também por isso que o melhor emulador de terminal para Mac, para o tipo de trabalho para o qual ele foi feito, é um que você pode inspecionar. Se uma configuração existe, há uma linha em um arquivo que a guarda. Se uma ação existe, há um nome pelo qual você pode chamá-la.

Cinco caminhos até uma ação, e é a mesma ação

Com tantas ações, a maior parte de um programa fica na prática escondida. O Cmd+K é o caminho que responde «o que ele pode fazer» em vez de «faça isto».

A lista de comandos aberta sobre um terminal e um bloco do Claude Code: Nova aba, Fechar aba, Manter esta máquina ativa, as divisões e Fechar bloco, cada uma com o nome da ação e o atalho, e um campo no topo para filtrar a lista A lista de comandos aberta sobre um terminal e um bloco do Claude Code: Nova aba, Fechar aba, Manter esta máquina ativa, as divisões e Fechar bloco, cada uma com o nome da ação e o atalho, e um campo no topo para filtrar a lista
A lista de comandos aberta com o Cmd+K sobre um shell e um agente: cada ação pelo nome, pelo nome da ação e pelo atalho, pronta para ser filtrada ao digitar. As letras digitadas coincidem em ordem, mas não em sequência, então «spld» encontra «Split down», e o nome da própria ação também é pesquisado, então «block.zoom» a encontra para quem conhece o dicionário.
  • Ela ensina os atalhos em vez de substituí-los

    Cada linha mostra seu próprio atalho. Uma pessoa que recorre à lista duas vezes pela mesma ação já terá aprendido a tecla na terceira.

  • Não é um quinto dicionário

    Cada linha executa uma ação pelo nome, exatamente como as outras quatro. Uma verificação confronta a tabela que ela exibe com a lista do núcleo do que uma tecla pode ser vinculada, nas duas direções: uma ação que existe e não é oferecida ali faz o build falhar.

  • A linha de comando é o mesmo conjunto

    vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, digitados em qualquer bloco do vobuda, e o vobuda mcp oferece os mesmos comandos a um agente como ferramentas MCP. Não é uma porta dos fundos para scripts: os testes de interface conduzem o programa inteiro por ela, e por isso se pode confiar nela, e por isso um agente pode reorganizar a sua janela e você pode ler exatamente o que ele fez.

Blocos, e o que eles prometem

Um bloco muda de aba com o shell em execução

Arraste um bloco pelo cabeçalho até uma aba na faixa e ele pousa ali: mesmo id, mesmo shell, mesma pasta, ainda executando o que estava executando. A aba acende na cor de destaque enquanto o bloco está sobre ela. Também existe uma ação para isso, block.to-tab:2, então pode ficar em uma tecla e um teste sem mouse pode acioná-la.

Os tamanhos são lembrados, e há um mínimo

Por bloco, e nenhum bloco pode ficar tão estreito a ponto de deixar de ser utilizável. Um painel com 200 pontos é um painel que ninguém consegue usar.

Nada seu vai embora em silêncio

Fechar algo que está rodando pergunta antes, pelo nome, porque perder o trabalho de alguém uma única vez custa mais confiança do que um recurso inteiro rende. Pelo mesmo motivo, a pasta do projeto é fotografada antes de cada turno de um agente, com um toque para colocá-la de volta; uma chave colada num agente é barrada antes que o agente a veja; e uma cerca que você pode ligar recusa as gravações e exclusões de um agente fora do projeto.

As sessões voltam por padrão

As abas, os blocos e a pasta de trabalho de cada bloco voltam depois de uma reinicialização, e isso vem ativado por padrão; um interruptor na seção Geral o desliga. Uma sessão que chegou de outra máquina abre o que consegue e diz o que não conseguiu, em vez de descartar blocos em silêncio.

A pasta de configurações, arquivo por arquivo

Tudo em ~/.config/vobuda é JSON legível, monitorado enquanto o programa roda. Salve o arquivo e a janela é redesenhada.

ArquivoO que contém
settings.jsonTema, aparência, terminal, shell, janela, sinais: cada configuração das dez seções
themes/*.jsonCores do terminal e da janela. 25 paletas incluídas, duas feitas para daltonismo
looks/*.jsonA forma da janela: cantos, sombras, cores dos painéis, transparência. Vêm 29
skins/*.jsonQuais painéis do monitor são exibidos, e como
buttons.jsonO dock: botões, ordem, lado, formato, e uma cor para os poucos que valem destaque
agents.jsonComo um agente é reconhecido e o que é oferecido a ele
keys.jsonTodos os atalhos. O menu nativo do macOS é construído a partir deste mesmo arquivo
workspaces/*.jsonProjetos: cada um uma janela com suas próprias abas, pasta, tema e dock

Os temas embutidos vivem dentro do binário e a pasta tem precedência sobre eles, então uma atualização traz cores novas sem sobrescrever nada que você editou. A pasta inteira é salva como um único arquivo compactado e restaurada em outro Mac, e num Mac uma cópia vive no iCloud Drive, ativada por padrão, com um interruptor para desligar.

Um monitor do sistema, organizado por um arquivo

Doze tipos de painel, e quais deles você vê depende de uma skin, não de uma tela que alguém desenhou uma vez.

O monitor do sistema num bloco ao lado de um terminal: carga do processador com seu histórico, cada núcleo, memória em uso, espaço livre no disco de inicialização, leituras e gravações do disco e tráfego de rede O monitor do sistema num bloco ao lado de um terminal: carga do processador com seu histórico, cada núcleo, memória em uso, espaço livre no disco de inicialização, leituras e gravações do disco e tráfego de rede
O monitor aberto como bloco ao lado do shell, com os painéis empilhados: processador, núcleos, memória, disco, leituras e gravações do disco e rede. Uma skin de cinco linhas dá outro layout. Coloque-a em ~/.config/vobuda/skins e rode vobuda skin essentials.
  • Os números são honestos sobre si mesmos

    Um valor que o sistema estima em vez de medir é exibido com um til, e um hardware ausente dá um valor ausente, não um zero. Uma máquina sem GPU dedicada não recebe um painel de GPU marcando zero por cento.

  • Os dois endereços, cada um com um botão de copiar

    O painel de endereços nomeia primeiro o endereço que a internet enxerga e, abaixo, o que esta máquina tem na própria rede. Ele só pergunta enquanto o painel está na tela, cerca de uma vez a cada dez minutos, ou a cada trinta segundos enquanto ainda não se conhece nenhum endereço, e a requisição não leva nada sobre a máquina.

  • Reordenado arrastando, como tudo o mais

    Os painéis do monitor, os botões do dock e as partes da barra do agente são todos pegos e colocados no lugar com o mesmo gesto. Uma linha de configurações é pega pela alça à sua esquerda, não em qualquer ponto da linha, então um arraste iniciado em um campo de texto não impede você de selecionar a palavra que queria alterar.

Um arquivo abre ao lado do shell

A coisa para a qual um terminal normalmente manda você para outro lugar: um caminho aparece na saída, duas linhas precisam mudar, e até agora isso significava sair para um editor e voltar tendo perdido o contexto do shell.

src/main.ts aberto no editor ao lado de um bloco de terminal com um teste aprovado, e o painel de arquivos listando as pastas e os arquivos do projeto com seus tamanhos src/main.ts aberto no editor ao lado de um bloco de terminal com um teste aprovado, e o painel de arquivos listando as pastas e os arquivos do projeto com seus tamanhos
src/main.ts aberto no editor com números de linha e coloração, ao lado do shell e do painel de arquivos de onde foi aberto.
  • Salvar é intencional

    Nada é escrito até Cmd+S. Um editor que grava enquanto você digita é ótimo num app de notas e péssimo ao lado de um shell em execução. É uma ação, não apenas uma tecla, o que também lhe dá um item de menu, um atalho e uma entrada na linha de comando como tudo o mais aqui.

  • As recusas importam tanto quanto a gravação

    Um arquivo alterado no disco desde que foi aberto não é sobrescrito. Um binário não é mostrado como texto corrompido. Uma pasta simplesmente não é aberta. Alterações não salvas carregam uma marca visível, e fechar um arquivo editado pergunta antes.

  • Encontrando um arquivo

    O painel de arquivos busca por nome abaixo da pasta em que você está, e cada resultado informa em quais duas pastas ele se encontra, porque um nome sozinho não distingue dois index.ts. Ele ignora node_modules, .git, target e afins, para em oito níveis ou duzentos resultados, e não faz nada com menos de duas letras.

Configurações, como tela e como arquivos

Dez seções, de Geral a Dados e privacidade, uma busca sobre cada configuração, e cada uma delas é uma linha num arquivo que você também pode editar à mão.

A tela de configurações em Aparência: o fim da lista de temas, a aparência, a opacidade da janela e o contraste mínimo, e a leitura de acessibilidade do tema Acessível selecionado: contraste de texto AAA e uma nota de distinguibilidade para daltonismo A tela de configurações em Aparência: o fim da lista de temas, a aparência, a opacidade da janela e o contraste mínimo, e a leitura de acessibilidade do tema Acessível selecionado: contraste de texto AAA e uma nota de distinguibilidade para daltonismo
Aparência, abaixo da lista de temas: a aparência, a opacidade da janela, o contraste mínimo e uma avaliação do contraste de texto do tema selecionado e de sua distinguibilidade para um leitor daltônico.
  • As configurações vêm até o bloco

    Clicar com o botão direito num painel significa «esta coisa aqui, mude-a». Então escolher uma linha de configurações no menu de um bloco abre aquela seção sobre a janela, no canto do menu, em vez de levar você à tela de configurações. É uma ação como todo o resto: settings.here:themes, settings.here:monitor.

  • Um som que você ouve ao escolhê-lo

    Escolher um som de sinal ou o alerta sonoro do terminal já o reproduz. Escolher um som a partir de uma lista de nomes que você não consegue ouvir é escolher um nome.

  • Nada pede um reinício

    A pasta de configurações é monitorada, incluindo as duas coisas que o núcleo controla: a barra de menus do macOS construída a partir do seu arquivo de atalhos, e a tecla global da janela suspensa, com a tecla antiga liberada antes de a nova ser registrada, para que duas não respondam ao mesmo tempo. Uma verificação lê cada dica na tela de configurações e falha ao encontrar a palavra reiniciar.

Falando e sendo lido em voz alta

Ambos usam a própria fala do sistema, na sua máquina. O áudio nunca sai do computador.

Ditado

Cmd+Shift+V digita o que você diz no bloco em que está trabalhando, e a faixa mostra em duas letras qual idioma está ouvindo. Uma frase ditada é digitada e nunca executada: o reconhecimento erra ao ouvir, e um comando mal entendido que se executa sozinho é um programa que apaga coisas porque um rádio estava ligado. Ao lado de um agente, onde uma frase é uma mensagem e não um comando, ela pode ser enviada sozinha, e isso é uma configuração lida no momento em que a frase termina.

Lendo a resposta em voz alta

Cmd+Shift+R lê em voz alta a última resposta do agente; pressionar de novo interrompe. O que é lido é a resposta, não a tela. Um marcador no início, asteriscos em torno de uma palavra em destaque, crases em torno de um nome, uma linha de moldura, um caminho completo onde bastaria o nome do arquivo: tudo isso é descartado, e as palavras dentro permanecem. A leitura é delimitada por formas, não por palavras, por baixo pela linha de entrada do agente e por cima pelo seu logotipo, porque os elementos visuais de um agente mudam a cada versão dele.

Os pequenos detalhes que decidem se você continua usando

O botão direito é nosso

Em toda a janela: o menu próprio do bloco dentro de um bloco, o de fora da janela, a faixa de abas, o dock, o espaço entre os blocos lado a lado. Cada linha é uma ação, e o próprio menu tem uma ação, block.menu, então um gesto que só uma mão alcança não é um gesto que nada consegue verificar. O único lugar que mantém o menu do sistema é um campo de texto, onde ele oferece recortar, copiar, colar e o dicionário.

Abra uma pasta de qualquer lugar

vobuda://open?path=/some/path abre uma aba naquela pasta, a partir de uma ação do Finder, de um script ou de outro app. O macOS não tem uma configuração de terminal padrão em nível de sistema, então esta é a versão honesta desse recurso, em vez de uma promessa que ele não pode cumprir.

Busca dentro de um bloco

Cmd+F. O campo pertence ao bloco em que busca, e fechá-lo deixa a visão onde a correspondência estava.

Leve o bloco com você

O Cmd+Shift+X copia o texto de um bloco, pedido ao próprio terminal, que é também o que o faz funcionar com a renderização por GPU ligada, onde não há texto na página para selecionar. Uma imagem do bloco são duas ações no Cmd+K, Block snapshot to clipboard e Block snapshot to a file.

Verificações de atualização que não são tarefa sua

O núcleo verifica uma vez por dia, numa thread própria, e o que você vê é uma faixa acima do layout, e não sobre ele, porque um aviso que cobre um terminal é um que as pessoas aprendem a fechar sem ler. Nada é instalado até você apertar: para um agente, a atualização é um comando digitado no bloco ativo, onde a saída dele fica visível, e para o Vobuda num Mac o botão instala a versão nova em segundo plano e depois oferece uma reinicialização, que acontece sozinha após dez segundos quando nada está rodando.

Quarenta idiomas, e um guia em cada um

Incluindo a barra de menus do macOS, que o sistema constrói no núcleo. Árabe e hebraico espelham a janela inteira, exceto o próprio terminal, onde o espelhamento tornaria a saída e os caminhos ilegíveis. Uma chave de tradução é a própria string em inglês, então uma string não traduzida volta para um inglês legível, em vez de um espaço em branco ou um identificador.

Experimente as partes que você acabou de ler

Depois de duas perguntas curtas na primeira execução, abre com um único bloco de terminal e nada mais. Tudo o que está acima é algo que você liga quando quiser.

curl -fsSL https://vobuda.com/install.sh | sh