Synchronisation
Votre mémoire est un dépôt git ordinaire. Kessho la synchronise avec le git installé sur votre ordinateur, vers le distant que vous choisissez, et ne force jamais rien. Un témoin vous dit aussi quand la mémoire vient de changer.

Ce que vous voyez
La synchronisation se pilote à deux endroits : la barre d'état, pour un clic, et Réglages > Synchronisation, pour le détail.
- Dans la barre d'état, en bas de la fenêtre :
- le bouton Synchroniser la mémoire, tout à gauche (infobulle : « Synchroniser : commiter, récupérer, pousser ») ;
- le champ GIT, qui dit où en est le dépôt : à jour, N à pousser, N à récupérer, N non commités, conflit ou opération en cours. L'infobulle donne la ligne d'état complète.
- Dans Réglages > Synchronisation :
- La ligne d'état : la branche et son suivi, puis le retard et l'avance, par exemple « main → origin/main · 2 à pousser · 0 à récupérer · distant consulté 10:30 ». L'heure est celle de la dernière consultation du distant.
- Les trois gestes : Synchroniser, Récupérer, Pousser.
- Changements : le nombre de fichiers modifiés, supprimés et non suivis (« 3 modifiés · 0 supprimés · 1 non suivis »), la liste dépliable Voir la liste, le champ Message de commit et le bouton Commiter les changements.
- Distant : l'adresse du dépôt distant, et le champ URL du distant (https ou ssh).
- Automatisme : la case « Les agents commitent et synchronisent automatiquement ».
- Messages de commit : une ligne par origine (Un clic, Automatisme, Manuel, Agent IA) avec le modèle choisi et son Aperçu, puis Mes modèles et le bouton Nouveau modèle.
- Signalements, quand il y a quelque chose à dire.
- Le témoin de fraîcheur, en haut à droite, à côté de votre avatar : une pastille qui s'allume quand la mémoire change.
Si la mémoire n'est pas encore un dépôt, la section dit : « Cette mémoire n'est pas un dépôt git. L'initialiser ne crée aucun commit et ne la relie à aucun distant. » Si git n'est pas installé, elle affiche « git introuvable » avec la commande pour l'installer. Le reste de Kessho fonctionne sans git.
Ce que vous pouvez faire
Synchroniser en un clic
Cliquez Synchroniser la mémoire dans la barre d'état. Kessho fait trois choses, dans cet ordre :
- il commite ce qui a changé, sous le message que compose le modèle de l'origine Un clic, par défaut « vault backup: AAAA-MM-JJ HH:mm:ss » (rien n'est commité s'il n'y a rien de nouveau) ;
- il récupère les nouveautés du distant ;
- il pousse vos commits.
Rien n'est mis de côté et rien n'est forcé. À la fin, le champ GIT se met à jour ; un lecteur d'écran entend « Mémoire synchronisée. ».
Si quelque chose bloque, la barre affiche « échec : » suivi d'un mot (conflit, hors ligne, authentification, arbre sale, occupé, délai, identité, marqueurs). Passez la souris dessus pour lire la raison complète. Si le commit de sauvegarde a eu lieu avant l'échec, le message le précise : il est fait localement.
Le bouton est grisé, avec la raison en infobulle, quand aucun distant n'est connecté (« Aucun distant : connectez-en un plus bas. ») ou qu'une opération git est déjà en cours.
Commiter vos changements à la main
Dans Changements :
- Cliquez Voir la liste pour lire les fichiers concernés.
- Écrivez un Message de commit.
- Cliquez Commiter les changements, puis Confirmer à la question « Commiter N changements avec ce message ? ». Annuler abandonne.
Le champ est pré-rempli par le modèle de l'origine Manuel (par défaut « vault backup: AAAA-MM-JJ HH:mm:ss ») : vous pouvez le modifier ; dès que vous écrivez dedans, Kessho ne le remplace plus. Le bouton reste grisé tant que le message est vide. Le message ne peut pas dépasser 1 000 caractères. Il faut que votre nom et votre courriel de commit soient renseignés dans votre profil (le rond avec votre initiale, en haut à droite).
Récupérer ou pousser
- Récupérer va chercher les nouveautés du distant et les applique. Il est grisé tant que des changements ne sont pas commités : « Des changements non commités empêchent la récupération : commitez-les d'abord. »
- Pousser envoie vos commits. Il est grisé quand il n'y a rien à pousser.
- Synchroniser récupère, puis pousse.
Kessho ne récupère jamais tout seul : la ligne d'état affiche « N à récupérer », et c'est à vous de décider.
Connecter un distant
Dans Distant, collez l'adresse du dépôt dans URL du distant (https ou ssh) et cliquez Connecter (le bouton devient Modifier quand un distant est déjà connecté). Les formes acceptées sont https://hôte/chemin, ssh://hôte/chemin et utilisateur@hôte:chemin.
Aucun identifiant n'est stocké : Kessho utilise ceux de votre système. Une adresse qui en contient un est refusée.
Initialiser le dépôt
Si votre mémoire n'est pas encore un dépôt, cliquez Initialiser le dépôt. Cela ne crée aucun commit et ne la relie à aucun distant.
Laisser vos agents synchroniser
La case Automatisme (« Les agents commitent et synchronisent automatiquement ») est cochée par défaut. Quand elle l'est, chaque outil de vos agents IA qui écrit dans la mémoire commite ce qu'il a touché, et lui seul, puis pousse. Vos changements non commités ne partent jamais avec lui. Décochez la case pour reprendre la main.
La première ligne du message de ces commits se règle dans Composer le message de vos commits.
Pour demander une synchronisation à un agent, voir Synchroniser la mémoire. Les outils correspondants sont décrits dans la référence MCP.
Composer le message de vos commits
Dans Messages de commit (Réglages > Synchronisation, visible quand la mémoire est un dépôt git), chaque origine de commit compose son message d'après un modèle : l'un des modèles livrés, ou le vôtre. Le modèle règle la première ligne du message. Tant que vous n'y touchez pas, rien ne change : chaque origine garde son message habituel.
Les quatre origines
| Origine | Ce que le modèle règle | Modèle par défaut |
|---|---|---|
| Un clic | Le message du commit fait par le bouton Synchroniser la mémoire. | Horodaté : vault backup: {date} {heure_s}, soit « vault backup: 2026-10-21 14:05:09 ». |
| Automatisme | Seulement la première ligne du commit qu'un outil de vos agents IA fait après avoir écrit. Le corps, qui liste les fichiers, et les lignes Kessho-Outil, Kessho-Embarque et Kessho-Repris restent toujours. | Kessho · outil : kessho({outil}): {objet} {demande}, par exemple « kessho(mem_note): Architecture ». |
| Manuel | Le contenu pré-rempli du champ Message de commit ; vous pouvez le modifier avant de commiter. | Horodaté |
| Agent IA | Le message d'un commit demandé à l'agent par mem_git_commit. Le message de l'agent est toujours conservé : le modèle de l'agent ne peut que l'entourer (il doit contenir {message}, sinon il est ignoré avec un avertissement), et un message vide est toujours refusé. | Message de l'agent : {message}, le message tel que l'agent l'a écrit. |
Le message de la résolution d'un conflit n'est jamais concerné : Kessho le compose lui-même.
Le sujet composé par un modèle est coupé à 72 caractères (avec « … ») pour tous les modèles, sauf Kessho · outil et Message de l'agent, qui ne sont jamais coupés ; l'origine Agent IA n'y est jamais soumise. Quand un sujet est coupé, Kessho le signale.
Si le modèle choisi ne se rend plus, Kessho utilise le modèle par défaut de l'origine et le dit : l'Aperçu affiche « Le modèle enregistré est introuvable ou invalide : le modèle par défaut est utilisé. » Pour l'origine Un clic, le commit part avec le modèle par défaut et la barre d'état affiche un avertissement non bloquant, « modèle par défaut utilisé ». La synchronisation ne s'arrête avant tout commit que si aucun message exploitable n'a pu être composé ; l'échec s'affiche alors dans la barre d'état.
Choisir un modèle
- Sur la ligne de l'origine, cliquez le nom du modèle : un menu s'ouvre, avec Modèles livrés et Mes modèles.
- Choisissez-en un : il est enregistré aussitôt, et l'Aperçu de la ligne se met à jour.
- Pour revenir au modèle par défaut de l'origine, cliquez Rétablir le défaut (le bouton n'apparaît que si vous avez changé).
Les six modèles livrés
| Nom | Modèle | Exemple |
|---|---|---|
| Horodaté | vault backup: {date} {heure_s} | vault backup: 2026-10-21 14:05:09 |
| Journal | {date} {heure} · {utilisateur|—} | 2026-10-21 14:05 · Ben |
| Conventional Commits | chore(vault): {action|mise à jour} {n_total|plusieurs} note(s) | chore(vault): modification 4 note(s) |
| Trace d'agent | [{origine}] {outil} — {objet} | [automatisme] mem_note — Architecture |
| Kessho · outil | kessho({outil}): {objet} {demande} | kessho(mem_note): Architecture (apply) |
| Message de l'agent | {message} | correction de la note |
Aucun modèle livré n'emploie de variable sensible (voir la mise en garde plus bas).
La syntaxe d'un modèle
{variable}est remplacée par sa valeur au moment du commit.{variable|défaut}donne un texte de repli quand la variable est vide. Le texte de repli ne peut pas contenir d'accolade.{{écrit une accolade ouvrante,}}une accolade fermante.- Un modèle tient sur une seule ligne et compte 500 caractères au plus ; le message obtenu ne peut pas dépasser 1 000 caractères ni être vide.
- Une variable inconnue, une accolade sans sa paire ou un caractère de contrôle sont refusés avec un message qui dit quoi, et où quand il s'agit d'une position : une faute de frappe ne part jamais dans l'historique. L'éditeur liste alors les variables valides.
- Une variable sans valeur donne son repli, sinon rien : un commit n'échoue pas pour un compteur absent.
Les variables
Elles sont rangées par famille dans l'éditeur, où un clic sur une variable l'insère à l'emplacement du curseur. Quand une variable n'a pas de valeur pour l'origine que vous prévisualisez, l'éditeur le dit : elle restera vide, sauf valeur de repli.
| Famille | Variable | Ce qu'elle donne | Exemple |
|---|---|---|---|
| Temps | {date} | Date du jour | 2026-10-21 |
| Temps | {heure} | Heure, sans les secondes | 14:05 |
| Temps | {heure_s} | Heure, avec les secondes | 14:05:09 |
| Temps | {iso} | Date et heure complètes (ISO 8601), avec le fuseau | 2026-10-21T14:05:09+02:00 |
| Temps | {semaine} | Numéro de la semaine | 43 |
| Temps | {fuseau} | Décalage horaire local | +02:00 |
| Volume | {n_modifies} | Nombre de notes modifiées (pas pour l'automatisme) | 3 |
| Volume | {n_ajoutes} | Nombre de notes ajoutées (pas pour l'automatisme) | 1 |
| Volume | {n_supprimes} | Nombre de notes supprimées (pas pour l'automatisme) | 0 |
| Volume | {n_total} | Nombre total de notes touchées (pas pour l'automatisme) | 4 |
| Contexte | {utilisateur} | Votre nom, tel que signé dans le Profil | Ben |
| Contexte | {appareil} (sensible) | Nom de cet ordinateur | MacBook-de-Ben |
| Contexte | {memoire} | Nom de la mémoire (son dossier) | SecondBrain |
| Contexte | {branche} | Branche git courante | main |
| Contexte | {version} | Version de Kessho | 0.3.1 |
| Origine | {origine} | Origine du commit | un-clic |
| Origine | {outil} | Outil qui a écrit (automatisme seulement) | mem_note |
| Origine | {objet} | Objet de l'écriture, par exemple le titre d'une note (automatisme seulement) | Architecture |
| Origine | {message} | Message saisi (n'a de vraie valeur que pour l'agent ; l'aperçu manuel montre un exemple) | correction de la note |
| Origine | {demande} | Mode de la demande de l'outil (automatisme seulement) | (apply) |
| Action | {action} | Nature du changement : ajout, modification, suppression (pas pour l'automatisme ; vide quand il n'y a aucun changement) | modification |
| Contenu | {zones} (sensible) | Zones de la mémoire touchées | 10-episodes, 20-knowledge |
| Contenu | {projets} (sensible) | Projets touchés | kessho, atelier |
| Contenu | {fichiers} (sensible) | Notes touchées (les premières, puis le reste en +N) | a.md, b.md +3 |
{origine} vaut un-clic, automatisme, manuel ou agent.
Mise en garde : ce que les variables sensibles écrivent
Les variables de contenu ({zones}, {projets}, {fichiers}) et {appareil} révèlent ce que contient votre mémoire ou le nom de votre ordinateur. Le message composé est écrit dans l'historique git, puis poussé sur le dépôt distant que vous avez choisi : y figurer, c'est y rester. Aucun modèle livré n'en contient, et Kessho n'en met jamais dans un modèle que vous n'avez pas écrit. Dans l'éditeur, elles sont repliées sous Variables sensibles, et dès que votre modèle en emploie une, une note de vie privée la nomme.
Créer, modifier, supprimer un modèle personnel
- Nouveau modèle (ou Nouveau modèle… dans le menu d'une origine) ouvre l'éditeur. Donnez un Nom du modèle (1 à 40 caractères) et écrivez le Modèle. Vous pouvez en garder 20 au plus.
- L'Aperçu se met à jour en direct, avec le même moteur que le commit. Choisissez l'origine prévisualisée sous Aperçu pour l'origine : l'aperçu se rend comme le commit de cette origine.
- Tant que le modèle est refusé, Enregistrer le modèle reste grisé et le message d'erreur dit pourquoi. Un modèle créé depuis la ligne d'une origine est aussitôt choisi pour elle.
- Modifier rouvre un modèle de Mes modèles. Si vous quittez l'éditeur avec des changements, Kessho demande « Abandonner les modifications de ce modèle ? ».
- Supprimer le modèle demande confirmation et nomme les origines qui l'utilisent : elles reviennent à leur modèle par défaut.
Comprendre un refus
Les messages disent quoi faire. Les plus courants :
- Conflit : la récupération est annulée et rien n'a changé. Les fichiers en cause sont nommés : fusionnez-les à la main, commitez, puis synchronisez.
- Poussée refusée : le distant a avancé. Récupérez d'abord. Rien n'est jamais forcé.
- Hors ligne : le distant est injoignable. Rien n'a changé, réessayez plus tard.
- Authentification refusée : Kessho emploie les identifiants de votre système. Pour GitHub en https, lancez « gh auth login » ; sinon passez le distant en SSH.
- Opération en cours ou dépôt occupé : un autre processus git travaille sur la mémoire. Attendez un instant.
Dans Signalements, Kessho prévient aussi quand des marqueurs de conflit ont été commités dans un fichier, quand il a repris une opération interrompue, ou quand le greffon Obsidian Git synchronise la même mémoire (à deux, les automates se gênent : mettez ses intervalles à 0). Kessho ne modifie jamais la configuration d'Obsidian.
Savoir quand la mémoire a changé
Le témoin de fraîcheur, en haut à droite, s'allume quand la mémoire change, par exemple quand un agent vient d'écrire. Cliquez-le pour ouvrir son panneau.

- La première ligne dit depuis quand : « Vu il y a une seconde. » Sans changement depuis l'ouverture : « Aucun changement depuis l'ouverture. » Si le relevé échoue : « Impossible de relever l'état de la mémoire. »
- Mouvements depuis le dernier rechargement liste les zones qui ont bougé, avec le nombre de mouvements : « Procédures 1 ». Ce nombre compte les mouvements, pas la taille de la zone : ajouter une note puis la retirer en fait deux.
- Quand une note a changé sans qu'aucune zone ne change de taille, le panneau le dit : « Une note a été modifiée, sans qu'aucune zone ne change de taille. »
- Relire recharge ce que l'écran affiche et remet le compteur à zéro.