Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Carnet du Poete

Sébastien WallachiaSébastien Wallachia43 downloads

Syllable counter (rule for the omitted ‘e’ + detection of possible umlauts) and rhyming dictionary for French poetry.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates21

A companion for writing French verse in Obsidian: syllable counting with full scansion breakdown, a rhyming dictionary, thematic vocabulary, synonyms/antonyms (including live lookup from external sources), and a quick reference on French versification — all in one side panel, no internet connection required for the core features.

Features

  • Syllables — paste or type your verses; each line is broken down into syllables in real time (mon/ta/gne), following the classic rule for the silent e (counted only when it is neither at the end of a line nor followed by a word starting with a vowel). The metre (octosyllable, alexandrine, etc.) and the rhyme's gender (a small F/M badge — feminine if the line ends on a silent e, masculine otherwise) are detected automatically. When a word contains an ambiguous hiatus (e.g. nation, poésie, paupière), the main line is labelled synérèse (the default reading, hiatus read as one syllable) and a second line underneath, labelled diérèse, shows the full breakdown with that hiatus split into two syllables — you decide which reading fits your verse. This second line can be toggled on/off with the "Variante diérèse" checkbox if you'd rather keep the view lighter.
    • Rhyme scheme detection — the poem is split into stanzas (blank-line separated); each stanza's end-rhymes are grouped and labelled A/B/C..., and a 4-line stanza matching AABB, ABAB or ABBA is named accordingly, shown just below the syllable counts.
    • Rhyme colour-coding — toggle "Couleurs de rimes" to give each line a coloured badge and border matching its rhyme group, making rhyme pairs easy to spot at a glance in the analysis view. (This applies to the rendered analysis, not the raw text box itself — colouring live text inside a plain editable text area isn't something a text <textarea> supports.)
    • Markdown export — the "📋 Exporter en Markdown" button copies a table (verse / syllable count / rhyme gender / rhyme letter / rhyme quality) to your clipboard, ready to paste into any note. Rhyme quality is only filled in for the second (and later) line of each rhyme group, relative to the first line that introduced it.
  • Rhymes — type a word and get masculine/feminine rhyme suggestions with their syllable count, drawn from roughly sixty built-in sound families. If you supply a complete phonetic rhyme dictionary (see below), exact matches from it take priority over the built-in approximation. Results can be narrowed down with filters (first letter, syllable count, and rhyme quality — pauvre / suffisante / riche, estimated from how many trailing letters the candidate shares with your word). Each group shows a colour-coded quality summary (counts per quality) and every word chip carries a matching coloured border and badge, for a quick visual read of the list. You can also tick RimesSolides to pull in additional live results from rimessolides.com. A global "Mode assonance" toggle (off by default — strict rhymes only) additionally surfaces words that share the same vowel but differ in what follows it (e.g. ombre/montre — same nasal vowel, but "b" vs "t" right before the final "r"), shown in a clearly separate, dashed-border section so they're never mixed in with true rhymes. This mode also loosens the rhyme-scheme detection and colour-coding in the Syllables tab, since both features share the same underlying check.
  • Inspiration — type a common word (forest, sea, night, love, medieval...) and get rarer, more literary or archaic vocabulary on the same theme (e.g. forest → canopy-related words such as canopée, sylve, futaie, orée), each with a short gloss. About thirty themes are built in, including one dedicated to old/archaic French vocabulary. You can optionally tick Wiktionnaire and/or CRISCO to pull in related words fetched live as extra inspiration candidates.
  • Synonyms — type a word to see synonyms and antonyms. A small built-in dictionary answers instantly offline; you can additionally enable live lookups from Wiktionnaire and/or CRISCO (Université de Caen's synonym dictionary), toggled independently with checkboxes, with a one-click button to save any online result into your personal dictionary for future offline use. See Online sources below.
  • Definitions — look up a rare word before using it: fetches a definition excerpt and etymology from CNRTL (the Trésor de la Langue Française informatisé), with a link to the full entry. On-demand only — nothing is looked up automatically.
  • Hasard — one button, one rare or forgotten French word at random (smaragdin, coruscant, pétrichor, s'ennuiter...), with a short gloss and quick links to look it up in the Definitions or Rhymes tab. Extensible with your own words via motsRares in dictionnaire-perso.json.
  • Guide — a quick reference: how French syllable counting works, metre names, caesura, enjambment, stanza names, a handful of classic poem forms (sonnet, rondeau, ballade, villanelle, pantoum, triolet, virelai, tanka, calligramme, ode, haiku, fable, acrostic, free verse...), and the basics of rhyme (rhyme schemes, rhyme quality, masculine/feminine alternation, eye-rhymes vs. ear-rhymes).
  • Persistent draft — your syllable-counter text is saved automatically between sessions.
  • Commands (Command palette, Ctrl/Cmd+P):
    • Open the Carnet du Poete
    • Count the syllables in the selection (or the current line) — shows the result, including rhyme gender and diaeresis alternative, in a notification.
    • Search for rhymes for the selected word
    • Search for inspiration (vocabulary) for the selected word
    • Reload the personal dictionary (dictionnaire-perso.json)

Manual installation

  1. Locate your vault's plugin folder: <your-vault>/.obsidian/plugins/ (create the plugins folder if it doesn't exist yet).
  2. Copy the entire plugin folder into it, then make sure it is named carnet-du-poete (it must contain manifest.json, main.js and styles.css).
  3. In Obsidian: Settings → Community plugins. Turn off Restricted Mode if needed, then enable Carnet du Poete in the list.
  4. A quill 🪶 icon appears in the left ribbon — click it to open the notebook.

No build step is required: the plugin is plain JavaScript, ready to run.

If you install via BRAT, note that BRAT only downloads main.js, manifest.json and styles.css from the repository — it never copies a custom data file such as dictionnaire-perso.json. See the next section for where to put it instead.

Extending your dictionaries with dictionnaire-perso.json

Everything below is optional. Out of the box, the plugin already ships with a curated rhyme dictionary, ~30 vocabulary themes, and a small synonym list. dictionnaire-perso.json lets you add to (or, for rhymes, largely replace) any of these — all from a single file.

Where the plugin looks for it

The plugin searches, in order, and stops at the first match:

  1. The plugin's own folder (.obsidian/plugins/carnet-du-poete/).
  2. The root of .obsidian.
  3. The root of the vault itself.
  4. Anywhere else in the vault's normal content (any note folder) — the simplest option on mobile or with BRAT: just drop the file into your vault like any other file.
  5. Any subfolder of .obsidian, searched recursively (up to 5 levels deep), in case it ended up somewhere unexpected.

You can reload it at any time without restarting Obsidian via the command "Reload the personal dictionary (dictionnaire-perso.json)" — a notification will confirm what was found, or tell you it searched everywhere and found nothing.

Supported formats

All of the following top-level keys are optional and can be combined freely in the same file.

A) Custom rhyme families (added to the built-in ones):

{
  "familles": [
    {
      "son": "-onk [custom]",
      "exemple": "conque, jonque",
      "terms": ["onque", "onk"],
      "mots": ["conque", "jonque", "adonque"]
    }
  ]
}

terms are the spelling endings that trigger this family (longer, more specific endings win ties). mots is the list of words offered as rhymes.

B) A complete phonetic rhyme dictionary (exact matches from it take priority over the built-in approximation):

