Vobuda
Télécharger FonctionnementClaude Codevs CodexComparer À propos Contact

Comment ça fonctionne, brique par brique

Une règle tient tout le programme ensemble : l'état de la fenêtre vit en mémoire et la configuration vit dans des fichiers. Tout ce qui suit en découle.

La règle qui sous-tend tout

Une fenêtre contient des onglets. Un onglet contient des blocs. Un bloc est un terminal, un fichier en cours d'édition, le panneau des fichiers, une page web, une image, un PDF, une page Markdown, un diff, le moniteur système, l'écran des réglages ou le panneau d'un greffon. Ils se scindent dans n'importe quelle direction, s'imbriquent, se déplacent, se redimensionnent et se ferment selon un seul jeu de règles plutôt qu'un nouveau jeu pour chaque fonctionnalité. Tout ce qui est trop volumineux pour appartenir à tout le monde est un greffon du catalogue de vobuda, Design et Director jusqu'ici, installé et retiré en entier d'un seul appui.

Rien de cette disposition n'est stocké dans une base de données, parce qu'il n'y a pas de base de données. Ce que fait la fenêtre vit en mémoire ; ce que vous avez décidé vit dans des fichiers. C'est pourquoi un bouton, une touche, la barre de menus, Cmd+K et la ligne de commande appellent tous la même action par son nom, et pourquoi lui faire adopter un autre comportement revient presque toujours à modifier du JSON.

C'est aussi pourquoi le meilleur émulateur de terminal pour Mac, pour le genre de travail auquel celui-ci est destiné, est celui que l'on peut inspecter. Si un réglage existe, il y a une ligne dans un fichier qui le contient. Si une action existe, il y a un nom pour l'appeler.

Cinq chemins vers une action, et c'est toujours la même action

Avec autant d'actions, l'essentiel d'un programme reste en pratique invisible. Cmd+K est la réponse à « que peut-il faire ? » plutôt qu'à « fais ceci ».

La liste des commandes ouverte sur un terminal et un bloc Claude Code : Nouvel onglet, Fermer l'onglet, Garder cette machine éveillée, les divisions et Fermer le bloc, chacune avec le nom de son action et son raccourci, et un champ en haut pour restreindre la liste La liste des commandes ouverte sur un terminal et un bloc Claude Code : Nouvel onglet, Fermer l'onglet, Garder cette machine éveillée, les divisions et Fermer le bloc, chacune avec le nom de son action et son raccourci, et un champ en haut pour restreindre la liste
La liste des commandes ouverte avec Cmd+K sur un shell et un agent : chaque action par son nom, son nom d'action et son raccourci, prête à être restreinte en tapant. Les lettres tapées correspondent dans l'ordre mais pas forcément à la suite, si bien que « spld » trouve « Split down », et le nom de l'action elle-même est aussi cherché, si bien que « block.zoom » la trouve pour quelqu'un qui connaît le dictionnaire.
  • Elle enseigne les touches plutôt que de les remplacer

    Chaque ligne affiche son propre raccourci. Quelqu'un qui ouvre la liste deux fois pour la même action en aura appris la touche à la troisième.

  • Ce n'est pas un cinquième dictionnaire

    Chaque ligne exécute une action par son nom, exactement comme les quatre autres méthodes. Une vérification confronte la table qu'elle affiche à la liste du cœur des actions qu'une touche peut activer, dans les deux sens : une action qui existe mais n'y est pas proposée fait échouer la compilation.

  • La ligne de commande, c'est le même ensemble

    vobuda do block.split-down, vobuda button files, vobuda theme catppuccin-mocha, vobuda send, vobuda signal, vobuda state, vobuda log, tapées dans n'importe quel bloc vobuda, et vobuda mcp offre les mêmes commandes à un agent sous forme d'outils MCP. Ce n'est pas une porte dérobée pour les scripts : les tests d'interface pilotent tout le programme à travers elle, c'est pourquoi on peut lui faire confiance, et c'est pourquoi un agent peut réorganiser votre fenêtre, et vous pouvez lire exactement ce qu'il a fait.

Les blocs, et ce qu'ils promettent

Un bloc change d'onglet sans interrompre son shell

