Sébastien Wallachia206 downloadsSyllable, meter and rhyme analysis for English poetry (CMUdict-based, with optional Datamuse online lookups).
An Obsidian plugin for writing and revising English poetry: syllable and meter analysis, rhyme search, synonyms and antonyms, definitions, thematic vocabulary, an experimental sound-pattern analyzer, and a quick-reference guide — all in a tabbed sidebar panel.
Sibling project to the French plugin "Carnet du Poète," built independently for English rather than as a translation or extension of it.
Paste a poem and get, per line: a syllable count, meter (iambic / trochaic / anapestic / dactylic, named "pentameter," "tetrameter," etc.), and a rhyme scheme with colored badges. Analysis updates live as you type.
Syllable and stress data comes primarily from CMUdict (see below), with:
-'d elision (e.g. "plann'd" → "planned").Hover any line to see a per-word breakdown, including which source (CMUdict / override / heuristic / Datamuse) each word's syllable count came from.
Flip the card ("🔄 Sonorities" button, top-left) to switch to the sound-pattern panel described below.
Search CMUdict for perfect rhymes (matching stressed vowel and everything after it) and near/slant rhymes (consonance or assonance), grouped by syllable count. Near rhymes are always shown in a separate section unless "Strict rhyme mode" is on in Settings. Filter by starting letter or syllable count. An optional Datamuse online lookup (off by default) adds any extra matches; a link opens the word's RhymeZone page in your browser for RhymeZone's own advanced filters.
Look up a word against your personal dictionary, with an optional Datamuse online lookup (off by default) shown as clickable chips — click one to save it. You can also add entries by hand. Saved entries can be removed with the × button.
On-demand lookup (nothing is fetched until you search) against English Wiktionary: etymology and definitions grouped by part of speech. A "View on Wiktionary ↗" link is always shown alongside the parsed result.
Type a common word (forest, sea, night, love, time, fire, weather, silence…) to get rarer, more literary vocabulary on the same theme, each with a short gloss. Ten built-in themes are included. An optional Datamuse "means like" online lookup (off by default) adds loosely related words.
Draw a random rare/literary word from the same vocabulary pool used by Inspiration, with a gloss and quick links to look it up in Definitions or search it in Rhymes.
Every word — built-in or from your personal dictionary — can also carry your own custom tags on top of its theme, be marked ♥ liked, or 🚫 excluded from future draws. Tagging or excluding a built-in word never touches its definition; it's tracked separately. Filter the draw pool by included tags (switch between matching any or all of several at once), excluded tags, a "liked only" quick filter, or a "review excluded" mode to revisit what you've set aside — with a live count of how many words match the current filters.
A static reference: meter and foot names, perfect vs. slant rhyme, classic poem forms (Shakespearean and Petrarchan sonnets, blank verse, villanelle, limerick), and a short note on poetic elision.
A flip side of the Syllables tab's card: four sound patterns across the whole poem, not just line endings.
Three grouping levels — exact ARPAbet sounds, simplified families, extended families with a voiced/voiceless split — each sound shown with a frequency ratio ("×N.N") comparing how often it occurs in this poem against its normal frequency in English, computed live from the loaded CMUdict index (no external citation needed for this — unlike the French sibling plugin, which has to lean on an older published study for lack of a better source).
Why "experimental": newer and less battle-tested than the rest of this plugin. Detection relies entirely on CMUdict's phoneme data — a word missing from CMUdict is skipped for Sonorities rather than guessed at from spelling, since English spelling-to-sound is too irregular to approximate safely the way this plugin's heuristic fallback does for basic syllable counts. Highlighting also colors the whole word rather than a precise letter range: CMUdict gives a word's phoneme identity, not a mapping back to letter positions, so there's no reliable way to know which letters correspond to a given sound the way the French plugin's orthographic scan can.
main.js, manifest.json, and styles.css into a new folder at
<vault>/.obsidian/plugins/poets-notebook/.The plugin works without CMUdict, using an approximate heuristic instead, but CMUdict gives much more accurate syllable counts, stress, meter, and rhyme detection — and is required for Sonorities.
cmudict.dict from the official repository:
https://github.com/cmusphinx/cmudict<vault>/.obsidian/plugins/poets-notebook/cmudict.dict<vault>/.obsidian/cmudict.dict<vault>/cmudict.dict (vault root)CMUdict is public domain / unrestricted for research and commercial use.
The Synonyms tab writes to poets-notebook-dictionary.json automatically,
but you can also create or edit this file by hand — for bulk-importing
vocabulary, or adding entries no online lookup surfaces.
Where it's stored: same search order as cmudict.dict above. If no file
is found anywhere in the vault, the first save creates one at the vault
root. Override the path in Settings → Poet's Notebook → "Custom personal
dictionary path," and re-scan at any time with "Reload personal dictionary."
Format:
{
"synonyms": {
"happy": ["joyful", "glad", "content", "cheerful"]
},
"antonyms": {
"happy": ["sad", "miserable"]
},
"vocabularyThemes": [
{
"theme": "Mountains",
"triggers": ["mountain", "mountains", "peak"],
"words": [
{ "word": "crag", "note": "a steep, rugged rock or cliff" },
{ "word": "escarpment", "note": "a long, steep slope at the edge of a plateau" }
]
}
],
"rareWords": [
{ "word": "petrichor", "note": "the smell of rain on dry earth" }
],
"wordMeta": {
"petrichor": { "tags": ["favorite-sound"], "liked": true, "excluded": false }
}
}
All five top-level keys are optional and can be combined in the same file:
synonyms / antonyms — each key is a word (matched case-insensitively),
each value an array of related words. Read and written by the Synonyms tab.vocabularyThemes — extends the Inspiration tab. triggers are the
everyday words that surface the theme (matched case-insensitively, with
simple plural stripping). Also feeds the Random tab's word pool.rareWords — standalone words for the Random tab's pool without building
a full theme around them (shown with theme "Personal dictionary").wordMeta — per-word tags/liked/excluded state for the Random tab,
applying to built-in words too. Written automatically by the Random tab's
controls; editing it by hand is possible but not required for normal use.A word cannot be saved as its own synonym or antonym through the UI.
-'d → -ed pattern (e.g.
"plann'd," "belov'd"); other archaic contractions (o'er, 'twas, e'er) are
not yet normalized.vocabularyThemes as needed.rel_ant plus a personal-dictionary
antonyms key), alongside Synonyms.