{
  "ka": ["avocat", "cas", "syndicat", "..."],
  "sa": ["cassa", "dansa", "pensa", "..."]
}

A flat object where each key is a phonetic rhyme identifier (its exact form doesn't matter, it is never shown) and the value is the list of words that truly rhyme, grouped by actual French pronunciation rather than spelling. This is the export format used by projects such as Remède; if you ever generate one (for instance from a phonetic lexicon such as Lexique383), drop it in as-is. Very large groups (some verb-conjugation endings exceed a thousand words) are shown 100 at a time with a button to reveal the rest.

C) Custom vocabulary themes for the Inspiration tab (added to the built-in ones):

{
  "champsLexicaux": [
    {
      "theme": "My custom theme",
      "motsClefs": ["trigger1", "trigger2"],
      "mots": [
        { "mot": "rareword", "note": "short gloss or nuance" }
      ]
    }
  ]
}

motsClefs are the everyday words that trigger this theme in the Inspiration tab (matching ignores accents and simple plurals).

D) Custom synonyms/antonyms (added to the built-in ones — this is also exactly what the "💾 Save to my personal dictionary" button in the Synonyms tab writes for you automatically):

{
  "synonymes": [
    { "mot": "brume", "synonymes": ["brouillard", "vapeur"], "antonymes": ["clarté"] }
  ]
}

