floernt43 downloadsAugmented reading: comment on passages or points of a note, write and reply in a side panel, and sort comments into coloured categories linked to tags.
Documentation: hypomnema.tools — concepts, method notes, integrations (Dataview, QuickAdd, Templater, Kanban, Tasks), API. · Documentation : hypomnema.tools/fr — concepts, notes de méthode, intégrations, API.
Hypomnema is an Obsidian plugin for augmented reading, reflection and knowledge organisation. Comment on a passage, or on a precise point, of any note. Write, reply and navigate in a side panel, much like the comments pane in Word. Classify your comments into coloured categories linked to tags. It works especially well with web articles saved through the Obsidian Web Clipper, the official browser extension that turns a web page into a Markdown note: the source text and your remarks never get mixed up.
Comments are stored as plain text inside the note itself. They are searchable, they sync with the rest of your vault, and they remain readable without the plugin.
The plugin's interface follows Obsidian's language: French when Obsidian is set to French, English otherwise.
The screenshots below come from the sample vault in demo-vault/, with real Obsidian and the real plugin, in Live Preview.
1. The text, and the thinking next to it. Commented passages get a light tint and an underline in their category's colour. The Comments panel on the right lists every comment in text order, with the quoted passage, the date, the category and the replies. The note itself stays readable: no inline clutter, no footnotes to scroll to.

2. Writing without hiding the text. Select a sentence and run the command. The draft opens in the panel, beside the passage, not in a pop-up that covers it. Pick a category, write, then press Ctrl+Enter.

3. Metadata that follows your reading. Saving a comment in the Quote category added the quote tag to the note's properties. Your reading now shows up in tag searches, the tags pane and Dataview queries, with no manual tagging. Remove the last Quote comment and the tag goes away, unless you had set it yourself.

4. Commenting on a point, not just a passage. With no selection, the comment is attached to the cursor position and shows as a small bubble in the text. Click it, and the panel brings up its thread, along with a few words of context around the point.

5. Comments are searchable across the vault. Diophantus appears only in a comment, never in the article. Obsidian's ordinary search still finds the note, because comments are plain text inside it.

6. Your own categories. Each category is a name, a colour and a tag: Idea, Question, To verify, Quote, or whatever suits your way of reading.

Steps 7 and 8 are optional. Both are off until you turn them on, and neither changes how comments are stored. They exist for one reason: an annotation tool should help you take your thinking back, not keep it for you. Writing a comment hands a thought over to the machine; these two features are about getting it back, rereading it and reworking it. Florian Ernotte develops the idea, in French, under the name operational dispossession.
7. Comments in the margin. Turn on Comments in the margin in Settings → Hypomnema, or run the command Show or hide comments in the margin. Each comment then sits beside its passage, like a note pencilled in the margin of a book, in the colour of its category. Hover a note to highlight its passage; click it to open the thread in the panel, where you still write and reply. Margin content shows either the comment alone or the whole thread.

When the pane is too narrow for a margin (with the side panel open, or on a small screen), each comment moves below its paragraph instead.

Why it matters: in the panel, your comments live in a tool beside the text. In the margin, you reread yourself while rereading the source, and the dialogue between the two stays in view.
8. Extract your comments into a note. The command Extract comments from this note, or a right-click on a folder → Extract comments from this folder, copies your comments into a separate note. You choose the format: a list grouped by category, a table, or a Kanban board with one column per category and a Done column. Each comment ends with a ↩ link that reopens the source note and selects the passage. Running the extraction again only adds the comments written since: cards you have moved or ticked stay where they are.

The format, the destination folder, the note name and the line template ({{text}}, {{quote}}, {{category}}, {{date}}, {{note}}, {{link}}…) are set in Settings → Hypomnema.

The extraction note carries properties (hypomnema-extract, hypomnema-source, hypomnema-date), so Dataview finds it, and its items are ordinary tasks. The recipes and the integration pages give ready-made queries, a review board workflow and a QuickAdd macro.

Why it matters: a comment is worth something only when you come back to it. Extraction turns your comments into material you rework: you sort them, drop some, turn others into tasks or into writing. Otherwise they stay as traces stored on your behalf.
tag:#…, the tags pane and Dataview.When a comment gets a category, its tag is added to the note's tags property. The tag is removed when no comment of that category remains, unless the note already had that tag before. The plugin keeps track of the tags it added in its data.json.
A commented passage is wrapped in two Obsidian comments that share an id. A comment placed at the cursor is an empty anchor:
The author argues that %%[a1%%memory is a reconstruction%%a1]%% rather than a recording.
A comment placed here %%[a2%%%%a2]%% without a selection.
The comment texts live in a single block at the end of the note:
%% annotations
[a1] 2026-10-31 #idea First comment
continued (indented continuation lines)
[a1.1] 2026-11-04 Reply to comment a1
[a2] 2026-10-31 Comment without a category
%%
aN; its replies are aN.k, indented by two spaces.[id] YYYY-MM-DD. An optional #tag (the category, root comments only) can follow, then the text. Indented lines that follow continue the entry.# is written as \#….%% is hidden in reading view, so the note stays clean without the plugin.%%\[(a\d+)%%([\s\S]*?)%%\1\]%%. For a cursor comment, group 2 is empty.The plugin works in Live Preview only. In reading view the markers are hidden, but passages are not underlined. Threads have a single level of replies, and each comment has a single category.
Margin comments appear in Live Preview and source mode, not in reading view. The margin needs empty space to the right of the text: with Readable line length turned off, comments go below their paragraph. An extraction note is a copy: editing it does not change the comments in the source note.
Hypomnema is in Obsidian's community directory: open Settings → Community plugins → Browse, search for "Hypomnema", then Install and Enable. To try a version before it reaches the directory, download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/hypomnema/.
Hypomnema est un outil de lecture augmentée, de réflexion et d'organisation de la connaissance. Il permet de commenter un passage ou un point précis d'une note. On rédige, on répond et on navigue dans un panneau latéral, comme le volet des commentaires de Word. Les commentaires se classent par catégories de couleur reliées à des tags. Il convient particulièrement aux articles du web capturés avec l'Obsidian Web Clipper, l'extension officielle qui transforme une page web en note Markdown : le texte source et vos remarques ne se mélangent jamais.
L'interface du plugin suit la langue d'Obsidian : en français quand Obsidian est en français, en anglais sinon.
Les commentaires restent du texte brut dans la note : ils sont cherchables, synchronisables et lisibles sans le plugin.
Les captures ci-dessous proviennent du coffre d'exemple demo-vault/, dans le vrai Obsidian, avec le vrai plugin, en Aperçu en direct.
1. Le texte, et la réflexion à côté. Les passages commentés reçoivent une teinte légère et un soulignement de la couleur de leur catégorie. Le panneau « Commentaires », à droite, liste tous les commentaires dans l'ordre du texte, avec le passage cité, la date, la catégorie et les réponses. La note reste lisible : rien n'encombre les lignes, aucune note de bas de page à aller chercher.

2. Rédiger sans masquer le texte. On sélectionne une phrase et on lance la commande. La rédaction s'ouvre dans le panneau, à côté du passage, et non dans une fenêtre qui le recouvre. On choisit une catégorie, on écrit, puis Ctrl+Entrée.

3. Des métadonnées qui suivent la lecture. Enregistrer un commentaire de la catégorie « Citation » a ajouté le tag citation aux propriétés de la note. La lecture apparaît désormais dans les recherches par tag, le volet des tags et les requêtes Dataview, sans étiquetage manuel. Si l'on supprime le dernier commentaire « Citation », le tag disparaît, sauf si on l'avait posé soi-même.

4. Commenter un point, pas seulement un passage. Sans sélection, le commentaire s'attache à la position du curseur et apparaît comme une petite bulle dans le texte. Un clic sur la bulle met son fil en avant dans le panneau, avec quelques mots de contexte autour.

