Read Chinese on the web without leaving the page. Hover any word for Mandarin and Cantonese definitions, then review what you looked up with spaced repetition — so reading doubles as study.
Note: This project is an experiment in using Claude Code as an AI-assisted development environment.
Also:
- Read images and video: turn the Chinese in a picture or paused frame into hoverable text
- Spot unknown words: optionally underline what you haven't learned, with a page score like "82% known"
- Offline and private: no accounts or API calls; progress syncs across Chrome and exports to Anki or Pleco
Install from the Chrome Web Store.
To install a specific release instead, download its zip from Releases, unzip it, then load the dist/ folder with Load unpacked at chrome://extensions/ (with Developer mode on).
- Read: hover a word, or drag-select a phrase. Hold Shift to keep the popup while you move onto it. For images and paused video, click the badge in the corner.
- Track: press + Study to add a word to your deck, or Known to skip it. The extension icon opens your word list.
- Review: rate each flashcard Again, Hard, Good or Easy; FSRS schedules the next review.
- Adjust: the gear on the word list opens settings for scripts, readings, session size and unknown-word marks.
- Node.js >= 22 and pnpm >= 8 — or, with Nix and direnv, run
direnv allowin the repo for the pinned versions - Git, for the dictionary submodules
git clone --recurse-submodules https://github.com/VWongDev/canto-toolbox.git
cd canto-toolbox
pnpm install
pnpm buildIf you cloned without submodules, run git submodule update --init --recursive first.
pnpm build processes the dictionaries, downloads the OCR model (network access needed the first time) and writes the unpacked extension (~80 MB) to dist/. Load it as in Installation. pnpm clean removes the build output.
| Data | Source | Licence |
|---|---|---|
| Mandarin dictionary | CC-CEDICT, via edvardsr/cc-cedict | MIT |
| Cantonese dictionary | CC-Canto, via amadeusine/cc-canto-data — CC-Canto and CC-CEDICT Cantonese readings are copyright (c) 2015-16 Pleco Software Incorporated | CC BY-SA 3.0 |
| Character etymology | Make Me a Hanzi | LGPL-3.0 (COPYING) |
| Stroke order | Make Me a Hanzi graphics.txt, derived from the Arphic PL KaitiM GB and UKai fonts; drawn by hanzi-writer (MIT) |
Arphic Public License, packaged at strokes/ARPHICPL.TXT |
| Word frequency | SUBTLEX-CH — Cai, Q., & Brysbaert, M. (2010). PLoS ONE, 5(6), e10729, via chinese-lexicon | ISC |
| Image text recognition | PaddleOCR PP-OCRv6 tiny, via snowfluke/ppu-paddle-ocr-models; run by ppu-paddle-ocr and onnxruntime-web (both MIT) | Apache 2.0 |
The hover detection is inspired by Zhongwen, a Chinese-English popup dictionary extension, extended here to Mandarin and Cantonese.
This project is licensed under the MIT License.
Contributions are welcome — please open an issue or pull request.



