open source · MIT · github.com/wylansford

Learn Chinese, one terminal at a time.

Every new shell greets you with a single vocabulary card — ~80 ms, before your prompt blinks. Answer with one keystroke and FSRS spaced repetition decides when you'll meet the word again.

$ brew install wylansford/tap/terminal-chinese

macOS & Linux · no brew? use the install script ↓

terminal-chinese

this demo is real — press k if you know it, d if you don't, p for pinyin

Three keys is the whole interface.

k

know itsee it again in months

g

not suresee it again tomorrow

d

don't knowsee it again in minutes

Installed before your tea steeps.

Install — the script sets up your shell hook too

curl -fsSL https://raw.githubusercontent.com/wylansford/terminal-chinese/main/install.sh | bash

Prefer Homebrew? brew install wylansford/tap/terminal-chinese, then add one line to ~/.zshrc yourself: eval "$(terminal-chinese init zsh)"

Open a terminal — that's it

You'll be offered the HSK 1 starter pack (127 words). Packs for HSK 2–6 ship in the repo, or generate your own with ct add. Silence it any time with TERMINAL_CHINESE_DISABLE=1.

Small tool, sharp edges.

Fast enough to be invisible

One process, ~80 ms to first paint. It never makes you wait for your own prompt.

FSRS scheduling

Modern spaced repetition via py-fsrs — reviews land exactly when you're about to forget.

HSK 1–6 included

Curated packs in the repo; the starter deck imports itself on first run.

AI additions

ct add hello generates a full card — pinyin, mnemonic, etymology, examples — via the Claude API.

An honest reveal

Answer first, then get everything: meaning, measure word, related words, translated sentences.

Progress you can read

ct stats and ct graph — state bars, streaks and sparklines, zero-filled so they never lie.