TUI
Éditer policy, rôles, agents et intégrations MCP de façon interactive, c'est à ça que sert caesar config — une interface OpenTUI-et-React avec une seule exigence dure : Bun, pas Node. Le rendu d'OpenTUI passe par la FFI de Bun, et Node 24 n'a aucun équivalent à lui offrir.
Sans bun sur le PATH, caesar config explique la situation et pointe vers les sous-commandes équivalentes plutôt que d'échouer sèchement :
$ caesar config
The configuration TUI requires Bun: OpenTUI renders through its FFI, which Node 24 does not allow […]. "bun" was not found in the PATH.
Install Bun (https://bun.sh), or use the equivalent subcommands:
- caesar policy show Effective policy (allow/deny, provenance).
- caesar role list Roles, fallback agents, the agent picked today.
- caesar agents list Agent catalog: presence, capabilities, authorization.
Aucun de ces points d'entrée — la TUI, les sous-commandes mentionnées ci-dessus, ou le serveur MCP — ne lit ni n'écrit la configuration pour son propre compte. Ce sont tous des façades sur le même @caesar/core, qui seul fusionne les trois couches décrites dans Configuration et reste la source de vérité unique tout du long.
Navigation
Tab/Shift-Tab, ou1-4— changer d'écran.s— sauvegarder les changements en attente sur la couche active. Rien n'est écrit sur disque avant cela, sauf l'éditeur de system prompt, qui écrit surCtrl+S.p— faire défiler la portée d'édition : global → projet → local. Changer de portée avec des changements en attente demande confirmation avant de les abandonner.?— afficher l'aide en surimpression.qouCtrl+C— quitter, avec confirmation si des changements sont en attente.
La portée active reste visible en permanence, avec le chemin de fichier que s écrira — savoir « couche projet » ne dit pas où ça se trouve, et c'est précisément ce qu'on veut vérifier avant de sauvegarder.
Agents
Un tableau de catalogue (présence, permission, capacités) avec le détail de l'agent sélectionné en dessous : présence, version, capacités, permission, les rôles qui l'emploient, et — pour un agent déclaré ([[agent]]) — ses champs éditables (nom d'affichage, binaire, arguments, arguments réseau, mode de répertoire, lecture seule native).
↑↓— choisir un agent.Space— autoriser / refuser (écrit la liste de policy ;deniedl'emporte toujours).m— le modèle par défaut de l'agent, agents natifs compris (la table[models]).n— déclarer une CLI que le catalogue natif ne connaît pas : l'identifiant se tape en ligne, puisbin/argset le reste s'affinent dans le panneau de détail.x— retirer une déclaration.Enter— éditer les champs d'un agent déclaré.
Autoriser et déclarer sont deux gestes différents : le premier écrit une liste de policy, le second ajoute un agent au catalogue — les confondre est la méprise la plus facile sur cet écran.
Roles
La liste des rôles à gauche, l'édition du rôle sélectionné à droite : nom, intention, agents dans leur ordre de repli, mode, isolation, network, modèle, timeout, et le system prompt lui-même — contenu compris, pas seulement son chemin.
↑↓— choisir un rôle ;nen crée un,xle supprime (renommer et supprimer restent réservés à un rôle que la couche active déclare elle-même).- Sur un champ,
Enterl'édite, ou le fait défiler pourmode/isolation/network. - Sur « Agents » :
Enterouvre l'ordre de repli ;Shift+J/Shift+Kdéplace l'agent sélectionné,aen ajoute un,ren retire un. L'agent quecaesar_delegatechoisirait aujourd'hui est marqué « ← picked ». - Sur « Model » : le modèle demandé à l'agent qui sera choisi, quel qu'il soit — prime sur la valeur par défaut de
[models], perd face à un--model/model:explicite. Vide signifie la valeur par défaut propre à l'agent. - Sur « System prompt » :
Enterouvre l'éditeur de prompt plein écran (ci-dessous) ;fchange le chemin de fichier déclaré.
Policy
Les champs de [policy] en langage clair plutôt qu'en clés TOML brutes — chacun porte un libellé, et la clé TOML à laquelle il correspond s'affiche une fois sélectionné, pour qui édite aussi le fichier à la main. Une valeur héritée d'une couche moins spécifique est marquée (← global).
↑↓— choisir un réglage ;Enterl'édite, ou ouvre la listeallowed/denied.- Dans une liste :
aajoute un agent,ren retire un,Escretourne aux réglages.
L'écran garde un rappel permanent affiché : denied l'emporte toujours sur allowed — un agent présent dans les deux est refusé.
Integrations
Pour chacun des cinq clients MCP (claude, codex, copilot, opencode, antigravity) : son statut d'enregistrement du serveur caesar (enregistré / non enregistré / non vérifiable — claude et codex n'ont aucune lecture de statut fiable et sans effet de bord) et, dans le panneau de détail, un aperçu de ce que Enter fera réellement avant de l'exécuter — la commande qui s'exécuterait, ou le fichier qui serait fusionné et sous quelle clé, avec le reste de ce fichier préservé. C'est le seul écran qui écrit en dehors du projet, dans la configuration propre du client ; l'aperçu existe pour que cela ne soit jamais une surprise.
↑↓— choisir un client ;Enterinstalle ou met à jour l'enregistrement.
Éditeur de prompt
Un éditeur plein écran pour le system prompt d'un rôle — le texte placé en tête du contexte passé à l'agent, avant l'objectif de la tâche. Ouvert depuis l'écran Roles (« System prompt », Enter).
Deux choses le distinguent du reste de la TUI :
- Il écrit immédiatement.
Ctrl+Ssauvegarde le fichier directement, en dehors du mécanisme globals/portée — un prompt est un fichier unique, pas un réglage à trois couches. - Il nomme le fichier que le moteur lira réellement, son chemin absolu affiché en haut — un rôle venant de la couche globale résout son prompt dans le projet courant, jamais un fichier partagé entre projets.
Esc abandonne l'édition, en demandant d'abord confirmation si le texte a changé.
Prochaines étapes
- Configuration — la référence complète de
[policy],[[role]],[[agent]],[models]que cette TUI édite. - Utiliser caesar depuis Claude Code — enregistrer le serveur MCP, l'une des choses que fait Integrations.