Proofreader
approvedby pseudometa (aka Chris Grieser)
AI-based proofreading and stylistic improvements for your writing. Changes are inserted as suggestions directly in the editor, similar to suggested changes in word processing apps.
Proofreader for Obsidian
AI-based proofreading and stylistic improvements for your writing. Changes are inserted as suggestions directly in the editor, similar to the suggested changes feature in word processing apps.
Table of contents
- Features
- Installation & setup
- Usage
- Visual appearance of the changes
- Testimonials
- Plugin development
- About the developer
Features
- Suggested changes are inserted directly into the text: Additions as
==highlights==and removals as~~strikethroughs~~. - Accept or reject changes with just one hotkey.
- Easy to use: No complicated plugin settings and AI parameters to configure.
| Professional proofreading service | Proofreader plugin | |
|---|---|---|
| Cost for English text of 10,000 words | ~ $400, depending on the service | ~ $0.01 – $0.061 |
| Completion duration | up to 3 work days | about 5 minutes |
| Input format | usually Microsoft Word (.docx) | Markdown file in Obsidian |
| Method of incorporating changes | mostly mouse clicks | keyboard shortcuts |
| Additional benefits | Editor makes general comments on writing style. | Plugin can also be used to quickly proofread single sentences or paragraphs. |
[!NOTE] This plugin requires an API key from one of the supported providers (OpenAI, Google, Mistral, or OpenRouter) and incurs costs based on usage. Network requests are made when running the proofreading command. (PRs adding support for other LLMs are welcome.)
Installation & setup
Plugin installation
Get an API key
OpenAI
- Create an OpenAI account.
- Go to this site, and click
Create new secret key. - Copy the API key.
- In Obsidian, go to
Settings → Proofreader → OpenAIand paste your API key there.
[!TIP] The usage costs should not be very high, nonetheless you can track them on this page.
- Create a Google account if you don't have one.
- Go to Google AI Studio and
click
Create API key. - Copy the API key.
- In Obsidian, go to
Settings → Proofreader → Googleand paste your API key there.
Mistral
- Create a Mistral account.
- Go to API keys and click
Create new key. - Copy the API key.
- In Obsidian, go to
Settings → Proofreader → Mistraland paste your API key there.
OpenRouter
- Create an OpenRouter account.
- Go to API keys and click
Create key. - Copy the API key.
- In Obsidian, go to
Settings → Proofreader → OpenRouterand paste your API key there.
Usage
- Use the command
Proofread selection/paragraphto check the selected text. If there is no selection, the command will check the current paragraph. Alternatively, you can also check the whole document withProofread full document. However, note that the quality of AI suggestions tends to decrease when proofreading too much text at once. - The changes are automatically inserted.
- Accept/reject changes with
Accept suggestions in selection/paragraphandReject suggestions in selection/paragraph. Same as the proofreading command, theacceptandrejectcommands affect the current paragraph if there is no selection. Alternatively, you can also only accept/reject the next suggestion after your cursor viaAccept next suggestionandReject next suggestion.
Visual appearance of the changes
You can add the following CSS snippet to make highlights and strikethroughs appear like suggested changes, similar to the screenshot further above. (Manual: How to add CSS snippets.)
.cm-strikethrough {
text-decoration-color: var(--color-red);
}
.cm-s-obsidian span.cm-highlight {
background-color: rgba(var(--color-green-rgb), 35%);
}
Testimonials
I was paying $29 a month for
type.aiuntil today, your plugin made me cancel the subscription, because the only feature I wanted from there was this inline granular diffing which no other app offered, until Proofreader. @samwega
Plugin development
General
just init # run once after cloning
just format # run all formatters
just build # builds the plugin
just check # runs the pre-commit hook (without committing)
[!NOTE] This repo uses a pre-commit hook, which prevents commits that do not build or do not pass the checks.
Adding support for new LLMs
- Create a new adapter for the LLM in ./src/providers/. This should take ~50 lines of code.
- In ./src/providers/model-info.ts, add the
adapter function to
PROVIDER_REQUEST_MAP, and add models for the new provider toMODEL_SPECS. - In ./src/settings.ts, add a setting for the API key to
ProofreaderSettingsMenuand add a field toDEFAULT_SETTINGS.
About the developer
In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.
If you find this project helpful, you can support me via 🩷 GitHub Sponsors.
Footnotes
-
Estimated pricing for the GPT 4.1 nano model in April 2025. The plugin developer is not responsible if the actual costs differ. You can track your usage costs on this page. ↩
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.