5. Des commentaires cherchables dans tout le coffre. « Diophante » ne figure que dans un commentaire, jamais dans l'article. La recherche ordinaire d'Obsidian retrouve pourtant la note, puisque les commentaires sont du texte brut qu'elle contient.

6. Vos propres catégories. Chaque catégorie associe un nom, une couleur et un tag : « Idée », « Question », « À vérifier », « Citation », ou ce qui convient à votre manière de lire.

Les étapes 7 et 8 sont facultatives. Ni l'une ni l'autre ne s'active tant qu'on ne la met pas en marche, et aucune ne modifie la manière dont les commentaires sont stockés. Elles répondent à une même intention : un outil d'annotation doit aider à reprendre sa pensée, pas la garder à sa place. Écrire un commentaire, c'est confier une réflexion à la machine. Ces deux fonctions servent à la récupérer, à la relire, à la retravailler. L'idée est développée sous le nom de « dépossession opératoire ».
7. Les commentaires en marge. On active Commentaires en marge dans Paramètres → Hypomnema, ou la commande Afficher ou masquer les commentaires en marge. Chaque commentaire s'affiche alors à côté de son passage, comme une note au crayon dans la marge d'un livre, dans la couleur de sa catégorie. Le survol d'une note met son passage en évidence. Un clic ouvre le fil dans le panneau, où l'on continue de rédiger et de répondre. Le réglage Contenu de la marge affiche le commentaire seul ou le fil entier.

Quand la place manque pour une marge (panneau latéral ouvert, petit écran), chaque commentaire passe sous son paragraphe.

Pourquoi : dans le panneau, les commentaires vivent dans un outil à côté du texte. En marge, on se relit en relisant la source, et le dialogue entre les deux reste sous les yeux.
8. Extraire ses commentaires dans une note. La commande Extraire les commentaires de cette note, ou un clic droit sur un dossier → Extraire les commentaires de ce dossier, recopie les commentaires dans une note à part. Trois formats sont proposés : une liste par catégorie, un tableau, ou un tableau Kanban avec une colonne par catégorie et une colonne Fait. Chaque commentaire se termine par un lien ↩ qui rouvre la note source et sélectionne le passage. Une nouvelle extraction n'ajoute que les commentaires écrits depuis : les cartes déplacées ou cochées restent où elles sont.

Le format, le dossier de destination, le nom de la note et le gabarit de ligne ({{text}}, {{quote}}, {{category}}, {{date}}, {{note}}, {{link}}…) se règlent dans Paramètres → Hypomnema.

La note d'extraction porte des propriétés (hypomnema-extract, hypomnema-source, hypomnema-date) que Dataview sait retrouver, et ses éléments sont des tâches ordinaires. Les recettes et les pages d'intégration proposent des requêtes prêtes à l'emploi, une méthode de relecture en Kanban et une macro QuickAdd.