Faites glisser un bloc par son en-tête sur un onglet de la barre, et il s'y installe : même identifiant, même shell, même dossier, toujours en train d'exécuter ce qu'il exécutait. L'onglet s'illumine de la couleur d'accent tant que le bloc le survole. Il existe aussi une action pour cela, block.to-tab:2, qui peut donc être associée à une touche, et un test sans souris peut l'activer.

Les tailles sont mémorisées, et il y a un minimum

Par bloc, et aucun bloc ne peut devenir si étroit qu'il en devient inutilisable. Un panneau de 200 points est un panneau que personne ne peut utiliser.

Rien de ce qui vous appartient ne part en silence

Fermer quelque chose qui tourne demande d'abord confirmation, par son nom, car perdre une seule fois le travail de quelqu'un coûte plus de confiance qu'une fonctionnalité entière n'en rapporte. Pour la même raison, le dossier du projet est photographié avant chaque tour d'un agent, avec un appui pour le remettre en place ; une clé collée à un agent est arrêtée avant que l'agent la voie ; et une barrière que vous pouvez activer refuse les écritures et suppressions d'un agent en dehors du projet.

Les sessions reviennent par défaut

Les onglets, les blocs et le dossier de travail de chaque bloc reviennent après un redémarrage, et cette option est activée par défaut ; un interrupteur dans la section Général la désactive. Une session arrivée d'une autre machine ouvre ce qu'elle peut et indique ce qu'elle n'a pas pu, plutôt que d'abandonner des blocs en silence.

Le dossier des réglages, fichier par fichier

Tout ce qui se trouve dans ~/.config/vobuda est du JSON lisible, surveillé pendant que le programme tourne. Enregistrez le fichier et la fenêtre se redessine.

