Translate selected text on a Mac and replace it in place
Select some text in any app, start dragging it, tap ⌘ and drop it on a language. Ferrocast sends the text to the AI provider you chose and puts the translation back where the text was: in text fields and in Safari and Chromium pages. Where it cannot replace the text, it shows the translation in a window and copies it. With Ollama or Apple’s on-device translation the text never leaves your Mac. Free and open source (MIT).
macOS already translates text on its own: Control-click the selection, choose Translate, then Replace with Translation. Ferrocast is for when you want a different route: one drag gesture, your own model or provider, and replacement inside web pages. I make Ferrocast, so the table links Apple’s page.
Download FerrocastFree · MIT · Apple Silicon · no account
Ferrocast and macOS Translate, side by side
| Ferrocast | Translate in macOS | |
|---|---|---|
| Gesture | Select, drag the selection, tap ⌘ (the default; changeable in Settings → Translate), drop on a language | Select, Control-click, choose Translate, then Replace with Translation |
| Replace in place | Text fields (through Accessibility) and Safari and Chromium pages; otherwise a window with the translation, also copied | Apple describes Replace with Translation when you are writing on your Mac |
| Who translates | Your AI provider (Ollama, LM Studio or any OpenAI-compatible server, the Anthropic API, ChatGPT sign-in, Claude Code), or Apple Translation on macOS 26 | Apple Translation; you can download languages for offline use, and On-Device Mode processes translations on the Mac |
| Where the text goes | Only to the provider you chose; with Ollama, LM Studio or the Apple engine it stays on your Mac | Apple describes offline languages and On-Device Mode; offline translations may be less accurate than those processed on Apple’s servers |
| Languages | Up to 12 on the wheel, in your order; default: English, Spanish, French, German, Portuguese, Italian, Japanese, Chinese | The languages Apple supports, chosen in pop-up menus |
| Web pages | Safari and Chromium browsers after you turn on “Allow JavaScript from Apple Events”; Firefox is not supported | Apple says you can select text on webpages to translate it |
| Price | Free (MIT); a cloud provider bills you for your own key | Part of macOS |
Apple: Translate text on Mac, read on 28 October 2026. Ferrocast: Translate selected text docs and the app’s source code. Dedicated translation apps are not in this table: I did not open their pages.
Translate selected text with Ferrocast
- Install Ferrocast and pick an engine. Download the DMG or install it with Homebrew. In Settings → Translate → Engine, leave “Same as chat” (Ollama on your Mac by default) or pick a provider, or Apple on macOS 26. For Ollama, install it and pull a model first; Settings → AI has a Test connection button.
- Select and drag the text. Select text in any app and start dragging it. Keep the mouse button down.
- Tap ⌘. A purple wheel with your languages opens under the pointer. Escape cancels.
- Drop it on a language. Release over a language. A glow shows the text being translated and a moment later the translation replaces it.
- For web pages, allow JavaScript from Apple Events once. Turn on “Allow JavaScript from Apple Events” in your browser’s Developer menu (in Safari, after showing the developer features). macOS then asks whether Ferrocast may control the browser: allow it.
Install Ferrocast with Homebrew
brew tap drumst0ck/ferrocast
brew install drumst0ck/ferrocast/ferrocast
ln -sfn "$(brew --prefix)/opt/ferrocast/Ferrocast.app" \
/Applications/Ferrocast.app
open /Applications/Ferrocast.app Where the translation ends up
Settings → Translate → After translating decides. The default, Auto, replaces the selection where the app allows it and shows a window otherwise. Window always shows the translation, with Copy and “Paste into app”. Paste ⌘V copies the translation and presses ⌘V, which only helps in editable fields. Copy only puts it on the clipboard.
With Auto, text fields (Notes, Mail, TextEdit and most native apps) are replaced through Accessibility, with ⌘V as a fallback if the app refuses. In Safari and Chromium browsers (Chrome, Brave, Edge, Arc, Vivaldi, Opera) the selected text is replaced inside the page until you reload it. Anywhere else, or if anything fails, the window opens with the translation. If you switch to another app while it translates, Ferrocast never writes into that app.
Keep it on your Mac
The selected text goes only to the provider you chose. Ollama and LM Studio run on your Mac, and so does the Apple engine (macOS 26 or later; the first translation after launch can take a few seconds while the model loads, and Apple decides whether a language must be downloaded first). OpenAI-compatible cloud servers, the Anthropic API, ChatGPT sign-in and Claude Code send the text to that provider. Ferrocast’s log records the language, the engine, the number of characters and the time, never the text.
Limits
- Firefox is not supported for in-page replacement.
- Pages such as
chrome://orbrave://and the browser extension stores do not accept scripts, and text inside frames (some editors and embedded comments) is not replaced: the window opens instead. - Pages that redraw their text (some web apps) can undo the replacement.
- Selections over 20,000 characters are refused.
- The gesture needs an app that lets you drag selected text.
- The quality of the translation depends on the model you choose. I have not compared it with Apple’s.
- Apple Translation as the engine needs macOS 26 or later.
Related guides
Questions
How do I translate selected text on a Mac and replace it?
With Ferrocast: select the text, start dragging it, tap ⌘ and drop it on a language. The translation replaces the selection in text fields and in Safari and Chromium pages; elsewhere it opens in a window and is copied. With macOS alone: Control-click the selection, choose Translate, then Replace with Translation.
Does macOS already translate selected text?
Yes. Apple’s Mac User Guide says to select the text, Control-click it and choose Translate, and to click Replace with Translation to replace what you wrote. Ferrocast adds a drag gesture and your choice of AI provider.
Can I translate with Ollama so nothing leaves my Mac?
Yes. Ferrocast’s translation uses the same providers as Ask AI, and Ollama on your Mac is the default. The Apple engine, on macOS 26 or later, also translates on your Mac.
Does it work in the browser?
In Safari and Chromium browsers such as Chrome, Brave, Edge, Arc, Vivaldi and Opera, once you turn on “Allow JavaScript from Apple Events”. Firefox is not supported.
Where does the translated text go?
Auto replaces the selection where the app allows it and opens a window otherwise; when it opens the window the translation is also copied. You can switch to Window, Paste ⌘V or Copy only in Settings → Translate.
Which languages can I use?
Up to 12 on the wheel, in the order you list them in Settings → Translate. The defaults are English, Spanish, French, German, Portuguese, Italian, Japanese and Chinese.
Is there a size limit?
Yes. Selections over 20,000 characters are refused.
Is it free?
Ferrocast is free and open source (MIT). A local model costs nothing; a cloud provider bills you directly for your own key.
What languages is Ferrocast available in?
English, plus Spanish, German, French, Brazilian Portuguese, Japanese and Simplified Chinese. It follows the macOS language order, or Settings → General → Language. The choice stays on that Mac and is not synced. Anything not translated yet shows in English. Names you type and what Raycast extensions show are never translated.