Pourquoi : un commentaire ne vaut que si l'on y revient. L'extraction transforme les annotations en matière à retravailler : on les trie, on en écarte, on en fait des tâches ou un texte. Sans cela, elles restent des traces stockées pour le compte de l'utilisateur.
tag:#…, le volet des tags et Dataview.Quand un commentaire reçoit une catégorie, le tag correspondant est ajouté à la propriété tags de la note. Il est retiré quand plus aucun commentaire de cette catégorie n'y figure, sauf si la note portait déjà ce tag avant. Pour faire la différence, le plugin garde dans data.json la liste des tags qu'il a lui-même ajoutés.
Le format est décrit dans la section anglaise et vaut à l'identique ici. Le passage commenté est délimité par %%[aN%%…%%aN]%% ; un commentaire au curseur est une ancre vide %%[aN%%%%aN]%%. Le texte des commentaires se trouve dans un bloc %% annotations … %% en fin de note, avec une entrée par commentaire : [aN] AAAA-MM-JJ #tag texte, les réponses [aN.k] étant indentées.
Le plugin fonctionne uniquement en Aperçu en direct : en mode lecture, les marqueurs sont masqués, mais le passage n'est pas souligné. Les fils ne comptent qu'un niveau de réponse, et chaque commentaire n'a qu'une catégorie.
Les commentaires en marge s'affichent en Aperçu en direct et en mode source, pas en mode lecture. La marge a besoin d'espace libre à droite du texte : si la longueur de ligne lisible est désactivée, les commentaires passent sous leur paragraphe. Une note d'extraction est une copie : la modifier ne change pas les commentaires de la note source.
Hypomnema figure dans le catalogue communautaire d'Obsidian : ouvrez Paramètres → Modules complémentaires → Parcourir, cherchez « Hypomnema », puis Installer et Activer. Pour essayer une version avant sa publication dans le catalogue, téléchargez main.js, manifest.json et styles.css depuis la dernière release dans <coffre>/.obsidian/plugins/hypomnema/.
npm install
npm test # format tests / tests du format (vitest)
npm run build # build + copy into test-vault/.obsidian/plugins/
npm run dev # watch mode / compilation continue
test-vault/ is a sample vault for manual testing. / test-vault/ est un coffre d'essai.
The tour's screenshots and GIFs are produced by scripts/capture.mjs. It drives a separate Obsidian instance opened on demo-vault/ (see the comments at the top of the script). / Les captures et GIF de la visite sont produits par scripts/capture.mjs, qui pilote une instance séparée d'Obsidian ouverte sur demo-vault/ (mode d'emploi en tête du script).
The version history, including every change to the storage format, is kept in CHANGELOG.md.
[Non publié] entries under a new, dated version number.manifest.json and package.json, and add it to versions.json with its minAppVersion.npm test, then npm run build, and commit.v), for example git tag 0.4.1 && git push origin 0.4.1. The release workflow builds main.js, manifest.json and styles.css from the repository, attests their provenance and publishes the GitHub release with the matching CHANGELOG section. Anyone can check a downloaded file with gh attestation verify main.js -R Floernt/hypomnema.Hypomnema is a young tool, shaped so far by one person's way of reading. Other ways of reading will make it better, and contributions are welcome:
%% annotations block) helps a lot.A few rules keep the plugin trustworthy, since it writes into people's notes:
tests/syntax.test.ts, and described under a Format heading in the CHANGELOG.[Non publié] (unreleased) section of the CHANGELOG. Entries are written in French for now; English is fine, it will be translated.npm test and npm run build, and try the change in test-vault/, ideally on mobile too.Hypomnema est un outil jeune, façonné jusqu'ici par une seule manière de lire. D'autres manières de lire le rendront meilleur, et les contributions sont les bienvenues :
%% annotations) aide beaucoup.Quelques règles garantissent la fiabilité du plugin, puisqu'il écrit dans les notes de ses utilisateurs :
tests/syntax.test.ts, et décrite sous une rubrique Format du CHANGELOG.[Non publié] du CHANGELOG.npm test et npm run build, et essayez la modification dans test-vault/, idéalement aussi sur mobile.The interface follows Obsidian's language and falls back to English. / L'interface suit la langue d'Obsidian et revient à l'anglais par défaut.
To add a language / Pour ajouter une langue :
src/i18n.ts, copy the en dictionary into a new one typed Record<Key, string> (TypeScript flags any missing key). / Dans src/i18n.ts, copiez le dictionnaire en dans un nouveau dictionnaire typé Record<Key, string> (TypeScript signale toute clé manquante).locales under Obsidian's language code. / Déclarez-le dans locales sous le code de langue d'Obsidian.defaultCategoryName and defaultCategoryTag too: they name the sample category created on first install. / Traduisez aussi defaultCategoryName et defaultCategoryTag, qui nomment la catégorie d'exemple créée à la première installation.en)fr)nl)de)es)it)pt, pt-br)pl)ru)uk)ja)ko)zh-cn, zh-tw)Missing your language? Add it to the list. / Votre langue manque ? Ajoutez-la à la liste.
MIT. See LICENSE.