Clackety Keyboards Powered by Python
Alternatives To Kmk_firmware
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
What Happens When36,710
5 days ago712
An attempt to answer the age old interview question "What happens when you type into your browser and press enter?"
How Web Works13,390
3 months ago6
What happens behind the scenes when we type in a browser?
a month ago167C
Keyboard firmwares for Atmel AVR and Cortex-M
Mechanical Keyboard2,246
11 days ago
DIY mechanical keyboard and where to find them
6 years ago6gpl-2.0Arduino
USBdriveby exploits the trust of USB devices by emulating an HID keyboard and mouse, installing a cross-platform firewall-evading backdoor, and rerouting DNS within seconds of plugging it in.
2 days ago46mitC
Do-It-All Mechanical Macropad
a day ago75otherPython
Clackety Keyboards Powered by Python
Keyberon78012 months ago4July 16, 202220mitRust
A rust crate to create a pure rust keyboard firmware.
2 years ago19other
65% keyboard assembled with only through hole components, including usb type-c
Android Keyboard Gadget652
3 years ago60apache-2.0C
Convert your Android device into USB keyboard/mouse, control your PC from your Android device remotely, including BIOS/bootloader.
Alternatives To Kmk_firmware
Select To Compare

Alternative Project Comparisons

KMK: Clackety Keyboards Powered by Python

GitHub GitHub contributors Lines of code GitHub issues GitHub closed issues

KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in CircuitPython.


For asynchronous support and chatter about KMK, join our Zulip community!

If you ask for help in chat or open a bug report, if possible make sure your copy of KMK is up-to-date. In particular, swing by the Zulip chat before opening a GitHub Issue about configuration, documentation, etc. concerns.

The former Matrix and Discord rooms once linked to in this README are no longer officially supported, please do not use them!


Getting Started

KMK requires CircuitPython version 7.0 or higher. Our getting started guide can be found here.

Code Style

KMK uses Black with a Python 3.11 target and, (controversially?) single quotes. Further code styling is enforced with isort and flake8 with several plugins. make fix-isort fix-formatting before a commit is a good idea, and CI will fail if inbound code does not adhere to these formatting rules. Some exceptions are found in setup.cfg loosening the rules in isolated cases, notably user_keymaps (which is also not subject to Black formatting for reasons documented in pyproject.toml).


Unit tests within the tests folder mock various CircuitPython modules to allow them to be executed in a desktop development environment.

Execute tests using the command python -m unittest.

License, Copyright, and Legal

All software in this repository is licensed under the GNU Public License, version 3. All documentation and hardware designs are licensed under the Creative Commons Attribution-ShareAlike 4.0 license. Contributions to this repository must use these licenses unless otherwise agreed to by the Core team.

Due to ethical and legal concerns, any works derived from GitHub Copilot or similar artificial intelligence tooling are unacceptable for inclusion in any first-party KMK repository or other code collection. We further recommend not using GitHub Copilot while developing anything KMK-related, regardless of intent to submit upstream.

Popular Keyboard Projects
Popular Usb Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.