Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

An unofficial Chrome extension that translates web pages locally with an on-device PLaMo model, with no accounts, ads or telemetry.

194
22
TypeScript
MIT
6 days old

What it does

Sakutto is an unofficial Chrome extension that translates web pages on the device. It runs the PLaMo 3 Translate 0.8B model through a pinned wllama build, so each translated line comes from PLaMo; while the model is still loading, a page shows its original text instead of a draft from another engine. Chrome's built-in Translator API is used only for language pairs PLaMo does not cover PLaMo model wllama.

It is aimed at readers who want page and selection translation without sending text to a remote translation server. The extension is free and open source under MIT, with no ads or paid features; model weights are not shipped in the repository or extension package.

The popup and options page also offer a Translate typed text view with source and result boxes, a Copy button, and the same target-language setting as page translation. That view always uses PLaMo only, and unsupported languages are refused rather than handed to Chrome.

Quick start

Install from the Chrome Web Store listing, or build locally:

  1. Install Node.js 24 and pnpm 12.
  2. Clone the repository and run pnpm install.
  3. Build the wllama runtime once with Docker (pnpm build:wllama, pinned commit d275dac inside the emscripten/emsdk:4.0.20 container), then run pnpm verify:wllama.
  4. Run pnpm build, which writes the production extension to .output/chrome-mv3.
  5. Open chrome://extensions, enable Developer mode, choose Load unpacked, and select .output/chrome-mv3.

After loading, use the toolbar popup, right-click menu or shortcuts: Alt+A / Option+A to translate or restore the page, Alt+B / Option+B to switch replaced and bilingual text, Alt+S / Option+S to translate a selection, and Ctrl+Enter / ⌘+Enter for typed text. Shortcuts are rebound in chrome://extensions/shortcuts build steps.

Languages and coverage

PLaMo supports 53 languages in either direction; the source language is detected from the page and the default target is the browser UI language, falling back to English. Eleven further languages (cs, da, el, fi, kn, no, pt, ro, sv, tr, uk) rely solely on Chrome's built-in translator. Languages PLaMo supports but Chrome does not stay untranslated until the model is ready. The interface itself is localized into 14 languages.

Privacy and permissions

Translation runs locally. Page text, selections, the glossary and translations are not sent to the developer or any translation server, and the extension has no account, ads or telemetry; its own network request is the model download from Hugging Face. Read the privacy policy.

Requested permissions are storage, unlimitedStorage, offscreen, activeTab, scripting and contextMenus. Optional host permissions for https://*/* and http://*/* are only requested when automatic translation is enabled for a site, not at install time.

Build and testing

pnpm build and pnpm zip refuse to run until the wllama build is verified; pnpm zip also checks the runtime and license texts are packaged and that model weights, source maps and install-time host permissions are excluded. pnpm dev, pnpm lint, pnpm typecheck, pnpm test and pnpm test:e2e cover development and local testing; the e2e package includes a test translator that is not in release builds. pnpm bench loads the built extension in headless Chromium and translates four fixed local pages with the real 0.8B model, caching the model after a SHA-256 check, while pnpm bench:mock and pnpm bench:live use eight fixtures and append results to a history file.

Licensing constraints

The project code is MIT, but the PLaMo Community License covers the model: personal and academic use needs no registration, while commercial use requires prior registration with PFN and is limited to income or sales of no more than 1 billion yen in the most recent fiscal year for the user or affiliates; otherwise a separate commercial license is needed. The repository's MIT license does not cover the model weights.

HotRepo's take

HotRepo recorded 106 stars and 13 forks on 2026-11-09, when the TypeScript new-project list showed 5 stars and 1 fork gained in the reported window. The only star curve available spans about half an hour that day, from 101 to 106 stars, so it supports the observation that the repository was gaining stars then, not a trend judgment. No HN discussion was matched. The README's concrete build, permission, testing and licensing detail is the useful signal for evaluating the project, particularly the split between MIT code and the separately licensed model.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. tanakh/plamo-translate-desktopOffline desktop translation app running PLaMo 3 Translate locally, with 53-language support and Chrome/Edge page translation.Rust103
  2. muran169633/contextflow-translateChrome/Edge extension that renders bilingual translations of webpages through free, paid, or user-supplied AI translation providers.JavaScript112
  3. jiuyang5354/bilibili-marginA browser extension that restyles Bilibili's home, search, video and reading pages while keeping the native player and danmaku.TypeScript113
  4. FluentRead/FluentReadAn open-source browser extension that translates webpages bilingually and adds AI reading, image, document and subtitle tools.TypeScript9,733
  5. mmdoctor/google-pro-helperChrome extension plus Windows console that automates Google AI Pro free-trial stacking on Google accounts.Python102