chordgen
Turn any keyboard into a chording-enabled device — and learn the chords with built-in spaced repetition.
We type letter by letter, which is slow and error-prone. Stenographers type 300+ wpm by chording (pressing several keys at once for a whole word) but the learning curve is brutal. chordgen splits the difference: it picks an optimal chord for each word in your vocabulary, generates firmware files for your keyboard, and trains you on the chords with a spaced-repetition TUI.
It supports standard keyboards and directional ones such as Harite, CharaChorder, and Svalboard.
Highlights
- Optimised per layout. Chord scoring takes your specific keyboard geometry into account.
- Inflection-aware. Each base word's chord automatically covers
its plural / past-tense /
-ingform via alt-slot modifiers. - Spaced-repetition learning.
chordgen learngraduates chords using FSRS so you only review what you're about to forget. - Real-text drilling.
chordgen drillis a speed test for words you've already learned, andchordgen booklets you practise on arbitrary prose. - Firmware export. Writes ready-to-flash files for QMK, ZMK, Kanata, and CharaChorder, plus a training file for typing tutors.
Quickstart
pip install chordgen
chordgen setup # downloads SUBTLEX-US, writes ~/.config/chordgen/
chordgen gen # picks an optimal chord per word and fills in alts
chordgen output # writes firmware files + training.txt
chordgen learn # interactive spaced-repetition TUI
chordgen drill # speed-drill TUI for chords you've already learned
chordgen book # practise on long-form prose
Edit ~/.config/chordgen/chords.csv (remove words you don't want,
pin chords by hand, etc.) and re-run gen whenever you want to
refresh.
Documentation
Full docs live at https://dlip.github.io/chordgen/ — including
the chording approach,
the chords.csv reference,
output formats,
the config schema, and the
development guide.
Metadata
Release files for chordgen 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chordgen-2.4.0.tar.gz | 87.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chordgen-2.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.9 kB
Release files / chordgen-2.4.0.tar.gz
| Download URL | chordgen-2.4.0.tar.gz |
|---|---|
| Size | 87.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ccd3308a1bb4cc0feb7ca0bf08ef75ad971c7d3e32b87fc820b673272985f4a0
|
|
BLAKE2b-256 checksum How to use checksums |
8ff8a3095ee205d5046701d127932f8e44428595ce65c0faac9c4b0fcade41ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / chordgen-2.4.0-py3-none-any.whl
| Download URL | chordgen-2.4.0-py3-none-any.whl |
|---|---|
| Size | 102.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6eb51d7ce0a4e3c299e4582c7b3dd6f5db5ebae36c77705a016376c232af22fe
|
|
BLAKE2b-256 checksum How to use checksums |
a2a60832102f15c888dd15b30e5c9ff45d62c9bb7f151e21d268612cf4f66647
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|