Exécution de zerocode
Configuration locale
Sur la même machine que le démon, aucune configuration supplémentaire n’est nécessaire :
sh
zerocode
zerocode trouve automatiquement le point de terminaison local du daemon : <data_dir>/data/daemon.sock sous Unix, \\.\pipe\zeroclaw-<hash> sous Windows. Si le daemon n’est pas en cours d’exécution, zerocode en lance un éphémère.
Répertoires de travail de la session
Sur une connexion locale, les nouvelles sessions Chat et Code démarrent dans le répertoire depuis lequel vous avez lancé zerocode, de sorte que les outils de fichiers et de shell opèrent sur ce projet. Une session locale redémarrée fait de même. Si zerocode ne parvient pas à déterminer ce répertoire, ou si son chemin n’est pas en UTF-8 valide, la session n’est pas créée et la raison est affichée, plutôt que de démarrer silencieusement ailleurs.
Sur une connexion distante (WSS), le répertoire depuis lequel vous avez lancé zerocode se trouve sur une autre machine, il n’est donc jamais envoyé. Les nouvelles sessions Chat distantes utilisent l’espace de travail configuré de l’agent sélectionné sur le daemon.
Le démon résout la racine demandée, la vérifie par rapport à la politique de l’agent, puis renvoie le répertoire que la session utilise réellement. Les fichiers d’identité et de personnalité de l’agent sont toujours lus depuis son espace de travail configuré, quel que soit le répertoire où la session démarre.
Remote (WSS) Code demande toujours en premier. Une session Code distante, nouvelle ou redémarrée, ouvre le sélecteur de répertoires côté daemon avant la création de la session ; sa racine est donc toujours un répertoire que vous avez sélectionné sur le système de fichiers du daemon. Ce sélecteur parcourt la machine du daemon, et non votre machine locale, et il n’a aucune valeur par défaut vers laquelle revenir.
Dans le volet Code, /change-directory ouvre un sélecteur de répertoire et démarre une nouvelle session dans le répertoire sélectionné. Cela fonctionne sur les deux types de connexion : en local, le sélecteur parcourt cette machine ; via WSS, il parcourt le système de fichiers du démon. La session existante n’est pas déplacée : elle reste disponible à sa racine enregistrée, et vous pouvez y revenir à tout moment. Si vous annulez le sélecteur, ou si le démon rejette la sélection, vous revenez à cette session sans modification et un message indique la raison.
Les sessions Code reprises conservent le répertoire de travail avec lequel elles ont été créées, même si le répertoire de lancement ou l’espace de travail configuré de l’agent change ensuite. Chat diffère sur ce point : une session Chat encore en cours d’exécution sur le daemon conserve son répertoire lorsque zerocode se rattache à elle, mais le daemon ne sauvegarde pas le répertoire d’une session Chat. Une session Chat que le daemon doit reconstruire, par exemple après un redémarrage du daemon, démarre dans l’espace de travail actuel de l’agent sélectionné.
Changement de sessions
Dans les panneaux Chat et Code, vous pouvez charger ou basculer vers des sessions existantes sans redémarrer zerocode :
- Changer de session ouvre la liste des sessions (raccourci par défaut : Ctrl+S ; modifiable dans le mappage des touches).
- Utilisez les touches de navigation de liste pour déplacer la sélection (par défaut : Haut/Bas).
- Entrée permet de passer à la session mise en surbrillance.
- Nouvelle session ouvre le même sélecteur d’agent que le bouton
[+]de la barre latérale et ajoute une session pour l’agent choisi, en conservant la session active suivie (raccourci par défaut : Ctrl+N ; modifiable).
Cliquer sur le corps d’une ligne de session la met en focus ; cliquer sur son ✕ à droite ferme cette session précise sans la mettre d’abord en focus. Utilisez [+] dans l’en-tête Sessions pour ajouter une session sœur et [-] pour fermer la session en focus dans le volet actif. Fermer une session active arrête en toute sécurité son travail en cours tout en conservant l’historique durable.
Passer à une session Code existante la reprend à sa racine d’origine, tandis que New session en démarre une nouvelle : une session locale dans le répertoire depuis lequel vous avez lancé zerocode, une session Chat distante dans l’espace de travail de l’agent sélectionné, et une session Code distante dans le répertoire que vous choisissez dans le sélecteur côté démon. Aucune de ces actions ne modifie la racine d’une session déjà en cours ; utilisez /change-directory lorsque vous souhaitez qu’une session Code se trouve ailleurs.
La superposition d’aide intégrée à l’application affiche vos raccourcis clavier en direct pour ces actions.
Les sessions Chat/Code et les sessions prises en charge par ACP utilisent des magasins différents. Si vous utilisez le protocole ACP directement, utilisez session/load lorsque vous avez besoin de rejouer le transcript et session/resume lorsque vous avez simplement besoin que l’état de la session côté serveur soit restauré. Consultez la documentation ACP pour les détails au niveau du protocole.
Saisie de texte dans le terminal
zerocode s’exécute en tant qu’interface utilisateur de terminal en mode brut. Il reçoit des événements de touches et de collage du terminal, et non des événements natifs de champ de texte de la plateforme. Sur macOS, les remplacements de texte système ne fonctionnent donc que si votre terminal les développe avant que zerocode ne reçoive la saisie.
Édition dans Composer
Les compositeurs Chat et Code prennent en charge ces valeurs par défaut. « Primary » désigne Command sur macOS et Control sur les autres systèmes ; les alias Control littéraux fonctionnent également lorsque votre terminal les transmet.
| Action | Raccourci par défaut |
|---|---|
| Annuler / Rétablir | Primary+Z / Primary+Shift+Z (également Control+Z / Control+Shift+Z) |
| Tout sélectionner | Primaire+A (également Ctrl+A) |
| Copier / Couper la sélection | Primary+C / Primary+X (également Control+C / Control+X) |
| Étendre la sélection | Maj+flèches, Maj+Début/Fin |
| Étendre la sélection par mot | Alt+Shift+Left/Right |
| Supprimer le mot suivant | Alt+Suppr |
| Effacer le texte | Primary+U (également Ctrl+U) |
L’historique d’annulation appartient au brouillon en cours et conserve au maximum 100 groupes de modifications. La saisie consécutive, espaces compris, s’annule en une seule étape. Une pause de deux secondes, un déplacement du curseur ou de la sélection, un clic ou un glisser-déposer de la souris, ou une autre commande d’édition met fin au groupe de saisie. Le texte collé, la complétion, la coupe, l’effacement et le saut de ligne forment chacun une modification distincte. Saisir du texte par-dessus une sélection démarre un nouveau groupe ; l’annulation restaure le texte sélectionné et la sélection. Le déplacement du curseur ne crée pas de modification. Une nouvelle modification de texte après une annulation supprime le rétablissement. L’annulation et le rétablissement restaurent le texte, le curseur et la sélection, mais n’ajoutent ni ne suppriment jamais de pièces jointes. L’envoi, le changement de session ou le chargement d’un message en file d’attente pour modification démarre un historique neuf.
Les raccourcis de sélection agissent sur la zone de saisie active, et non sur la barre latérale de la file d’attente. Copier une saisie sélectionnée n’annule pas un tour en cours et ne quitte pas l’application ; sans sélection de saisie, Control+C conserve son comportement d’annulation ou de sortie. Les boîtes de dialogue et la navigation dans la transcription conservent leurs propres raccourcis. Utilisez /attach pour parcourir les fichiers : l’action configurable browse files n’a pas de raccourci par défaut, car Primary+A sert désormais à sélectionner le texte. L’overlay d’aide affiche les raccourcis configurés actuellement.
Les raccourcis du terminal ou du système d’exploitation peuvent intercepter les événements Command, Control ou du presse-papiers avant que zerocode ne les reçoive. La copie dans le presse-papiers utilise la prise en charge d’OSC 52 par le terminal ; le collage entre crochets (bracketed paste) reste disponible.
options de ligne de commande
| Indicateur | Description |
|---|---|
--connect <url> | Se connecter à un démon distant via WSS (par ex. wss://host:9781) |
--tls-skip-verify | Ignorer la vérification du certificat TLS. Requis pour les certificats auto-signés |
--config-dir <path> | Remplacer le répertoire de configuration |
Statut du terminal
zerocode publie automatiquement l’état le plus urgent du tour Chat ou Code dans le terminal, à l’aide de deux conventions de séquences d’échappement :
- OSC 2 définit un titre d’onglet court et lisible, par exemple
⏳ my-agent — workingou⚠ my-agent — awaiting approval. - OSC 9;4 signale la progression comme effacée, indéterminée ou en avertissement, sans obliger un autre programme à analyser le texte du titre.
Les deux séquences dérivent les états inactif, en cours, bloqué et terminé du contrat de cycle de vie sans contenu dans zeroclaw-api ; Zerocode ne conserve les détails localisés, comme la réflexion, la réponse ou l’outil courant, que pour l’affichage. Chaque session active de la barre latérale est candidate, qu’elle soit au premier plan ou non : bloqué l’emporte sur en cours, en cours l’emporte sur inactif, et une session nommée gagne en cas d’égalité.
Il s’agit de métadonnées de terminal, et non d’une connexion à un gestionnaire d’espace de travail particulier. Les terminaux et multiplexeurs compatibles peuvent afficher, conserver ou consommer ces métadonnées, tandis que les logiciels qui ne prennent pas en charge ces séquences les ignorent. La charge utile ne comprend que l’alias de l’agent sélectionné et un statut ou un nom d’outil de longueur limitée. Elle n’inclut jamais l’invite, les arguments de l’outil, la sortie de l’outil ni le texte de la réponse.
Si la connexion au daemon est perdue, zerocode efface immédiatement la progression et publie le titre neutre ✓ zerocode au lieu de conserver un état en cours ou bloqué mis en cache. L’état de la session reste disponible pour la reconnexion, et l’état actif de la session n’est à nouveau projeté qu’après la reconnexion au daemon.
Lors d’une sortie normale et à la réception des signaux d’arrêt pris en charge, zerocode efface la progression et restaure le titre du terminal lorsque celui-ci prend en charge une pile de titres. Il écrit un titre neutre zerocode de repli pour les terminaux qui n’en disposent pas. Comme tous les programmes de terminal, il ne peut pas effectuer de nettoyage après un SIGKILL non interceptable ni après un arrêt brutal de la machine. Une mise à jour ultérieure du titre par le terminal ou le shell, ou la fermeture de l’onglet, efface cet affichage obsolète.