# Centre d'agents

Le centre d'agents rassemble sur une seule page vos sessions Claude Code et
Codex de toutes vos connexions — fenêtres tmux, volets et sessions simples — et
vous permet de répondre à leurs invites sans partir à la recherche du bon
volet. Il est **expérimental** et désactivé par défaut : activez-le dans
**réglages → expérimental → centre d'agents**. Le désactiver plus tard ne
désinstalle pas les hooks de l'hôte.

Ouvrez-le depuis l'entrée **agents** de la barre latérale (sur iPhone, derrière
le sélecteur de l'onglet sessions — l'onglet porte une pastille lorsque des
agents vous attendent), avec **⌘⇧A**, ou depuis le bouton d'attention de la
barre supérieure qui apparaît lorsque des agents patientent. Lorsqu'un agent
attend dans le volet actif, le
[pavé de gestes](https://bambouville.com/docs/fr/swipe-pad/#options-dagent-en-direct) fait aussi apparaître
ses options sous forme de pétales.

## La page des agents

Les cartes sont groupées par état — **attend une saisie**, **vient de
terminer**, **en cours**, **inactif**, **état indisponible** — sous une ligne de
synthèse (« N agents · N sessions · N hôtes ») et une bannière « des agents
demandent votre attention / tout est à jour ».

Chaque carte affiche l'invite en cours de l'agent. Depuis une carte, vous
pouvez :

- appuyer sur **⇥** pour passer d'une carte à l'autre et sur **1**–**9** pour
  choisir une option numérotée,
- **⌘↩ ouvrir** — sauter directement à ce volet,
- saisir du texte dans le champ de message — « message à \<nom\>… » met en file
  d'attente, « demander à \<nom\>… » envoie immédiatement,
- interrompre l'agent.

Les réponses revérifient l'invite en cours avant d'être envoyées, et l'envoi
vérifie la soumission — vous ne répondez donc jamais à une question que l'agent
a déjà dépassée. Pendant qu'un agent débite sa sortie dans le terminal
lui-même, le défilement est brièvement verrouillé pour qu'un geste involontaire
ne vous emporte pas vers le haut en pleine exécution — si vous préférez défiler
librement, **réglages → terminal → verrouillage du défilement des agents**
désactive ce gel par fournisseur (**claude code** et **codex**, tous deux
activés par défaut). La détection, les cartes et les notifications ne sont pas
affectées.

![La page des agents avec des cartes groupées sous attend une saisie, vient de terminer, en cours et inactif, chaque carte affichant le fournisseur, la session, l'hôte, la fenêtre et le volet, ainsi que des boutons de réponse en ligne et un champ d'invite.](https://bambouville.com/docs/assets/img/agent-center.png)

*Les cartes sont groupées selon ce qui réclame votre attention en premier. Les agents bloqués exposent leurs choix sous forme de boutons en ligne.*


## Comment fonctionne la détection

La détection de base est heuristique : elle lit le texte du terminal en
s'appuyant sur les mêmes grammaires que les
[profils du pavé de gestes](https://bambouville.com/docs/fr/swipe-pad/#profils) (grammaires Claude Code et
Codex intégrées, plus les profils personnalisés que vous définissez).

Pour un **état précis**, Tessera propose un **hook d'état de l'agent**
facultatif, par hôte : un terminal expose les processus et les pixels, mais pas
si un agent calcule, est inactif ou bloqué — les hooks de cycle de vie des
agents eux-mêmes sont le signal faisant foi. Sans lui, les cartes indiquent
*état indisponible* et le centre se contente de détecter les agents ; il ne
devine jamais leur état.

L'installation du hook (depuis une carte à l'état indisponible ou depuis
l'avertissement ambre de la barre supérieure) montre toujours d'abord
exactement ce qu'elle va changer : elle place sous `~/.config/tessera` sur le
serveur des fichiers appartenant à Tessera, fusionne uniquement les
gestionnaires de Tessera dans les configurations utilisateur de Claude Code et
de Codex — sans jamais réécrire vos alias, fonctions ou hooks tiers
existants — et ajoute une ligne de sourcing protégée à `.zshrc` / `.bashrc`
(marquée `# TESSERA-AGENT-LIFECYCLE`). Ce qu'il renvoie n'est que des
métadonnées d'état — fournisseur, événement de cycle de vie, état, motif,
identifiants de session et de tour, type de notification, mode d'autorisation,
horodatage et identifiant de processus local — **jamais d'invites, de réponses,
de code source ni d'identifiants**.

Bon à savoir après une installation :

- Un shell doit le charger — ouvrez un nouveau shell ou une nouvelle fenêtre
  tmux (Tessera propose de le faire à une invite vide, et seulement là).
- Codex conserve sa propre frontière de confiance pour les hooks : le premier
  lancement intégré peut vous demander de vérifier le hook via `/hooks`.
- La page suit l'état du hook par hôte — non installé, actif, inactif ici ou
  obsolète —, répare automatiquement une intégration cassée et propose
  **mettre à jour le hook d'état** lorsqu'une version plus récente paraît. En
  mosh simple, la vérification peut exiger le déverrouillage d'une clé :
  Tessera attend donc que vous touchiez **vérifier maintenant** au lieu
  d'interroger en continu.

## Notifications d'attention

Avec les **notifications lorsqu'un agent réclame votre attention** activées,
Tessera affiche une bannière iOS — « \<hôte\> · \<fenêtre\> », « Claude Code
attend une saisie », « … vient de terminer » — lorsqu'un agent hors écran
termine ou vous attend pendant que Tessera est en arrière-plan. Toucher la
bannière vous amène directement au bon volet.

- L'activer désactive une fois les [notifications](https://bambouville.com/docs/fr/notifications/)
  d'arrière-plan de la cloche du terminal ; le canal des agents est le plus
  précis des deux.
- iOS peut suspendre les sessions longues en arrière-plan : la remise sur les
  sessions de très longue durée se fait donc au mieux.
