Skip to content

Documentation

Everything you need to install dragoman, connect a model, and keep it running.

Install

Install dragoman from your browser's store, and it keeps itself up to date from there.

Chrome, Edge, Helium, and other Chromium browsers
Install a release by hand

Every release is also on GitHub, with zips for Chromium browsers and Firefox, plus the full source code. Builds you load by hand don't update themselves.

  1. 1 Download the Chrome zip from the latest release and unzip it.
  2. 2 Open helium://extensions, or chrome://extensions in other browsers, and turn on Developer mode.
  3. 3 Choose Load unpacked and select the unzipped folder.
Open the latest release

Pin dragoman to the toolbar so it's one click away.

Chrome for Android doesn't run extensions. On Android, use Firefox.

Translate your first page

Open any website, click the dragoman icon, pick a language, and choose Translate page. Alt+Shift+T, or Option+Shift+T on a Mac, does the same from the keyboard. Drafts appear with a dotted gold underline, which disappears as your model refines each paragraph.

AltShiftT / ⌥⇧T Translate the page, or show the original

How a translated page reads

Drafted on your device
Mochi is currently promoted to editor in chief.
Refined by the model you choose
Mochi has since been promoted to editor-in-chief.
The original is a hover away
Rest the pointer on any paragraph to read what it said before. One click on the badge, or Alt+Shift+T, puts the whole page back.

On a phone or tablet, open dragoman from your browser's extensions menu.

Compared with your browser's translator

Chrome, Edge, Safari, and Firefox can translate pages on their own, and for a quick look that's often enough. dragoman is for when you want to really read a page: it gets the meaning and the wording right, and you decide who sees the text.

It reads the whole page

Built-in translators work through a page in small pieces, each on its own, so the same word can come out two different ways a few lines apart. dragoman shows your AI model the page's title, its headings, and the phrases that repeat, so a name, label, or term keeps one translation from top to bottom.

Piece by piece

Περίοδος
1910–1915
Term
Περίοδος
1917–1920
Period
Περίοδος
1928–1932
Tenure
Περίοδος
1933
Term

With the whole page in view

Περίοδος
1910–1915
Term
Περίοδος
1917–1920
Term
Περίοδος
1928–1932
Term
Περίοδος
1933
Term
An illustration: one Greek label, repeated down an infobox, translated into English.

You decide where the text goes

When Chrome or Edge translates a page, it sends the text to Google or Microsoft. dragoman drafts on your device, then sends only what you're reading to the provider you chose, with your own key. Keep it on the device, and no page text leaves at all.

Where the page text goes

Chrome Google Edge Microsoft dragoman Your device Your AI provider only what you read, if you add a model
You choose the translator
Chrome translates pages with Google Translate, and Edge with Microsoft Translator. dragoman works with the AI model you pick, whether that's Claude, Gemini, the models behind ChatGPT, or one running on your own computer. Today's AI models are generally better with idioms, tone, and words whose meaning depends on the sentence.
The original stays close
Hover over any paragraph, or tap it on a phone, to read what it said before, without switching the whole page back.

Your browser's translator is built in, free, and needs no setup. dragoman's on-device drafts are free too, and refinement costs only what your provider charges for the text you read, usually very little with a small model. Firefox's own translator runs Bergamot, the same engine dragoman drafts with in Firefox, so there the difference is the AI pass and the page context on top.

Under the hood
Two passes
Your browser's on-device model drafts in the background, with Bergamot, compiled to WebAssembly, filling in where it has none. Paragraphs on screen and just ahead then go to your model in small batches, and each refined paragraph replaces its draft.
Page context
Each request carries the page title, an outline of its headings, the phrases that recur on the page with the text around their first appearance, and every rendering settled so far. The model returns the terms it chose, and later requests keep to them.
Markup
Links, emphasis, and other inline elements travel as numbered placeholders, so the layout and the links come back intact.
Only what you read
Refinement follows the viewport, so a long page costs only the part you scroll through. Finished translations are saved on your device and reused when you come back.
No middleman
Requests go straight from your browser to your provider with your key. There's no dragoman server, and every line of the code is public.

On-device translation

Every page starts on your device. dragoman drafts with the on-device model built into Chrome and Edge, and with Apple's in Safari. These run on your computer, unlike the browsers' own page translation, which goes online. Everywhere else, and for any language those don't cover, Bergamot, the open engine behind Firefox Translations, drafts inside your browser. None of it needs an account or a key. On its own, you get a quick, private translation. With an AI model, those drafts become a first pass that your model polishes.

