Useless007/zig-typist
Bilingual Zig TUI for Thai/English typing drills with stats logging and history review.
Experimental bilingual typing trainer built with Zig.
PATH
.Build the default targets:
zig build
Run the interactive trainer:
zig build run
You can pass scripted commands when running in non-interactive shells (CI, automated smoke tests):
zig build run -- "lang th" "list" "quit"
The trainer remembers your last language selection by storing en
or th
in the config directory.
Execute tests:
zig build test
Assets live under assets/lessons/
and use metadata headers described in assets/lessons/README.md
.
list
— show lessons for the active languagelang en|th
— switch catalogs (persisted across runs)start <slug|number>
— begin an interactive lesson attempthistory [lang]
— render session history (optionally filtered by language)reset history
— truncate stats after confirmationhelp
— print command usagequit
/exit
— close the trainerEach completed session appends a JSON Lines entry to the user config directory ($XDG_DATA_HOME/zig-typist/history.jsonl
by default). History resets and lesson completions emit structured logs via Zig’s standard logger for traceability.