unurled41 downloadsFrench grammar and spell checking with Grammalecte, using a local server, a remote server, or a fully offline engine.
French grammar and spell checking inside Obsidian, powered by Grammalecte. Mistakes are underlined while you write; click one to read the explanation and apply a correction.
[!WARNING] This plugin is vibecoded. It was written almost entirely by an AI agent, with little to no human review. It may break, lose your place, mangle text when applying a suggestion, or do something else entirely. Use it at your own risk, on a vault you back up. No warranty, no support, and no responsibility is taken for anything that happens to your notes or your machine — see the licence.
This plugin is not in the community catalogue. Copy main.js, manifest.json
and styles.css into <vault>/.obsidian/plugins/grammalecte/, then enable
Grammalecte in Settings → Community plugins.
To build from source:
pnpm install
pnpm run build
Grammalecte itself is not part of the plugin. Pick where the checking happens in Settings → Grammalecte → Grammar checker; everything else behaves the same.
| Backend | Setup | Where your text goes | Mobile |
|---|---|---|---|
| Local server | Run grammalecte-server.py yourself |
Stays on your machine | No |
| Remote server | A Grammalecte server URL you trust | Sent to that server | Yes |
| Bundled engine | One click in settings | Stays on your device | Yes |
Download the Grammalecte Python package from grammalecte.net, then start the server:
python3 grammalecte-server.py -p 8080
Set the server URL to http://localhost:8080 and press Test in the
settings — it reports the Grammalecte version when the connection works.
Any host running the same grammalecte-server.py works, for example a server of
your own. Your note text is sent to it in full, so only use an instance you
trust. This is the simplest option on mobile.
Choose Bundled engine and press Install / update. The plugin downloads the
official Grammalecte browser extension from addons.mozilla.org and extracts the
~9 MB of engine and dictionary files it needs into
<vault>/.obsidian/plugins/grammalecte/engine/.
Checking then runs inside Obsidian, in a Web Worker, so typing stays responsive. Nothing leaves your device. The first check after each start takes a moment while the dictionary loads, and the loaded engine costs roughly 40 MB of heap (measured on desktop) — on an old phone, a remote server may be the better trade.
Remove deletes the downloaded files again.
no issue, or
error — hover it for the reason.| Command | What it does |
|---|---|
| Check the current note | Runs a check now, and reports connection errors immediately |
| Clear highlights | Removes the underlines from the current note |
| Toggle checking as you type | Switches between live and on-demand checking |
Assign hotkeys to them in Settings → Hotkeys.
| Setting | Meaning |
|---|---|
| Grammar checker | Which backend to use, and its URL or engine install |
| Check as you type | Re-check shortly after you stop typing |
| Typing delay | How long to wait, 300–5000 ms (default 1200) |
| Grammar mistakes | Report grammar errors |
| Spelling mistakes | Report unknown words |
| Ignore Markdown syntax | Blank out code, math, link targets and frontmatter before checking |
| Maximum note length | Characters checked in one pass; longer notes are checked up to this limit and the status bar says partial |
| Personal dictionary | Words never reported as misspelled, one per line |
| Ignored rules | Grammalecte rule ids never reported, one per line |
Rule ids look like g3__conf_marre_mare__b2_a1_1; the Ignore this rule menu
entry fills this list for you.
More detail for contributors is in AGENTS.md.
pnpm install
pnpm run dev # watch build into main.js
pnpm run build # type-check, then production bundle
pnpm run lint
pnpm run test
Tests that need a Grammalecte server are skipped unless one is reachable
(GRAMMALECTE_SERVER overrides the URL), and the engine tests are skipped until
the engine is installed in engine/.
Grammalecte is written by Olivier R. and released under the GPL v3. This plugin only drives it: the engine is downloaded from the official releases and is not redistributed here.
MIT — see LICENSE. In short: do what you like with it, and it comes with absolutely no warranty. The author is not liable for any damage, data loss or other trouble arising from its use.