# FluentRead: a bilingual translation extension with an AI reading card

> FluentRead renders translations next to the original page and adds a selection-based reading card adapted from the DeepSeek Harness session core. It installs from the Chrome, Edge, Firefox and Greasy Fork stores, and its AI features need a configured provider.

**FluentRead/FluentRead** — An open-source browser extension for bilingual translation. 一款开源的浏览器双语翻译插件。

- Repository: https://github.com/FluentRead/FluentRead
- Website: https://fluent.thinkstu.com
- Stars: 8,221 · Forks: 422
- Language: TypeScript
- License: GPL-3.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/fluentread-fluentread

## What FluentRead solves, and who ends up using it

Reading a foreign-language page in a separate translation tab destroys the thing that made the page worth reading: the layout, the code samples, the inline links and the author's exact wording. FluentRead's stated approach is to display translations alongside the original webpage rather than replacing it. The original stays in place, the translation is inserted next to it, and the extension offers an original-text restoration control if you want the page back.

The audience is people who read technical or long-form material in a second language and want help in place. The feature table lists hover and selection translation, automatic translation rules for sites you visit often, a learning center that saves words, phrases and sentences together with their original context, and a reading card that gives meaning, sentence analysis, usage explanations and practice with paragraph context and follow-up questions. That combination points at language learners and at engineers reading documentation, not at someone who wants a one-shot machine translation of a paragraph they will never see again.

One boundary is worth stating early. The README says AI explanations require a configured AI service. The reading card is not a bundled model. You bring a provider.

## How the translation pipeline and the reading card differ

FluentRead is not one engine applied to everything. The README separates the paths explicitly: full-page, hover and regular selection translation use their respective translation pipelines, while the reading card is used for selection-based reading assistance. The reading card adapts the conversation-event and message organization components of the DeepSeek Harness session core for the browser, and FluentRead connects those components to the selected text, permitted paragraph context, model services and local reading history. The repository keeps a third-party notice for that adaptation under an MIT license, and the README points to an integration map for scope and upstream references.

So the architecture has two layers. The translation layer is a set of independent pipelines selected by how you triggered the translation. The assistance layer is a session-oriented one: text in, context attached, model called, conversation state kept locally so follow-up questions have something to refer to. Optional learning memories extend that state.

That split explains a behaviour that would otherwise look inconsistent. Turning on page translation does not give you the reading card, and configuring a model for the reading card does not change how full-page translation is produced. They are wired to different services and different code paths. If you only care about reading a page in two languages, the card is overhead you can ignore.

## Installing FluentRead and translating a page

FluentRead ships through browser stores rather than as a standalone binary. The README lists Chrome, Edge, Firefox and a userscript hosted on Greasy Fork, and states that the userscript provides core webpage translation features, so the store builds and the userscript are not feature-equivalent. Store updates may arrive at different times.

After installing the extension, refresh the webpage. The README's own three steps are: install the extension and refresh the webpage, open FluentRead and select a target language, then choose Translate page. The source language defaults to automatic detection and can be set manually. Selection translation and the other tools are enabled in settings as needed.

The project is built with WXT and pnpm. The README gives Node.js 20 or later and pnpm 9 as requirements, and the package.json engines field confirms `node >=20`. To run it from source:

```bash
pnpm install --frozen-lockfile
pnpm dev
```

The README lists `pnpm build` to build the Chrome extension, `pnpm compile` for type checking, and `pnpm docs:build` to build the website. Those scripts are wrapped in a resource-safe runner in package.json, so the build is gated by a script rather than calling the bundler directly. If you only want to use FluentRead, none of this matters: install from the store and pick a target language.

## The provider dependency is the real constraint

The settings surface lists free translation services, DeepL, AI providers and local Ollama models, alongside glossaries, translation styles, shortcuts and menu layout. That is a wide menu, and it hides a cost decision. The README states plainly that third-party pricing and availability depend on the provider. Nothing in the repository promises that the free services stay free, stay reachable from your network, or stay accurate on your content.

