Model or dataset
nextai-translator/nextai-translator avatar
nextai-translator/nextai-translator

nextai-translator: A ChatGPT-Powered Translator for Browser and Desktop

基于 ChatGPT API 的划词翻译浏览器插件和跨平台桌面端应用 - Browser extension and cross-platform desktop application for translation based on ChatGPT API.

24,981 stars1,851 forksTypeScriptAGPL-3.0

At a glance

What is it?
nextai-translator is a TypeScript and Rust project that ships a Chrome and Firefox extension plus a Tauri desktop app for translation, polishing and summarization. The main trade-off is that the client is free but every request depends on a paid LLM API key you supply.
Who is it for?
Adopt nextai-translator if you already pay for an OpenAI or Azure OpenAI key and want translation, polishing and summarization behind one shortcut on both browser and desktop. Skip it if you need a fully offline translator, if you cannot use a paid LLM API, or if you plan to redistribute a modified build, because AGPL-3.0 applies to the code.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What nextai-translator solves, and who it is aimed at

The project started as a Bob plugin for macOS that used the ChatGPT API for word lookup. The README states the reason for the standalone version plainly: not every user has access to macOS, so the author built a browser extension and then a desktop app to reach the other platforms. That origin explains the shape of the product. It is not a dictionary with a built-in corpus. It is a thin client that sends your selected text to a language model and renders the answer in a floating panel.

The intended user is someone who reads and writes in more than one language and already has an LLM API key. Three modes are exposed: translation, polishing and summarization. The README claims mutual translation, polishing and summarization across 55 languages. Features beyond plain translation include streaming output, one-click copy, text-to-speech, screenshot translation, and vocabulary books with generated memory aids. If you only need a dictionary lookup for a single language pair and do not want to pay per request, this is the wrong category of tool.

How the extension and the Tauri app share one codebase

The repository is a pnpm workspace with one src directory and several Vite configs. vite.config.chromium.ts and vite.config.firefox.ts produce the two browser builds, vite.config.userscript.ts produces a userscript, and vite.config.tauri.ts produces the renderer that the Tauri shell loads. The desktop side lives in src-tauri, and the package.json dependencies list Tauri plugins for global shortcuts, autostart, notifications, filesystem access and HTTP. The Rust badge in the README reflects that shell rather than a Rust rewrite of the UI.

The data flow is what you would expect from an API client. Text selected in the browser or captured by a global shortcut in the desktop app is sent to the configured provider, and the response is streamed back into the panel. The provider list in the README covers OpenAI, TeamoRouter, Azure OpenAI Service, MiniMax and other LLM providers. The README also mentions an OpenAI API Proxy for users who cannot reach OpenAI directly, which is a configuration-level workaround rather than a separate transport. There is no local model and no offline path described anywhere in the documentation.

Installing the desktop build and translating your first selection

The README documents manual installation from the releases page rather than a package manager. On Windows you download the .exe asset from the latest release and double-click it; if SmartScreen objects, the documented path is More Info then Run Anyway. On macOS you pick the .dmg matching your chip, with the README noting that Apple Silicon machines should use the aarch64 build. If macOS refuses to open it, the documented fix is a quarantine attribute removal:

bash
sudo xattr -d com.apple.quarantine /Applications/NextAI\ Translator.app

After that you restart the app. The README also covers a second macOS case: if you get a permission prompt every time you open the app, or shortcut translation does not fire, remove NextAI Translator under Settings, Privacy & Security, Supporting Features and add it again.

Before the app is useful you need credentials. The README marks an OpenAI API key or an Azure OpenAI Service key as required, and lists TeamoRouter as a recommended OpenAI-compatible gateway that is selectable in Settings. Once a provider and key are set, the first real use is a selection: highlight text in another application, trigger the shortcut, and the panel should stream the translation. Streaming is listed as a feature, so the text should appear progressively rather than all at once. If nothing appears, the failure is almost always the key, the endpoint, or network reachability, not the UI.

Where nextai-translator stops being the right tool

Every mode depends on a remote model. There is no bundled dictionary, no local inference, and no documented offline behaviour, so on a plane, behind a restrictive corporate proxy, or in an environment where text cannot leave the machine, the app has nothing to fall back on. The README's answer to blocked OpenAI access is a proxy, which still means the text leaves your network.

