Ghostline is a quiet writing companion for macOS. It sits beside your current editor, reads the sentence under your caret, rewrites it in place, and stays out of the document itself.
- Rewrites the focused sentence directly in apps like Word, Notes, and browsers.
- Uses local Codex by default, with OpenAI, Claude, Gemini, Ollama, and compatible providers available in the app UI.
- Lets you keep the webpage-based control surface while shipping as a real macOS application.
- Supports manual rewrite with
Control+Option+Gand optional YOLO auto-rewrite after a short pause. - Includes copy-based bridge prompts for Codex and external humanizer tools when you want to hand a draft off instead of rewriting in place.
Build a drag-and-drop installer disk image:
make dmgThat creates:
Ghostline.appGhostline-mac.dmg
Open the DMG, drag Ghostline.app into Applications, then launch it like a normal Mac app.
When Ghostline opens:
- Click
Request All Permissions. - Approve Accessibility.
- Approve Automation.
- Approve Screen Recording if you want richer screen-aware behavior.
After that, Ghostline should stay usable as a regular installed app from Applications.
If you are working in the repo directly:
cd /Users/wr/github/Ghostline
/Applications/Codex.app/Contents/Resources/codex login
swift run GhostlineDesktopIf you want the desktop app to load the live browser-served page instead of the bundled one:
Terminal 1:
cd /Users/wr/github/Ghostline
npm startTerminal 2:
cd /Users/wr/github/Ghostline
GHOSTLINE_EDITOR_URL=http://127.0.0.1:3000 swift run GhostlineDesktopSettings live inside the Ghostline UI:
ProviderModelAPI KeyEndpointYOLO ModeDisplay Mode
For Codex, do not paste an API key into the app. Ghostline uses your local Codex login.
make appbuilds and signs the.appbundle only.make zipcreates a zip archive of the app bundle.make dmgcreates the normal macOS installer image.- The desktop app requests real macOS permissions through the native wrapper, not only through the webpage.