FichierCe qu'il contient
settings.jsonThème, apparence, terminal, shell, fenêtre, signaux : chaque réglage des dix sections
themes/*.jsonCouleurs du terminal et de la fenêtre. 25 palettes sont fournies, dont deux conçues pour les daltoniens
looks/*.jsonLa forme de la fenêtre : coins, ombres, couleurs des panneaux, transparence. 29 sont fournies
skins/*.jsonQuels panneaux du moniteur sont affichés, et comment
buttons.jsonLe dock : boutons, ordre, côté, forme, et une couleur pour les rares qui méritent d'être signalés
agents.jsonComment un agent est reconnu et ce qui lui est proposé
keys.jsonTous les raccourcis. Le menu natif de macOS est construit à partir de ce même fichier
workspaces/*.jsonProjets : chacun une fenêtre avec ses propres onglets, dossier, thème et dock

Les thèmes intégrés vivent dans le binaire et le dossier les remplace, si bien qu'une mise à jour apporte de nouvelles couleurs sans écraser ce que vous avez modifié. Le dossier entier s'enregistre en une seule archive et se restaure sur un autre Mac, et sur un Mac une copie vit dans iCloud Drive, par défaut, avec un interrupteur pour la désactiver.

Un moniteur système, organisé par un fichier

Douze types de panneaux, et ceux que vous voyez dépendent d'un skin plutôt que d'un écran conçu une fois pour toutes.

Le moniteur système dans un bloc à côté d'un terminal : charge du processeur avec son historique, chaque cœur, mémoire utilisée, espace libre sur le disque de démarrage, lectures et écritures du disque, et trafic réseau Le moniteur système dans un bloc à côté d'un terminal : charge du processeur avec son historique, chaque cœur, mémoire utilisée, espace libre sur le disque de démarrage, lectures et écritures du disque, et trafic réseau
Le moniteur ouvert comme un bloc à côté du shell, ses panneaux empilés : processeur, cœurs, mémoire, disque, lectures et écritures du disque et réseau. Un skin de cinq lignes donne une autre disposition. Déposez-le dans ~/.config/vobuda/skins et lancez vobuda skin essentials.
  • Les chiffres sont honnêtes sur eux-mêmes

    Une valeur que le système estime plutôt qu'il ne mesure est affichée avec un tilde, et un matériel absent donne une valeur absente plutôt qu'un zéro. Une machine sans GPU dédié n'affiche pas un panneau GPU indiquant zéro pour cent.

  • Les deux adresses, chacune avec son bouton de copie

    Le panneau d'adresses indique celle que voit d'abord internet, puis en dessous celle que cette machine possède sur son propre réseau. Il n'interroge que pendant que le panneau est à l'écran, environ une fois toutes les dix minutes, ou toutes les trente secondes tant qu'aucune adresse n'est connue, et la requête ne transporte aucune information sur la machine.

  • Réorganisé par glisser-déposer, comme tout le reste

    Les panneaux du moniteur, les boutons du dock et les éléments de la barre d'agent se saisissent et se replacent tous avec le même geste. Une ligne de réglage se saisit par la poignée à sa gauche plutôt que n'importe où sur la ligne, de sorte qu'un glissement commencé sur un champ de texte ne vous empêche pas de sélectionner le mot que vous vouliez modifier.

Un fichier s'ouvre à côté du shell

Ce pour quoi un terminal vous envoie d'ordinaire ailleurs : un chemin apparaît dans la sortie, deux lignes doivent être changées, et jusqu'ici cela voulait dire partir vers un éditeur puis revenir en ayant perdu le contexte du shell.

src/main.ts ouvert dans l'éditeur à côté d'un bloc terminal avec une série de tests réussie, et le panneau des fichiers listant les dossiers et fichiers du projet avec leurs tailles src/main.ts ouvert dans l'éditeur à côté d'un bloc terminal avec une série de tests réussie, et le panneau des fichiers listant les dossiers et fichiers du projet avec leurs tailles
src/main.ts ouvert dans l'éditeur avec numéros de ligne et coloration, à côté du shell et du panneau des fichiers d'où il a été ouvert.
  • Enregistrer est un acte délibéré

    Rien n'est écrit avant Cmd+S. Un éditeur qui écrit au fil de la frappe est une bonne chose dans une application de notes, une mauvaise à côté d'un shell en cours d'exécution. C'est une action plutôt qu'une frappe, ce qui lui donne aussi un élément de menu, un raccourci et une entrée de ligne de commande, comme tout le reste ici.

  • Les refus comptent autant que l'écriture

    Un fichier modifié sur le disque depuis son ouverture n'est pas écrasé. Un binaire n'est pas affiché comme du texte corrompu. Un dossier ne s'ouvre pas du tout. Les modifications non enregistrées portent une marque visible, et fermer un fichier édité demande confirmation.

  • Trouver un fichier

    Le panneau des fichiers recherche par nom en dessous du dossier où vous vous trouvez, et chaque résultat indique dans quels deux dossiers il se trouve, car un nom seul ne permet pas de distinguer deux index.ts. Il ignore node_modules, .git, target et leurs semblables, s'arrête à huit niveaux ou deux cents résultats, et ne fait rien du tout en dessous de deux lettres.

Les réglages, en écran et en fichiers

Dix sections, de Général à Données et confidentialité, une recherche sur chaque réglage, et chacun d'eux est une ligne dans un fichier que vous pouvez aussi modifier à la main.

L'écran des réglages sur Apparence : la fin de la liste des thèmes, l'apparence, l'opacité de la fenêtre et le contraste minimal, et le relevé d'accessibilité du thème Accessible sélectionné : contraste du texte AAA et un score de distinction pour le daltonisme L'écran des réglages sur Apparence : la fin de la liste des thèmes, l'apparence, l'opacité de la fenêtre et le contraste minimal, et le relevé d'accessibilité du thème Accessible sélectionné : contraste du texte AAA et un score de distinction pour le daltonisme
Apparence, sous la liste des thèmes : l'apparence, l'opacité de la fenêtre, le contraste minimal, et une note pour le contraste du texte du thème sélectionné et sa lisibilité pour un lecteur daltonien.
  • Les réglages viennent au bloc

    Faire un clic droit sur un panneau signifie « ceci, ici, changez-le ». Ainsi, choisir une ligne de réglage dans le menu propre à un bloc ouvre cette section par-dessus la fenêtre, au coin du menu, plutôt que de vous conduire vers l'écran des réglages. C'est une action comme tout le reste : settings.here:themes, settings.here:monitor.

  • Un son que vous entendez au moment où vous le choisissez

    Choisir un son de signal ou la sonnerie du terminal le fait jouer. Choisir un son dans une liste de noms qu'on ne peut pas entendre revient à choisir un nom.

  • Rien ne demande de redémarrage

    Le dossier des réglages est surveillé, y compris les deux éléments que possède le cœur : la barre de menus macOS construite à partir de votre fichier de raccourcis, et la touche globale de la fenêtre déroulante, l'ancienne touche étant libérée avant que la nouvelle ne soit enregistrée pour qu'il n'y en ait jamais deux actives à la fois. Une vérification lit chaque indication de l'écran des réglages et échoue sur le mot redémarrage.

Parler et se faire lire

Les deux utilisent les fonctions vocales du système, exécutées sur l'appareil. L'audio ne quitte jamais l'ordinateur.

Dictée

Cmd+Shift+V tape ce que vous dites dans le bloc où vous travaillez, et la barre indique en deux lettres la langue qu'elle écoute. Une phrase dictée est tapée et jamais exécutée : la reconnaissance se trompe parfois, et une commande mal comprise qui s'exécute d'elle-même est un programme qui supprime des choses parce qu'une radio était allumée. À côté d'un agent, où une phrase est un message plutôt qu'une commande, elle peut s'envoyer d'elle-même, et c'est un réglage lu au moment où la phrase se termine.

Relire la réponse à voix haute

Cmd+Shift+R lit à voix haute la dernière réponse de l'agent ; appuyer à nouveau l'arrête. Ce qui est lu, c'est la réponse, pas l'écran. Une puce au début, des astérisques autour d'un mot mis en valeur, des apostrophes inverses autour d'un nom, un filet horizontal, un chemin complet là où le nom du fichier suffirait : tout cela disparaît, et les mots qu'ils contiennent restent. La lecture est délimitée par des formes plutôt que par des mots, en bas par la ligne de saisie de l'agent et en haut par son logo, parce que l'interface d'un agent change à chaque nouvelle version.

Les petits détails qui décident si vous le gardez

Le bouton droit nous appartient

Partout dans la fenêtre : le menu propre au bloc à l'intérieur d'un bloc, celui de la fenêtre à l'extérieur, la barre d'onglets, le dock, l'espace entre les tuiles. Chaque ligne est une action, et le menu a lui-même sa propre action, block.menu, de sorte qu'un geste que seule une main peut atteindre n'est pas un geste que rien ne peut vérifier. Le seul endroit qui conserve le menu du système est un champ de texte, où il propose couper, copier, coller et le dictionnaire.

Ouvrir un dossier depuis n'importe où

vobuda://open?path=/some/path ouvre un onglet dans ce dossier, depuis une action Finder, un script ou une autre application. macOS n'a pas de réglage système pour un terminal par défaut, donc c'est la version honnête de cette fonctionnalité plutôt qu'une promesse qu'il ne peut pas tenir.

Rechercher dans un bloc

Cmd+F. Le champ appartient au bloc dans lequel il cherche, et le fermer laisse la vue là où se trouvait la correspondance.

Emporter le bloc avec vous

Cmd+Shift+X copie le texte d'un bloc, demandé au terminal lui-même, ce qui le fait aussi fonctionner avec le rendu GPU activé, où il n'y a pas de texte sélectionnable dans la page. Une image du bloc, ce sont deux actions dans Cmd+K, Block snapshot to clipboard et Block snapshot to a file.

Des vérifications de mise à jour qui ne sont pas une corvée

Le cœur vérifie une fois par jour, dans son propre fil d'exécution, et ce que vous voyez est une bande au-dessus de la disposition plutôt que par-dessus, car une notification qui recouvre un terminal est de celles qu'on apprend à fermer sans les lire. Rien ne s'installe tant que vous n'appuyez pas : pour un agent, la mise à jour est une commande tapée dans le bloc actif où sa sortie reste visible, et pour Vobuda sur un Mac, le bouton installe la nouvelle version en arrière-plan, puis propose un redémarrage, qui se fait tout seul au bout de dix secondes quand rien n'est en cours.

Quarante langues, et un guide dans chacune

Y compris la barre de menus macOS, que le système construit dans le cœur. L'arabe et l'hébreu inversent toute la fenêtre sauf le terminal lui-même, où l'inversion rendrait la sortie et les chemins illisibles. Une clé de traduction est la chaîne anglaise elle-même, si bien qu'une chaîne non traduite retombe sur un anglais lisible plutôt que sur un champ vide ou un identifiant.

Essayez les fonctionnalités que vous venez de découvrir

Après deux courtes questions au premier lancement, il s'ouvre avec un seul bloc terminal et rien d'autre. Tout ce qui précède est quelque chose que vous activez quand vous en avez besoin.

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