Cost and latency sit with the user. The project does not include a model; you bring the key and you pay per token. That also means output quality and speed are properties of the provider you pick, not of nextai-translator, and a model change on the provider side can alter results without any change in this repository. The README does not document rate-limit handling, retry behaviour, or what happens when a stream is interrupted mid-response, so those are things to observe rather than assume. Screenshot translation and vocabulary books are listed as features, but the README gives no detail on OCR engine or storage format, which matters if you intend to rely on them for study material.

How it compares with Immersive Translate and Bob

The closest comparison is Immersive Translate, which is built around bilingual side-by-side rendering of whole web pages and can use several engines including free ones. nextai-translator works on the selected fragment and routes everything through an LLM provider you configure, which gives it the polishing and summarization modes but removes the no-key fallback. If your job is reading a long foreign-language article, page-level bilingual rendering is a better fit; if your job is rewriting one paragraph you just wrote, the mode set here is more direct.

The second comparison is the author's own Bob plugin for macOS. The README says the plugin came first and this project exists because not every user has macOS. The plugin route keeps you inside Bob's macOS workflow; nextai-translator trades that for Windows, Linux and browser coverage. The repository also carries clip-extensions and a Makefile target for PopClip and SnipDo, so on macOS the packaged extensions are another way in, separate from the Bob plugin.

Maintenance cadence, build cost and the AGPL-3.0 licence

The last push to the default branch was on 2026-09-03, and releases v0.6.41, v0.6.42 and v0.6.43 landed between 2026-08-21 and 2026-08-23. That is a short window between the newest release and the latest commit, which suggests the release channel tracks the branch closely, but the README does not state a support policy, a deprecation process, or which versions receive fixes.

Building from source is not a one-command affair. package.json pins pnpm 9.1.3, and the scripts split into dev-chromium, dev-firefox, build-browser-extension, build-tauri and build-userscript. The Makefile adds targets for the PopClip and SnipDo clip extensions. A desktop build goes through the Tauri toolchain, so you need the Rust side set up alongside Node. The README does not document rollback, so downgrading means fetching an older asset from the releases page and reinstalling.

The licence is AGPL-3.0. Note that the README's badge image points at an MIT License file while package.json declares AGPL-3.0, so read the LICENSE file itself before you rely on either. For internal use the practical effect is minimal. If you modify the code and let users interact with it over a network, the AGPL's source-availability condition is the part to discuss with counsel; this is a description of the licence, not legal advice.

Editorial conclusion

Adopt nextai-translator if you already pay for an OpenAI or Azure OpenAI key and want translation, polishing and summarization behind one shortcut on both browser and desktop. Skip it if you need a fully offline translator, if you cannot use a paid LLM API, or if you plan to redistribute a modified build, because AGPL-3.0 applies to the code. Before installing, verify that the release asset for your platform exists on the releases page, that the app can reach your chosen provider endpoint, and that your key has quota.

Frequently asked questions

Does nextai-translator work without an API key?

No. The README lists an OpenAI API key or an Azure OpenAI Service key as required, and TeamoRouter is offered as a recommended OpenAI-compatible alternative. There is no documented local or offline mode.

Which platforms does nextai-translator support?

The README lists Windows, macOS and Linux for the desktop app, plus Chrome and Firefox extensions. Apple Silicon users are told to use the aarch64 .dmg build.

How do I install nextai-translator on macOS when it is blocked?

The README says to click Cancel on the warning, then go to Settings, Privacy and Security and use Still Open. If that option is missing, it gives a Terminal command: sudo xattr -d com.apple.quarantine /Applications/NextAI\ Translator.app, followed by a restart.

What can nextai-translator do besides translation?

It offers translation, polishing and summarization modes, with streaming output, one-click copy, text-to-speech, screenshot translation and vocabulary books. The README states it supports mutual translation, polishing and summarization across 55 languages.

Which LLM providers can nextai-translator use?

The README lists OpenAI, TeamoRouter, Azure OpenAI Service, MiniMax and other LLM providers, and mentions an OpenAI API Proxy for users who cannot reach OpenAI directly.

What licence does nextai-translator use?

package.json declares AGPL-3.0, and the repository includes a LICENSE file. The README's badge image, however, points at an MIT License, so check the LICENSE file itself.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. nextai-translator/nextai-translator on GitHub
  4. README
  5. Releases
Community notes

Community notes