KMK: Clackety Keyboards Powered by Python

MK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in CircuitPython. KMK is currently in public beta, however should handle almost all workflows without major issues.

You can always find the latest releases on our CDN, in compiled and optimized and raw, hackable text file forms. These follow the master branch here on GitHub.

If you need support with KMK or just want to say hi, find us in on Matrix. This channel is bridged to Discord here for convenience.

If you ask for help on chat or open a bug report, if possible please give us your commit SHA, found by running from kmk.consts import KMK_RELEASE; print(KMK_RELEASE) in the REPL on your controller.


  • Fully configured through a single, easy to understand Python file that lives on a "flash-drive"-esque space on your microcontroller - edit on the go without DFU or other devtooling available!

  • Single-piece or two-piece split keyboards are supported

  • Chainable keys such as KC.LWIN(KC.L) to lock the screen on a Windows PC

  • Built-in unicode macros, including emojis

  • Multiple vim-inspired leader key modes

  • RGB underglow and LED backlights

  • One key can turn into many more based on how many times you tap it

Coming (hopefully) soon: Bluetooth support! Stay tuned.