Fix grammar, improve, or humanize any selected text with one keystroke.
A lightweight macOS menu bar app. Use Claude, a local model, or both.
Version 1.4.0 · macOS 13+ · Apple Silicon & Intel
I write in a lot of apps and dealing with typos or making rewrites takes time and kills the flow. I just want to select the text, hit a shortcut, and have it fixed in place without jumping to ChatGPT. Rewrite is that.
Select text, hit Cmd+Shift+E (or pick your own shortcut), and the rewritten version replaces it. Each mode can run on Claude in the cloud or on a local model you host with LM Studio.
Switch between them from the menu bar.
Fix Grammar. Only fixes grammar, spelling, and punctuation. Preserves structure, tone, and meaning. Works well on small local models.
Improve Writing. Restructures for clarity. Swaps words, reorders, breaks up or combines sentences. Keeps the original meaning and voice, just tighter.
Humanize. Strips AI-sounding patterns (hedges, inflation words, rule-of-three, em-dash overuse) and shortens bloated text. Useful for cleaning up ChatGPT output.
Each mode has an editable prompt and can be routed to a different provider.
Two providers are supported, and each mode picks its own:
Claude (Cloud). Best quality, especially for Humanize and Improve Writing. Needs an Anthropic API key. About one second per rewrite, roughly $0.0002 each with Claude Haiku.
LM Studio (Local). Runs a model on your Mac, free, fully private. Point Rewrite at any OpenAI-compatible local server (default http://127.0.0.1:1234). Smaller models (1B–4B) handle Fix Grammar well. Humanize and Improve Writing are more reliable on Claude.
Defaults:
| Mode | Default provider |
|---|---|
| Fix Grammar | Local (fast, free, faithful to the text) |
| Improve Writing | Claude |
| Humanize | Claude |
All overridable in Settings. Optional automatic fallback: if the local server is unreachable, Rewrite uses Claude instead and shows a macOS notification so you know.
- Global shortcut. Works in any app, even when Rewrite is in the background.
- Services menu integration. Right-click any selected text and pick Services → Fix Grammar.
- Skip the API key. Run local-only if you don't want to use Claude.
- Clipboard preserved. Your clipboard is saved and restored after each rewrite.
- Permission monitoring. Menu bar warns you if Accessibility or Input Monitoring gets revoked after a macOS update.
- Visual feedback. Menu bar icon animates while rewriting, shows a warning on errors.
- Error notifications. Get a macOS notification if something goes wrong.
- Customizable prompts. Edit each mode's instructions in Settings.
- Customizable shortcut. Change the hotkey in Settings.
- Launch at login. Optional, toggle in Settings.
- Download the DMG from Releases
- Drag Rewrite.app to Applications
- Launch Rewrite. It will appear in your menu bar.
- Enter your API key or skip for local-only. An Anthropic API key is needed for Claude-powered modes.
- Grant permissions. macOS requires two permissions for Rewrite to work:
- Accessibility (System Settings → Privacy & Security → Accessibility) lets Rewrite copy and paste text
- Input Monitoring (System Settings → Privacy & Security → Input Monitoring) lets the global keyboard shortcut work in any app
- Relaunch Rewrite after granting both permissions
- Install LM Studio
- Download any chat model (e.g.
Llama-3.2-3B-Instructorgoogle/gemma-3-4b) - Load the model and start the local server (default port 1234)
- In Rewrite Settings, the loaded models auto-populate. Pick one and set which modes should use it.
Note: If the shortcut stops working after an update, remove and re-add Rewrite in both permission lists, then relaunch.
Your API key is stored locally on your Mac in UserDefaults (the same place Rewrite keeps its other settings). Rewrite talks directly to Anthropic's API or your local LM Studio server, with no middleman. When you trigger a rewrite, the only thing leaving your device is the selected text and your prompt, sent to whichever provider that mode uses. No analytics, no telemetry, no usage tracking.
- macOS 13 (Ventura) or later
- An Anthropic API key (optional if you only use local models)
- LM Studio (optional, for local models)
- Accessibility permission (required to simulate copy / paste)
- Input Monitoring permission (required for global keyboard shortcut)
- Swift + AppKit
- Claude API (Haiku) + OpenAI-compatible local endpoints via LM Studio
- HotKey for global shortcuts
- Zero other dependencies
Made by santiagoalonso.com


