Argonaut
Argonaut translates documents — .txt .docx .odt .odp .pptx .epub
.html .srt .pdf — without sending them anywhere. Translation runs
entirely on your own machine, so it works with no connection and your
documents never leave the computer.
This page is the user manual. If you want to build or contribute to Argonaut, see CONTRIBUTING.md.
Installing
pip install argonaut-translator
That provides the argonaut command. You need Python 3.10 or newer.
Before translating anything you need at least one language package. Open Settings → Manage language packages…, pick the pairs you want and press "Install selected". The dialog lists every package available with its version and download size, can filter by what you already have, and flags the ones with a newer version so you can update them in place.
Translating documents
- Choose the languages. The ⇄ button swaps them. By default the source is "Detect language": each document's language is worked out on its own, so you can mix files in different languages in the same batch.
- Add the documents. Drag files or whole folders onto the window — folders are searched all the way down — or use the "Add…" button, or File → Add files… and File → Add folder…. While the list is empty it tells you so, and a drag held over the window outlines where the files will land. Each file shows its size, and the line below the list shows the total for the batch.
- Choose where the translations go, with "Output…", or leave it and each translation is saved next to its original. Tick "Skip files already translated" to leave existing translations alone, which makes an interrupted batch safe to run again.
- Press "Translate". Each file is saved with the target language added
to its name, like
report_es.docx. - You can press "Cancel" at any point, even in the middle of a file. Everything already translated is kept.
The Translate button stays greyed out until there is something to do, and the line above it says what is missing — no documents yet, the same language on both sides, or no model for the pair you picked.
A note on PDFs
PDFs are translated paragraph by paragraph with the layout preserved, so a long one takes a while. The bar shows the real percentage of paragraphs done and an estimate of the time left, and the line beside it names what is happening and which page it is on, so a long book shows progress instead of an apparently idle bar. Text that runs sideways, like vertical watermarks, is left alone, and links from the original are not carried over.
The two engines
Chosen from Settings → Engine.
Argos Translate (the default) uses small models, one per language pair, that you install from the application. A pair with no model of its own is still translated, by going through English: Albanian to Spanish is done as Albanian → English → Spanish. That works, but the text is translated twice and the second pass cannot recover what the first one lost, so the window tells you which language it is going through whenever that happens.
NLLB-200 is a single larger model that translates directly between any two of its 32 languages, with noticeably better results and no detour through English. It is about 630 MB, downloaded the first time you choose it, and can be deleted again from Settings → Delete the NLLB-200 model…. Its weights are licensed for non-commercial use.
Settings
Everything here is remembered between sessions and applies as soon as you change it.
Preferences
- Interface language — see below.
- Theme — System (your desktop's own look, the default), Light or Dark.
- Download speed units — network units (
16.8 Mbps) or the ones a download manager shows (2.0 MB/s).
How translation runs
- Engine — Argos Translate or NLLB-200 (see above).
- CPU threads — up to the number of cores you have, and using all of them by default. Holding threads back only makes you wait longer.
- Translation quality — Best quality, or Fast, which is roughly 1.7× quicker for a small loss in accuracy. The two never share cached translations, since what they produce differs.
Translation cache
A paragraph translated once is reused for the rest of the batch and, unless you turn it off, in later sessions too — so the same paragraph repeated across several files reaches the engine only once. The window reports how much each file and the batch as a whole took from the cache.
From Settings → Cache you can switch it off, choose how long unused entries are kept (never, 30 days, 90 days — the default — or a year), see how big it has grown, and clear it. Entries are tied to the engine, the model version and the language pair, so updating a package stops it serving the old model's work.
Translation history
Every file a batch finishes is recorded: what was translated and from which folder, into which language, where the result was written, with which engine, how long it took and how much of it came from the cache. Settings → History → View history… lists them newest first in sortable columns. Double-clicking a row, or the "Open translation" button, opens the translated file; rows whose file has since been moved or deleted stay in the list, greyed out, because the history is a record of what happened rather than a file browser.
The same submenu lets you stop recording, choose how long entries are kept, see the size and clear it. Viewing and clearing keep working while recording is off, and only successful translations are recorded: a file that failed is not history, it is an error.
Interface language
Argonaut starts in the language your desktop is set to, falling back to English when that is one it does not speak. In Settings → Preferences → Interface language you can switch to Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, Dutch, Polish or Turkish. The change applies at once, and that is what gets remembered — until you pick one, the desktop keeps deciding, so changing your system language changes Argonaut's too.
It says interface because it is the language of the buttons and menus, not of the documents. The languages you translate between are the two boxes above the file list.
Those are named in your interface language as well: French reads "Francés" in Spanish and "フランス語" in Japanese, in the language boxes, in the package dialog and in the messages — each list in alphabetical order by the name you actually see.
What is remembered
When you close the window, Argonaut stores the interface language, the source and target languages, the output folder and the window's size and position, and restores them next time. If a saved language is no longer installed, or the folder is gone, it falls back to the default.
Help
The Help menu opens this manual and Report a bug…, which goes straight to the issue tracker. Both open in your browser: translation is offline, but documentation and bug reports are the two things worth having current.
"About Argonaut…" has three tabs: About (version, supported formats and links), Details (a plain-text report with the versions of everything, the active engine and where the cache lives — copyable with one button, ready to paste into a bug report) and Credits and licenses.
Author and license
© 2026 Sergio Rodríguez.
This project is distributed under the GNU GPL v3 license, in line with the license of PyQt5, which the interface depends on.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file argonaut_translator-1.8.0.tar.gz.
File metadata
- Download URL: argonaut_translator-1.8.0.tar.gz
- Upload date:
- Size: 152.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fbcd9c26dee93c597ba50060f5cf28d0ee8e89fc63f50f4f5b46cab20938343
|
|
| MD5 |
54f38dde1072142f627d7f52be5552a3
|
|
| BLAKE2b-256 |
059f59df92a39a6e26b4640b2ce6e5a033ad3a4c2169606711e216331b01899c
|
Provenance
The following attestation bundles were made for argonaut_translator-1.8.0.tar.gz:
Publisher:
publish.yml on Nibblex/Argonaut
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
argonaut_translator-1.8.0.tar.gz -
Subject digest:
5fbcd9c26dee93c597ba50060f5cf28d0ee8e89fc63f50f4f5b46cab20938343 - Sigstore transparency entry: 2315263345
- Sigstore integration time:
-
Permalink:
Nibblex/Argonaut@5cbfede54b8c263edb0086f126ff033c4aaf1208 -
Branch / Tag:
refs/tags/v1.8.0 - Owner: https://github.com/Nibblex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5cbfede54b8c263edb0086f126ff033c4aaf1208 -
Trigger Event:
release
-
Statement type:
File details
Details for the file argonaut_translator-1.8.0-py3-none-any.whl.
File metadata
- Download URL: argonaut_translator-1.8.0-py3-none-any.whl
- Upload date:
- Size: 123.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc48af93d79e18b25da0291264d2fd94205305e0cad478870ab99579d9ded8c3
|
|
| MD5 |
70f6186bcb87eadc35e9eebae589e12b
|
|
| BLAKE2b-256 |
d2a60a15c59a0b0ec9478434113f26c7e14bec4549fafb37271be3b13704f296
|
Provenance
The following attestation bundles were made for argonaut_translator-1.8.0-py3-none-any.whl:
Publisher:
publish.yml on Nibblex/Argonaut
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
argonaut_translator-1.8.0-py3-none-any.whl -
Subject digest:
dc48af93d79e18b25da0291264d2fd94205305e0cad478870ab99579d9ded8c3 - Sigstore transparency entry: 2315263479
- Sigstore integration time:
-
Permalink:
Nibblex/Argonaut@5cbfede54b8c263edb0086f126ff033c4aaf1208 -
Branch / Tag:
refs/tags/v1.8.0 - Owner: https://github.com/Nibblex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5cbfede54b8c263edb0086f126ff033c4aaf1208 -
Trigger Event:
release
-
Statement type: