Icelandic Proofread
Native Icelandic proofreading for Claude Code — open, offline, and free.
Icelandic Proofread corrects Icelandic spelling and grammar from the command line, built on
GreynirCorrect, the MIT-licensed
correction engine published by Miðeind ehf. It runs fully
offline once installed, with an optional public yfirlestur.is API fallback
so it works out of the box. No account, no login, no paid service.
$ icelandic-proofread check --text "Mér finst þetta gott. Ég veit allveg afhverju."
Mér finnst þetta gott. Ég veit alveg af hverju.
✓ Yfirlesið með GreynirCorrect — 3 ábending(ar). 👌
Why this exists
Good Icelandic correction was locked behind either a paid web app or a Python
API most people never wire up. Miðeind open-sourced the engine under MIT — this
is a thin, honest wrapper that puts it one command (or one Claude prompt) away,
and reports every change instead of silently rewriting your text.
Install
git clone https://github.com/Magnussmari/icelandic-proofread.git && cd icelandic-proofread
bash install.sh
install.sh creates a virtualenv and installs reynir-correct (MIT). If you
skip it, the skill still runs via the yfirlestur.is API — but local is
recommended: it's offline, ships a newer engine, and doesn't lean on Miðeind's
free public endpoint.
As a Claude Code skill
Copy skills/icelandic-proofread/ into your project's .claude/skills/, or install the
plugin via the .claude-plugin/plugin.json manifest. Then just ask Claude to
"prófarki this text" / "proofread this Icelandic".
Usage
icelandic-proofread status # which engine is live
icelandic-proofread check --text "…" # proofread a string
icelandic-proofread proofread --in draft.txt --out clean.txt # a document (keeps paragraphs)
icelandic-proofread check --text "…" --json # full report: text + suggestions[]
icelandic-proofread check --polish --text "…" # + Gemini native-fluency pass
| Flag | Meaning |
|---|
--level full (default) | spelling + grammar/case — the "accept all" behaviour |
--level spelling | token-level spelling only (conservative) |
--engine auto|local|api | engine selection (default auto) |
--polish | sandwich a Gemini Flash native-fluency pass (needs GEMINI_API_KEY) |
--model <id> | Gemini model for --polish (default gemini-3-flash-preview) |
--json | full JSON report on stdout |
--quiet | suppress the stderr summary |
Optional: native-fluency polish (--polish)
GreynirCorrect fixes mechanics — spelling, case, agreement — deterministically.
It can't tell that grammatically-correct Icelandic still reads like a translation.
--polish adds a Gemini Flash layer, sandwiched between two engine passes:
engine-correct → Gemini polishes for native fluency → engine-correct (guardrail)
The deterministic engine is the bread; Gemini is the filling. The second engine
pass means the model never gets the last word on grammar — any inflection it
introduces is caught and fixed by a rule engine. So you gain native cadence
without trusting an LLM on mechanics.
$ export GEMINI_API_KEY=… # or put it in ./.env / ~/.config/icelandic-proofread/.env
$ icelandic-proofread check --polish \
--text "Við erum spennt að tilkynna að nýji vefurinn okkar er núna lifandi."
Við erum spennt að tilkynna að nýi vefurinn okkar sé nú kominn í loftið.
✓ Yfirlesið með GreynirCorrect + Gemini fínpússun (gemini-3-flash-preview) — … 👌
The rule pass alone only fixes nýji→nýi; the polish layer removes the English
calque "er lifandi" ("is live") and switches to the correct subjunctive — the
difference between grammatically correct and written by a native speaker.
- Opt-in & secret-free. Nothing calls Gemini unless you pass
--polish and a
key is present. No key is stored in this repo; without one the tool errors
clearly instead of skipping silently.
- Model is yours. Defaults to
gemini-3-flash-preview; override with
--model or $GEMINI_MODEL (gemini-3.5-flash, gemini-3.1-flash-lite, …).
- Voice-preserving? No — Gemini smooths phrasing. For raw/verbatim text where
the author's exact wording matters, leave
--polish off.
Two engines, one interface
| local (reynir-correct) | api (yfirlestur.is) |
|---|
| Offline | ✅ | ❌ |
| Engine version | newest (pip) | deployed demo |
| Auto-apply grammar | ✅ | ✅ (fail-safe span replace) |
| Best for | everything | quick start / no-Python boxes |
auto prefers local and falls back to the API. The API is Miðeind's free public
demo — use it considerately.
Credits & license