E) Custom words for the Hasard tab (added to the built-in pool of rare/forgotten words):

{
  "motsRares": [
    { "mot": "estival", "note": "qui appartient à l'été" }
  ]
}

Online sources

Several tabs can query external sites live, directly from your device (the plugin uses Obsidian's requestUrl API, which works the same way on desktop and mobile, without running into browser CORS restrictions). Four sources are built in:

  • Wiktionnaire (fr.wiktionary.org) — the French Wiktionary's own API, parsed for its "Synonymes"/"Antonymes" sections. Used in the Synonyms and Inspiration tabs.
  • CRISCO (crisco4.unicaen.fr) — Université de Caen's Dictionnaire Électronique des Synonymes, an academic resource with tens of thousands of curated entries. Used in the Synonyms and Inspiration tabs.
  • RimesSolides (rimessolides.com) — a French rhyming dictionary with IPA transcriptions. Used in the Rhymes tab.
  • CNRTL (cnrtl.fr) — the Trésor de la Langue Française informatisé, used in the Definitions tab. Unlike the other three, this one has no opt-in checkbox: it is only ever queried when you explicitly search in the Definitions tab.

The Wiktionnaire/CRISCO/RimesSolides checkboxes are opt-in (your choice is remembered per tab). Nothing is queried unless you tick a box and press Search — nothing is sent anywhere by default. In the Synonyms and Inspiration tabs, when a source returns results, a "💾 Save to my personal dictionary" button lets you write them into dictionnaire-perso.json in one click (creating the file at the root of your vault if none exists yet), so the word becomes available offline from then on.

Adding another source to the Synonyms/Inspiration tabs is a small, self-contained change: it needs a function that takes a word and returns { synonymes: [...], antonymes: [...], trouve: true|false }, registered in the SOURCES_EN_LIGNE table near the top of main.js. Open an issue or ask if you'd like a specific source added.

Fair use note: these are third-party sites without a public API contract; the plugin fetches their normal pages and extracts the relevant section. If a site changes its layout, that source may temporarily return no results — the other source(s) and the local dictionaries are unaffected. CNRTL has announced a full portal redesign for 1 September 2026 (details); if the URL structure changes after that date, the Definitions tab may need an update.

Known limitations

  • Syllable counting is a spelling-based heuristic (like most free online tools), not a full phonetic transcription: very irregular cases (complex liaisons, rare words, Latinate or Greek-derived words) may need manual judgement.
  • Whether a silent e elides before a word starting with a vowel follows the classic versification rule, but some other online tools don't apply this consistently — expect occasional differences with them, especially on free verse. The full syllable breakdown is shown precisely so you can check the choice yourself, line by line.
  • Diaeresis/synaeresis detection relies on a list of "fixed" diphthongs (always 1 syllable); any vowel hiatus outside that list is flagged as a possible diaeresis, and the alternate breakdown is shown — the choice of reading is yours.
  • The built-in rhyme, vocabulary and synonym dictionaries are hand-curated, not exhaustive; a rare word may not be recognised. The optional complete phonetic rhyme dictionary (format B above) largely closes that gap for rhymes specifically.
  • Rhyme quality (pauvre / suffisante / riche) is estimated by comparing trailing letters, not real phonetic transcription — a reasonable approximation for most common spelling patterns, but not infallible (silent letters can throw it off occasionally).
  • The online sources depend on third-party websites staying reachable and structurally unchanged; treat them as a bonus on top of, not a replacement for, the offline dictionaries.
  • Rhyme-pair colour-coding applies to the rendered analysis below the text box, not to the raw text box itself, which a plain HTML <textarea> cannot style character-by-character.

Changelog

  • 2.6.0 — New global "Mode assonance" toggle in the Rhymes tab (like the diaeresis toggle, off by default): when enabled, assonances (same vowel, different ending) are shown in their own clearly separate section instead of being excluded entirely, for both the local phonetic dictionary (now searched across all its groups, not just the query word's own group) and RimesSolides. The same toggle also loosens the Syllables tab's rhyme-scheme detection and colour-coding. Also fixed a latent bug this surfaced: the local phonetic dictionary's internal word-list storage still included the motsRares/champsLexicaux/synonymes custom-dictionary sections, which could crash a full-dictionary scan.
  • 2.5.5 — RimesSolides results now go through the same vowel-consistency filter as the local phonetic dictionary. RimesSolides accepts a looser definition of "rime" than classical French poetry (e.g. it lists "montre", "rompre", "fondre" as rhyming with "ombre" — same nasal vowel, but a different consonant right before the final "r", which is an assonance, not a true rhyme). The plugin now applies its own stricter standard consistently, regardless of what a given source considers acceptable.
  • 2.5.4 — All four online sources (Wiktionnaire, CRISCO, CNRTL, RimesSolides) now send a standard browser User-Agent header with their request; some sites treat unidentified/non-browser requests differently, which could silently return an empty or different page even though the same URL works fine when fetched normally. If RimesSolides still returns nothing for a word that clearly has results on the site, check the developer console — it now logs the response length and a preview of what was actually received, to make the real cause visible.
  • 2.5.3 — The vowel-consistency safety net (added in 2.5.2 for the Syllables tab's rhyme scheme/colours only) is now also applied to the Rhymes tab's actual search results, which is the more important fix: a phonetic dictionary group that wrongly mixes unrelated vowels (e.g. everything ending in "-bre") no longer surfaces bad matches in search results or their quality badge. Also fixed the nasal/oral distinction itself: "ombre" (nasal) and "octobre" (oral, despite both starting with the letter "o") were still being treated as compatible; the consistency check now accounts for the nasalising m/n that follows a vowel, not just the vowel letter itself.
  • 2.5.2 — The rhyme-scheme/colour-coding matcher no longer blindly trusts a match from the optional phonetic dictionary when it clearly contradicts the spelling-based vowel check (e.g. a dictionary that groups "sombre" and "ténèbres" together purely because both end in "-bre", ignoring the very different preceding vowel — not a real rhyme, at best an assonance). The phonetic dictionary is still trusted when nothing contradicts it.
  • 2.5.1 — Fixed the rhyme-scheme/colour-coding fallback key wrongly matching words that only share their last two letters regardless of the preceding vowel sound (e.g. "sombre" and "ténèbres" were flagged as rhyming — an assonance at best, sharing only the "-bre" ending, not a real rhyme). The key is now anchored on the last actually-pronounced vowel instead of a fixed number of trailing letters, with common nasal-vowel spelling equivalences (en/an, ain/ein/yn → in) still normalised so genuine matches like "démente"/"envoûtante" keep working.
  • 2.5.0 — The "-gue" ambiguity (vague, guerre, digue... when the final e would normally elide) is no longer silently resolved one way or the other: it now surfaces through the same synérèse/diérèse variant mechanism as hiatus, so both readings are visible and you choose. This was prompted by spotting a genuine inconsistency in Scribblab itself on this exact point (its own displayed breakdown didn't match its own displayed total for a "vague" line) — rather than pick a side, the ambiguity is now made explicit.
  • 2.4.1 — The main (synérèse) line is now explicitly labelled as such whenever a diaeresis variant exists underneath, instead of only the diaeresis line being labelled — makes it clear at a glance which reading is which.
  • 2.4.0 — Two significant syllable-counting fixes found by testing Lamartine's complete "L'Isolement" against Scribblab (went from 3/14 to 11-12/14 exact matches on this poem): the silent "u" in "qu" (que, qui, quoi, qu'il...) was wrongly counted as its own vowel, inflating counts by one in any line containing an elision like "qu'une" or "jusqu'à"; and "les/ces/des/ mes/tes/ses" were sometimes wrongly treated as elidable like the schwa word "se", occasionally dropping to 0 syllables when followed by a vowel-starting word — these determiners always keep their closed "é" sound and are never elided. (A similar fix for the "gu" digraph, e.g. "vague", was tried and reverted after it regressed a previously-validated case — treated as a genuine ambiguity for now rather than force a guess.)
  • 2.3.3 — Fixed the Syllables tab toolbar (diaeresis/colour toggles, export, clear) overflowing off-screen on narrow mobile widths instead of wrapping onto a new line.
  • 2.3.2 — Markdown export from the Syllables tab now includes a rhyme quality column (pauvre/suffisante/riche), computed relative to the first line of each rhyme group; the colour-coded rhyme badge's tooltip also shows it.
  • 2.3.1 — Rhymes tab: each rhyme group now shows a colour-coded quality summary (pauvre/suffisante/riche counts) and every word chip carries a matching coloured border and badge; fixed the "🎲 Tire un mot au hasard" button not being centred.
  • 2.3.0 — New Hasard tab (random rare/forgotten French word with a gloss and quick links to Definitions/Rhymes); fixed rhyme-group matching so that a word found in the optional phonetic dictionary while its true rhyme partner is missing from it no longer get sorted into different groups (affected both the rhyme-scheme detector and colour-coding) — elided contractions ("m'assieds") are now also stripped before matching.
  • 2.2.0 — New Definitions tab (CNRTL/TLFi definitions and etymology, on demand); Rhymes tab gained filters (first letter, syllable count, rhyme quality) and an optional RimesSolides online source; automatic rhyme-scheme detection per stanza (AABB/ABAB/ABBA when applicable) with optional colour-coded rhyme badges in the Syllables tab; Markdown export of the analysis (verse / syllables / gender / rhyme letter) to the clipboard; fixed trouveFamille not matching plural words against singular-form rhyme family endings (e.g. "décombres" against the "-ombre" family).
  • 2.1.0 — Fixed a typographic apostrophe (’) being stripped from words (e.g. "l'ombre" becoming "lombre"); fixed the diaeresis variant line sometimes appearing visually attached to the following verse instead of its own; added a toggle to show/hide the diaeresis variant; Inspiration tab can now optionally pull in live results from Wiktionnaire/CRISCO as bonus vocabulary; expanded the Guide with metre names, caesura, enjambment/rejet, stanza naming, more poem forms (triolet, virelai, tanka, calligramme, free/blank verse), and a note on eye-rhymes vs ear-rhymes.
  • 2.0.0 — Synonyms tab can now query Wiktionnaire and/or CRISCO live (opt-in, selectable), with a one-click save into dictionnaire-perso.json; new synonymes custom-dictionary format usable independently or alongside rhyme families/phonetic dictionaries/vocabulary themes; English documentation rewrite.
  • 1.9.0 — Personal-dictionary search widened to cover the root of .obsidian, the root of the vault, and a recursive scan of .obsidian — fixing cases where the file wasn't found on Android even when placed inside .obsidian.
  • 1.8.0 — Full syllable-by-syllable breakdown displayed like a scansion tool (mon/ta/gne), with a second line showing the diaeresis variant when relevant; fixed rhyme gender detection for words whose silent e follows a vowel (vie, écartées, joie were previously misclassified as masculine); new Synonyms and Guide tabs.
  • 1.7.0 — New Inspiration tab (thematic vocabulary), including a theme dedicated to archaic/medieval French, extensible via champsLexicaux.
  • 1.6.0 — Rhyme gender badge (F/M) added to every line in the Syllables tab.
  • 1.5.0 — Fixed intervocalic "y" (rayon, crayon, voyage...), which was wrongly merged with neighbouring vowels instead of separating two syllables; fixed punctuation preceded by a French typographic space (e.g. before ";") being wrongly treated as a following word.
  • 1.3.0 — "ç" was no longer incorrectly stripped from analysed text (was breaking words like leçon, français, commença).
  • 1.2.0 — Nasal vowels (temps, enfant, m'attends at the end of a line) were no longer wrongly counted as a droppable silent e.
HealthExcellent
ReviewSatisfactory
About
Count the syllables in your verses in real time according to French versification rules, with support for the ‘e caduc’, automatic metre recognition and indication of readings with diaeresis. Search for rhymes amongst ~60 sound families (masculine/feminine by number of syllables) and keep a persistent draft in Obsidian.
WritingLanguagesSidebar
Details
Current version
2.6.0
Last updated
8 hours ago
Created
2 days ago
Updates
21 releases
Downloads
43
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Author
Sébastien WallachiaSébastien Wallachiaalucard
GitHubsbridel
  1. Community
  2. Plugins
  3. Writing
  4. Carnet du Poete

Related plugins

Longform

Helps you write and edit novels, screenplays, and other long projects.

LanguageTool

Unofficial integration of the LanguageTool spell and grammar checker.

Novel word count

Display a word count, page count, creation date, or other statistics for each file, folder and vault in the File Explorer pane.

Dictionary

A multilingual dictionary that shows word definitions in the sidebar and popover synonyms.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Vertical Tabs

Offer an alternative view that displays open tabs vertically, allowing users to group and organize tabs for a better navigation experience.

Recent Files

Display a list of recently opened files.

TagFolder

Show tags as folder.

Text Generator

Generate text content using GPT-3 (OpenAI).

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.