Check grammar, spelling, and fluency in Markdown notes offline with a local AI model on macOS.
An offline, local-first AI grammar checker and writing assistant for Obsidian on Mac, powered by a local LLM.
Install in Obsidian · Download Refine for Mac
Refine is an AI grammar checker powered by a local language model, so it can run entirely offline. This plugin brings its contextual grammar, spelling, and fluency suggestions to Obsidian, helping you improve your notes without leaving your editor.
Features:
Refine is free to use for grammar and fluency checks, with no account or credit card required.
Open a Markdown note in Editing view. With Check Writing Automatically enabled (the default in Refine), the active note is checked after you pause typing briefly.
The Refine icon in Obsidian's status bar shows the connection, checking progress, and suggestion count. Select it to open the Refine menu. To check on demand, open the Command Palette and run Refine: Check current note.
Suggestion colors, highlighting, automatic checks, local or hosted models, and Quick Apply shortcuts are configured in the Refine app.
The plugin sends the complete active Markdown note to the Refine app over a same-user Unix socket so Refine can check it. With a downloaded local model, the source and model response stay on your Mac, and writing checks can run without an internet connection after the model is downloaded.
To find the running Refine app, the plugin reads a small endpoint descriptor
file in ~/Library/Application Support/com.runjuu.refine/ outside your vault.
It reads no other files outside the vault.
Refine can also use hosted providers that you configure. In that case, requests from the Refine app—including note source—may go to the selected provider and are subject to that provider's privacy and retention policies.
Report is separate from the writing-check provider. Only choosing Report on a live suggestion can send feedback to Refine's feedback service, and only when Refine makes that action available. A report may contain original and revised snippets plus language, provider, model, custom-instruction, Refine version, and macOS version context. The plugin does not automatically report suggestions.
This plugin does not send its own analytics or persist note source. It keeps the active integration state in memory; Obsidian and any other installed plugins have their own logging, telemetry, and retention behavior. App and model downloads, updates, optional license services, hosted checks, and Report require internet access.
Learn how Refine handles your writing or read the privacy policy.
Make sure Refine is installed, open, and up to date. Then select the Refine icon in Obsidian's status bar to see the current connection state. The plugin reconnects automatically after Refine restarts. If the exact Integration Protocol versions differ, the plugin reports both versions and asks for a compatible Refine/plugin pair; it does not guess which component is newer.
The installed Refine app cannot read what this plugin sends, which happens when Refine is older than the plugin. Update Refine for Mac, then reopen the note.
Open a Markdown note in Editing view and confirm that Refine is running and has completed setup. Check the Check Writing Automatically setting in Refine, or run Refine: Check current note from the Command Palette.
Refine will not apply a stale correction if the note changed after it was checked, or if the note is read-only. Check the current note again and review the new suggestion.
Refine is a local-first AI writing assistant for Mac. With a downloaded local model, it can check grammar, spelling, and fluency in Obsidian without sending your writing to a cloud model. Its grammar and fluency checks are free to use and require no account. Refine requires its Mac app; it is not a standalone Obsidian plugin.
Writing checks can run offline with a downloaded local model. Downloads, updates, hosted models, and optional license services still require a connection. Free grammar and fluency checks do not require license activation. If you have a purchased lifetime license, you can use Offline Activation for advanced features during longer disconnected use.
No. Refine for Obsidian currently requires the Refine app on macOS and therefore works only in Obsidian desktop on Mac.
No. The plugin checks the active Markdown note in Editing view. It does not run vault-wide checks or check Reading view.
Ready to use a local AI grammar checker in Obsidian? Download Refine for Mac, then install Refine from Obsidian Community Plugins.
For plugin bugs and feature requests, open a GitHub issue. For help with the Refine app, email [email protected].
Refine supports same-user macOS writing-host clients connecting to the shipping Refine server with exact Integration Protocol 1.0. Protocol 1.0 compatibility is maintained throughout Refine 1.x. The support profile does not include network transports, cross-user access, other operating systems, sandbox workarounds, automatic app launch, or third-party production servers, and it does not include an integration- development SLA or certification program. Conformance is self-assessed; there is no approval gate or compatibility badge.
The public statement “Compatible with Refine Protocol 1.0” has additional conditions: each advertised release must pass the conformance suite and make the source-flow, Report destination/data, explicit Report gesture, and client telemetry/retention disclosures. See the protocol package's support profile and compatibility-claim conditions.
Refine for Obsidian is available under the MIT License.
npm install
npm run typecheck
npm test
npm run build
To run the protocol package's eight live AF_UNIX conformance scenarios against
the production transport/runtime seams, point the opt-in conformance command at
a local refine-protocol checkout:
REFINE_PROTOCOL_ROOT=/path/to/refine-protocol npm run test:conformance
This external-repository gate is intentionally separate from npm test; the
normal test suite does not require a protocol checkout.
For local testing, copy manifest.json, main.js, and styles.css into
.obsidian/plugins/refine/ in a test vault, then reload Obsidian and enable
Refine under Community plugins.
The integration boundaries and safe-Apply semantics are documented in the Refine Integration Protocol 1.0 specification, which is the supported public wire. It is an exact-version, local macOS client-to-Refine interface. Endpoint permissions, peer-UID checks, and a per-launch token exclude other OS users and nonlocal peers; self-reported client labels do not authenticate one process from another process already running as the same user.