Translate selected text
Select some text in any app, start dragging it, tap ⌘ and drop it on a language. Ferrocast sends the text to your AI provider and puts the translation back where the text was. Where that is not possible, it shows the translation in a window and copies it.
Translate in three steps
Section titled “Translate in three steps”- Select the text and start dragging it. Keep the mouse button down.
- Tap the translate key, ⌘ by default. A purple wheel with your languages opens under the pointer. ⇧ is not used because it extends the selection while you drag.
- Release over a language. A glow shows the text being translated, and a moment later the translation replaces it.
Escape cancels. ⌘ and ⌃ do nothing while this wheel is open: it has no other wheel to switch to.
Where the translation goes
Section titled “Where the translation goes”Settings → Translate → After translating decides what happens with the result.
| Option | What it does |
|---|---|
| Auto (default) | Replaces the selection where the app allows it, and shows the window otherwise. |
| Window | Always shows the translation in a Ferrocast window, with Copy and “Paste into app”. |
| Paste ⌘V | Copies the translation and presses ⌘ V in the app. Only useful in editable fields. |
| Copy only | Puts the translation on the clipboard. |
With Auto, Ferrocast checks the app the text came from:
- Text fields (Notes, Mail, TextEdit, most native apps): the selection is replaced through Accessibility. If the app refuses, Ferrocast pastes with ⌘ V.
- Web pages in Safari and Chromium browsers (Chrome, Brave, Edge, Arc, Vivaldi, Opera): the selected text is replaced inside the page. This needs one browser setting, see below. The change lasts until you reload the page.
- Anything else, or any failure: the window opens with the translation, which is also on the clipboard.
If you switch to another app while the translation runs, Ferrocast never writes into that app. It shows the window instead.
Replace text in web pages
Section titled “Replace text in web pages”The browser has to let Ferrocast run a small script in the page. Turn this on once per browser profile:
- Chrome, Brave, Edge and other Chromium browsers: View → Developer → Allow JavaScript from Apple Events. In Brave in Spanish the menu is Ver → Opciones para desarrolladores → Permitir JavaScript desde Eventos de Apple.
- Safari: turn on Settings → Advanced → Show features for web developers, then Allow JavaScript from Apple Events in Settings → Developer (in older Safari versions it is in the Develop menu).
The first time, macOS asks whether Ferrocast may control the browser: allow it. You can change that later in System Settings → Privacy & Security → Automation.
If the setting is off, the window opens with the translation and a message tells you which option to turn on.
The translating effect
Section titled “The translating effect”While the AI answers, the text being translated glows in Ferrocast’s neon red:
- in Safari and Chromium pages, a neon outline with lights running around it surrounds the selected block, and the page’s own selection colour is hidden until the translation arrives;
- in other apps that report where the selection is, a glowing outline is drawn around it;
- otherwise, a small “Translating…” pill appears where you dropped.
If the translation fails, the page is left exactly as it was and your selection comes back. With Reduce Motion on, the glow is static. Settings → Translate → Translating effect turns it off.
Engine and model
Section titled “Engine and model”Translation uses the same providers as Ask AI: an OpenAI-compatible server (Ollama keeps everything on your Mac), the Anthropic API, Sign in with ChatGPT or Claude Code (your ChatGPT or Claude subscription).
In Settings → Translate → Engine:
- Same as chat (default) uses the provider and model of Ask AI.
- A fixed provider lets you pick its Model: the provider’s list, Provider default, or Custom… to type a name. Switching provider resets the model.
The server address, keys and sign-ins are set in Settings → AI; the Translate tab only chooses who translates. Translations use their own instructions, so a single word, a heading or a question is translated instead of answered.
Languages
Section titled “Languages”Settings → Translate → Languages is a comma-separated list of up to 12 languages, in the order they appear on the wheel. The default is English, Spanish, French, German, Portuguese, Italian, Japanese and Chinese. Duplicates are removed and an empty list brings the defaults back. The source language is detected by the model.
Privacy
Section titled “Privacy”The selected text is sent only to the provider you chose, and with Ollama it never leaves your Mac. Ferrocast keeps neither the text nor the translation: the translation is only put on the clipboard, and Ferrocast’s own clipboard history skips it. The log records the language, the provider, the length of the text and how long it took, never the text.
When it does not work
Section titled “When it does not work”~/Library/Application Support/Ferrocast/ferrocast.log has one line per translation (translate Spanish via Claude Code ok chars=… ms=…) and one per delivery, for example translate deliver Spanish -> web-replace Chromium("Brave Browser") followed by ok, or fallback-show: js-permission when the browser setting is off.