/save : exportez n'importe quelle session en JSON, Markdown ou HTML — même depuis le chat

C’est vendredi après-midi. Vous venez de passer trois heures avec Hermes à traquer un incident de production — à fouiller les logs, ajuster la config, enchaîner une dizaine de cycles de débogage — et enfin, c’est réglé. La suite logique : transformer toute cette investigation en document pour votre collègue, ou la ranger dans votre base de connaissances. Mais si votre seule option consiste à capturer le terminal écran par écran, ce savoir durement acquis reste prisonnier de l’historique de scroll pour toujours. Ça ne doit pas se passer comme ça : la commande /save de Hermes exporte toute la session dans un fichier en une seule ligne — JSON, Markdown ou HTML, avec la possibilité de redacter les secrets avant que quoi que ce soit ne touche le disque.
Ce qu’est /save
/save est la commande d’export en session de Hermes : tapez-la dans une conversation et tout l’échange est écrit dans un fichier. Le snapshot JSON brut existe depuis un moment, mais une mise à jour récente (fusionnée sur main à la mi-août 2026, PR #86806) en a fait un outil d’export multiplateforme :
/save json— un snapshot complet de la session, messages, appels d’outils et métadonnées compris. C’est la « source de vérité » lisible par machine, idéale pour les sauvegardes et la migration ;/save md— une transcription Markdown lisible, à coller directement dans vos docs, vos notes ou un message à un collègue ;/save html— une page HTML autonome en un seul fichier, qui s’ouvre dans n’importe quel navigateur sans aucune dépendance — le plus simple à partager.
Ces trois formats couvrent les trois besoins les plus courants : archiver, lire et partager. Et ce n’est pas limité au terminal : sur les plateformes de messagerie comme Telegram, Discord ou Slack, il suffit d’envoyer /save md à l’agent pour qu’il renvoie le fichier exporté directement dans le chat — l’intégralité de votre historique, tout de suite sur votre téléphone.
Comment l’utiliser
Dans le terminal, la syntaxe est :
/save <json|md|html> [filename] [redact]
Quelques exemples concrets :
/save # no arguments: prints the full usage help
/save json # full snapshot, auto-named, saved under ~/.hermes/sessions/saved/
/save md # Markdown transcript
/save html my-report.html # custom filename, single-file HTML
/save json backup redact # force-redact API keys and secrets before writing
Deux détails à connaître : les noms de fichiers sont assainis pour ne conserver que le dernier composant du chemin, donc impossible d’y glisser une traversée de chemin (path traversal) ; et quand vous ne donnez pas de nom, un nom est généré pour vous. En CLI, les fichiers exportés atterrissent dans ~/.hermes/sessions/saved/.
redact : nettoyer avant d’exporter
Les sessions accumulent vite les secrets — vous avez collé une API key pendant le débogage, montré un token dans un extrait de config, et tout cela vit dans la transcription. Exporter tel quel, c’est remettre les clés du royaume.
Le flag redact existe exactement pour cela : avant l’écriture, l’export passe par une passe de redaction forcée des secrets qui élimine tout ce qui ressemble à une API key, un token ou un mot de passe. Hermes redact déjà les secrets des sorties d’outils par défaut (security.redact_secrets), et /save redact ajoute une deuxième couche de protection à la frontière de l’export. Quand vous partagez une session avec quelqu’un d’autre, prendre le réflexe redact vous épargne bien des ennuis.
Aller plus loin : export par lot et autres commandes
Si vous avez besoin de plus que la session courante, la CLI dispose de hermes sessions export, qui gère plusieurs sessions d’un coup :
# Export to JSONL (the default format)
hermes sessions export backup.jsonl
# Export as Markdown into a directory
hermes sessions export out/ --format md
# Export as a Claude Code trace and upload to the Hugging Face Trace Viewer
hermes sessions export --format trace --upload
--format accepte jsonl, md, qmd, html et trace. Le format trace génère du Claude Code JSONL et, combiné à --upload, pousse le résultat vers l’Agent Trace Viewer de Hugging Face pour une analyse visuelle (cela nécessite un HF_TOKEN) ; --no-redact désactive la redaction forcée — à n’utiliser qu’après avoir relu le contenu manuellement.
Enfin, ne confondez pas /save avec /export : /save exporte la session courante, tandis que /export archive tout un profil (config, skills et thème empaquetés dans un tar.gz pour la migration et le partage). Des travaux différents, des commandes différentes.
Quelques points à connaître
- L’export ne touche pas à la session : chaque message est déjà persisté de façon incrémentale dans la base SQLite locale des sessions, donc
/savene fait que produire un snapshot — la session reste reprenable avechermes --resume <id>quand vous voulez la retrouver. - L’export json/md/html multiplateforme est récent : l’export complet en trois formats est arrivé sur
mainle 15 août 2026 ; dans v0.20.1 et les versions antérieures,/saverestait un simple snapshot JSON réservé à la CLI. Lancezhermes updatepour récupérer la dernière version (ou attendez la prochaine release) et toute la capacité est à vous. - Quel format choisir ? Conserver une archive, migrer ou alimenter des outils →
json. Lire et coller dans des documents →md. Partager avec quelqu’un qui l’ouvrira dans un navigateur →html.
Conclusion
/save fait partie de ces commandes auxquelles on ne pense pas, jusqu’au jour où on l’utilise une fois et où on ne peut plus s’en passer : archiver une session après une longue séance de débogage, transformer une conversation en Markdown pour le document de réunion, remettre à un collègue un historique HTML partageable. Combiné à redact pour l’hygiène des secrets et aux plateformes de chat qui vous renvoient le fichier directement, il libère du terminal le savoir accumulé dans vos sessions — archiver et organiser, récupérer et migrer deviennent aussi simples que d’envoyer un message. Pour plus de détails sur les commandes, consultez la référence des commandes de session ou nos notes de version v0.20.0.