100% free & open source

Free AI text rewrite for Mac —
in place, with your own API key.

Polishly is a macOS menu-bar app that rewrites selected text in place, in any app, using your own API key. No subscription. No background scanning. No middleman between your text and your model.

Select text ⌃⌥Space review the diff Accept

Free DMG · macOS 14+ · MIT licensed · bring a free Groq or Cerebras key

The actual card UI — recreated here, not a screenshot

Download

Get Polishly for Mac

Install the signed app, grant Accessibility once, then connect a free Groq or Cerebras API key — or start in on-device demo mode with no key at all.

macOS 14+

Polishly 1.0.0

Direct download — no subscription, no account required for the app itself.

  • Apple silicon & Intel via universal Release build
  • Developer ID signed and stapled notarization by Apple
  • Same Team ID across updates so Accessibility stays granted

Prefer source? Clone the repo and run ./scripts/package-release.sh — or open Issues on GitHub.

How it works

Three steps. No app switching.

Polishly reads your selection through macOS Accessibility, sends it only when you ask, and writes the result straight back into the field you were already in.

1

Select text anywhere

Mail, Notes, Slack, Teams, your browser — anywhere macOS can read a text selection.

2

Press ⌃⌥Space

A small card appears anchored to your selection with a streaming rewrite. Pick a tone tab, or type a free-form instruction with Revise with AI.

3

Review, then Accept

A real word-level diff shows exactly what changed. Accept replaces the text in place; Copy leaves it on your clipboard instead.

Why Polishly

Built to be trusted, not just used

Every design decision starts from one question: what would make you comfortable giving an app Accessibility permissions?

🆓

$0, forever

The app is free and open source under MIT. No subscription tier, no "pro" paywall, no ads.

🔑

Bring your own key

OpenAI, Anthropic, Groq, or Cerebras — use the provider and model you already trust, at the price they charge you directly.

🖥️

Local demo mode

No key yet? Try the whole interaction model with zero network calls and zero cost using on-device rule-based rewrites.

🛡️

Explicit invocation only

Nothing is read or sent until you press the hotkey. No continuous scanning of what you type, anywhere, ever.

🔍

A real diff, every time

Rewrites are shown as an actual word-level diff against your original text — computed locally, not model-generated markup.

🌐

Works system-wide

One app, every app. If macOS Accessibility can see your selection, Polishly can rewrite it in place.

Real output

Genuine, unedited rewrites

These are real "Revise with AI" outputs captured during testing — not curated marketing copy.

"translate this to Spanish"
InputI think we should push the meeting to next week.
OutputCreo que deberíamos posponer la reunión para la próxima semana.
"make it sound apologetic"
InputSorry I missed your call, I was in a meeting all day.
OutputI apologize for missing your call; I was tied up in a meeting all day.
"cut it to two sentences"
InputOur Q3 numbers came in below target, mostly because of the delayed product launch. The engineering team hit a few last-minute bugs that pushed the release by three weeks. Marketing had already spent a chunk of the budget on the original launch date…
OutputOur Q3 results missed targets due to a delayed product launch caused by last-minute engineering bugs, with marketing budget partially sunk. We're revising the Q4 forecast accordingly and will meet this week to discuss next steps.
"rewrite this as a bulleted list"
InputThe new onboarding flow requires users to verify their email, set up two-factor authentication, and complete a short profile before they can access the dashboard…
Output • Users must verify their email
• Users must set up two-factor authentication
• Users must complete a short profile
• Access is granted after these steps
• ~40% of users drop off during the 2FA step

Full test set (10 varied instructions, run against real provider APIs) is in the repo's Tests/PolishlyTests/ReviseQualityTests.swift.

The landscape

How Polishly compares

Grammarly and Apple's Writing Tools solve adjacent problems well. Polishly is built around a different bet: explicit invocation, your own key, and no subscription.

  Polishly Grammarly Desktop Apple Intelligence
Writing Tools
Wordtune / Notion AI
Price Free forever ~$30/mo Pro Free Subscription
Open source Yes, MIT No No No
Bring your own API key Yes No No No
Explicit invocation
(no background scanning)
Yes, always Always-on underlining Mostly on-demand Varies
Works in any app system-wide Yes Yes Only apps that adopt it Own app / extension only
Free-form custom instructions Revise with AI Limited Fixed set of tones Limited
Local, no-network mode Demo mode No No No

Competitor details reflect public docs/pricing at time of writing and may change — verify current terms directly with each provider.

$0

Polishly itself never charges you anything. Connect your own OpenAI, Anthropic, Groq, or Cerebras key and pay that provider directly — typically a fraction of a cent per rewrite — or skip the network entirely with local demo mode.

FAQ

Good to know

The app is free and open source (MIT license). There's no subscription and no hidden tier. If you use a real AI provider, you pay that provider directly for your own usage — Polishly never sees or marks up that cost.

Nothing is read or sent until you press the hotkey. When you do, your selected text goes directly from your Mac to the provider you configured, using your key — Polishly has no backend server in between. In demo mode, nothing ever leaves your Mac.

OpenAI, Anthropic, Groq, and Cerebras today. The model field is free text, so any model string your provider supports will work.

No — local demo mode runs entirely on-device with simple rule-based cleanup, so you can try the selection → hotkey → diff → accept flow before connecting a real provider.

Not yet. Polishly is built on macOS's Accessibility API; a Windows port would need to rebuild the capture layer on UI Automation.

Right here: github.com/kiranreddi/polishly. Issues and PRs are welcome.

Rewrite on your terms.

Free, open source, and yours to run however you like.