One-time download per language pair

  • English → Turkish 15 MB
  • English → German 26 MB
  • French → English 26 MB
  • Japanese → English 49 MB

French → English → German

52 MB

No direct model between two languages? dragoman goes through English and downloads both halves.

Download sizes as listed in Mozilla's model registry.
Languages
More than 50 languages, to and from English. Between two other languages, dragoman goes through English. In the language list, the ones marked AI only need an AI model.
First use
Chrome and Edge fetch their language packs the first time you need them, and Safari uses the languages downloaded for Apple's translation on your device. Bergamot's language pairs download once from Mozilla, usually 15 to 50 MB, and stay in your browser. After that, it all works offline.
Drafts and refinement
Drafts are quick and fairly literal, good for getting the gist. Your model rewrites them with the whole page in view, so the wording reads naturally and names and terms stay consistent.
Your choice
To keep a page on your device even with a model set up, turn on On this device only in the popup. To skip drafts and wait for your model, turn off Draft on this device first in Settings.

Bergamot came out of a research project funded by the European Union, and Mozilla trains and publishes the language models it runs. About Bergamot

Add an AI model

Open Settings from the popup, pick a provider, and follow the three steps. dragoman checks the key as soon as you paste it and preselects a fast, inexpensive model, which you can change at any time.

Providers you can use

  • Anthropic
  • OpenAI
  • Google Gemini
  • OpenRouter
  • Mistral
  • DeepSeek
  • Groq
  • xAI
  • Ollama
  • LM Studio
  • Any OpenAI-compatible server

OpenRouter can create a key for you. Choose Connect with OpenRouter and approve the request.

Anthropic keys that aren't tied to a workspace also need a workspace ID. You'll find it in the Anthropic Console under Settings, then Workspaces.

Use a local model

Install Ollama, pull a model such as gemma3, and start it with OLLAMA_ORIGINS set so it accepts requests from the extension:

OLLAMA_ORIGINS="chrome-extension://*,moz-extension://*,safari-web-extension://*" ollama serve

In LM Studio, load a model, turn on CORS in the server settings, and start the local server. dragoman finds it at localhost:1234.

What it costs

dragoman is free. Refinement runs on your own key, so the provider bills you directly. Small, fast models are usually enough for translation. The Usage tab in Settings counts tokens per model each month, and turning on Show what each page costs puts the cost of the current page next to the badge.

4 of 14 paragraphs refined

  • Refined
  • Drafted
  • Not yet

As you scroll, paragraphs just ahead get a quick draft and the ones on screen get refined. The rest of the page costs nothing until you get there.

Privacy

What leaves your computer: the paragraphs on screen and just ahead of them, plus any text you ask your companion to translate, sent to the provider you chose, and, for languages your browser can't translate on its own, a one-time model download from Mozilla. Your key is only ever sent to its own provider. dragoman has no server, no account, and no analytics.

Read the full privacy policy

Troubleshooting

The popup says the page can't be translated

Browser pages such as settings, the extensions page, and web stores don't allow extensions to change them. Open a regular website instead.

The on-device engine has no model for this pair

The on-device translators cover the most widely used languages. In Safari, you can add more under Translation Languages in your device's Language & Region settings. For the rest, add an AI model and dragoman translates with it directly.

My browser offers to translate the page too

dragoman asks your browser to stay out of the way on pages it might translate. If you turned that off, turn on Keep my browser's translator out of the way in Settings, under Languages. If your browser already translated a page, choose Use dragoman instead to reload it in the original.

A local model doesn't connect

Check that the server is running and that its address in Settings matches. Ollama needs OLLAMA_ORIGINS, and LM Studio needs CORS turned on.

dragoman can't read the page

Safari and Firefox let you choose which websites an extension may read. Open dragoman and choose Allow on all websites.

Firefox doesn't refine with my model

Firefox asks before an extension sends page text anywhere. Open Settings and choose Allow sending page text under your model.

Build from source

dragoman is open source under the MIT license. To build it, you need Node 24 and pnpm.

git clone https://github.com/firatciftci/dragoman.git
cd dragoman
pnpm install
pnpm dev:extension

Each browser has its own build. Run these from extension/:

Chromium browsers pnpm build → .output/chrome-mv3
Firefox pnpm build:firefox → .output/firefox-mv3
Safari pnpm build:safari → .output/safari-mv3 Then build safari/dragoman.xcodeproj in Xcode.

The repository is a pnpm workspace:

extension/
The extension, built with WXT and Svelte
site/
This website, built with SvelteKit
brand/
The dragomans, the logo, and the city
messages/
Interface text in 85 languages