Keyboard-driven mouse control and key remapping for Windows and macOS, with hint grids, UI hints and configurable combos.
jtroo/kanata
A cross-platform keyboard remapper for Linux, macOS and Windows that adds layers, tap-hold, macros and Unicode output to any keyboard.
Open-source alternative to:Karabiner-Elements
- Stars
- 8,070
- Forks
- 309
- Open issues
- 138
- Last commit
- 6 days ago
What is it?
Kanata is a software keyboard remapper that runs on Linux, macOS and Windows. It lets you give any key alternate layers of function, the way Shift switches the keyboard to uppercase, so keys that overlap with the home row can be reached on another layer without changing hardware.
Behaviour is defined in a human-readable configuration file. It supports advanced key actions such as tap-hold, unicode output, and dynamic and static macros, along with Vim-like leader sequences. The configuration reloads live, so changes can be tested without restarting.
Kanata runs as a foreground process and needs elevated permissions on Linux and macOS to intercept the keyboard. An optional TCP server lets other programs react to layer changes or trigger them.
Key features
- 01Multiple layers of key functionality on any keyboard
- 02Tap-hold and other advanced key behaviour customization
- 03Unicode output, dynamic and static macros
- 04Vim-like leader sequences
- 05Live reloading of configuration files
- 06Optional TCP server for integration with other programs
Use cases
- Adding a navigation or numpad layer under home-row keys on a laptop keyboard
- Replicating QMK-style layouts on a standard office keyboard
- Switching layers automatically per application with community companion tools
- Building a personal keymap that is shared across Linux, macOS and Windows
Quick start
- 1
Install kanata with Cargo
cargo install kanata - 2
Run kanata with your configuration file (sudo may be needed on Linux and macOS)
kanata --cfg <your_configuration_file>
Things to know
- Kanata does not run as a background process, so its window must stay open.
- On Linux and macOS it usually needs sudo to intercept the keyboard, and macOS also requires the Karabiner driver.
- It is licensed under LGPL-3.0, a copyleft license.
In collections
Topics
FAQ
- What is kanata?
- A cross-platform keyboard remapper for Linux, macOS and Windows that adds layers, tap-hold, macros and Unicode output to any keyboard. Kanata is a software keyboard remapper that runs on Linux, macOS and Windows. It lets you give any key alternate layers of function, the way Shift switches the keyboard to uppercase, so keys that overlap with the home row can be reached on another layer without changing hardware.
- Is kanata free to use? What license does it have?
- kanata is open source under the LGPL-3.0 license. Check the license terms before using it in commercial products.
- Is kanata still maintained?
- Actively maintained. The last commit to kanata was on Nov 2, 2026.
- What can I use kanata for?
- Adding a navigation or numpad layer under home-row keys on a laptop keyboard Replicating QMK-style layouts on a standard office keyboard Switching layers automatically per application with community companion tools Building a personal keymap that is shared across Linux, macOS and Windows
- How do I install kanata?
- Install kanata with Cargo: cargo install kanata Run kanata with your configuration file (sudo may be needed on Linux and macOS): kanata --cfg <your_configuration_file>
- Where can I get kanata?
- The source code and installation instructions are on GitHub: https://github.com/jtroo/kanata
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A cross-platform text expander written in Rust that replaces typed keywords with snippets, emojis, dates, or script output.
A Linux tool for remapping keys, buttons, and mouse or joystick inputs to other inputs, with macros and X11/Wayland support.
A cross-platform pie menu for desktops that launches apps, simulates shortcuts and opens files via radial menus.
A Raycast-style launcher for the Omarchy Linux desktop that searches apps and Omarchy actions, learning what you use most.
An Android app that remaps buttons on phones, game controllers, keyboards and mouse, and builds custom macros and on-screen buttons.