If you run Ollama locally you control the endpoint and the data path, but you also inherit the quality and speed of whatever model you have the hardware to run. If you point FluentRead at a hosted AI provider, page text, selected text and permitted paragraph context leave your machine. The README describes the reading card as connecting selected text and permitted paragraph context to model services, which tells you the scope of what is sent, but it does not document a redaction layer or a per-site blocklist for the model calls. Treat the permission as the boundary you actually have.

The other limitation is structural. FluentRead is a browser extension, so it sees what a browser page exposes. The README lists image and area translation, document translation for PDF, ePub and DOCX, and bilingual subtitles on YouTube and X. Anything outside those surfaces is out of scope. A command-line pipeline that translates a directory of files is a different tool, and FluentRead is not trying to be one.

## How FluentRead compares with KISS Translator and Read Frog

The README's acknowledgments name Read Frog, KISS Translator and Duo Translator, so the overlap is acknowledged rather than hidden. The meaningful difference is where each puts its weight. FluentRead's own description leads with the reading card: a DeepSeek Harness adaptation that keeps conversation events and message organization in the browser and ties them to selected text, paragraph context and local reading history. That is an assistant bolted onto a translator, with learning memories and follow-up questions as first-class features.

A translator that only renders bilingual pages will be lighter and easier to reason about. It has one job, one pipeline, and no session state to store or clear. FluentRead asks you to configure a model service before the feature it advertises most prominently does anything at all. Whether that trade is worth it depends on whether you want explanations and practice, or just the second language on screen.

The DeepSeek Harness adaptation is also a maintenance commitment. It is an adaptation of upstream components, not the upstream project itself, and the README points to an integration map for scope and upstream references. When those components move, someone has to redo the adaptation.

## Licence, releases and what upgrading costs

FluentRead is GPL-3.0. If you fork it, ship a modified build, or embed it in a product, the copyleft terms travel with the code, and the third-party notice for the DeepSeek Harness adaptation is a separate MIT file under public/third-party-notices. Those two licences are not the same and they cover different parts of the tree. This is a description of what the repository states, not legal advice; if you plan to redistribute a modified build, read the LICENSE file and the third-party notice yourself.

On maintenance: the repository is not archived, and the last push was on 2026-09-16. Releases v0.0.32, v0.0.33 and v0.0.34 landed on 2026-09-06 and 2026-09-13, while package.json already carries version 0.0.35, so the source tree runs ahead of the published releases. That cadence matters for upgrades because the extension is distributed through browser stores, and the README warns that store updates may arrive at different times. A Firefox user and a Chrome user can be on different builds of the same release.

The upgrade cost is mostly configuration drift. Glossaries, translation styles, shortcuts, menu layout and any provider credentials live in the extension's settings, and the README does not document a settings export or migration path. Assume you will re-enter them after a clean reinstall.

## Conclusion

FluentRead suits readers who want the original text kept on screen and who already pay for or self-host a translation service, since the AI reading card and most provider options require one. It is the wrong tool for anyone who wants a single offline binary or who refuses to send page text to a third party. Before adopting it, check the installation guide for whether your browser gets the full feature set or the reduced userscript, and confirm which translation service you will point it at, because the README states that third-party pricing and availability depend on the provider.

## FAQ

### Who is the best fluent translator?

FluentRead does not rank translators; it lets you choose one. The settings list free translation services, DeepL, AI providers and local Ollama models, and the README states that third-party pricing and availability depend on the provider.

### Is immersive translate free?

The README describes FluentRead's own free translation services as one option among several, and says third-party pricing and availability depend on the provider. It does not make a claim about any other product's pricing.

### What is a 100% accurate translator?

The repository does not claim full accuracy for any pipeline. It separates full-page, hover and selection translation from the reading card, and states that AI explanations require a configured AI service.

### Is immersive translate accurate?

The README does not evaluate accuracy for FluentRead or for other tools. It notes only that third-party pricing and availability depend on the provider, which leaves output quality to whichever service you configure.

## Sources

- [FluentRead/FluentRead on GitHub](https://github.com/FluentRead/FluentRead)
- [License: GPL-3.0](https://github.com/FluentRead/FluentRead/blob/main/LICENSE)
- [Project website](https://fluent.thinkstu.com)
- [README](https://github.com/FluentRead/FluentRead/blob/main/README.md)
- [Releases](https://github.com/FluentRead/FluentRead/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/fluentread-fluentread
