Where Is the Karabiner-Elements Config File?
Karabiner-Elements keeps its whole setup in one JSON file. The exact macOS path and the symlink rule for moving it.
Last updated
Karabiner-Elements stores its full configuration in ~/.config/karabiner/karabiner.json. Profiles, simple modifications, complex rules, and device settings all live in that one file. The app rewrites it every time you change something in Settings.
You can move it elsewhere with a symlink, but link the containing folder. Karabiner-Elements fails to notice edits when karabiner.json itself is the symlink. The official docs call this out directly, and the fix is to point ~/.config/karabiner at the real directory.
Where Karabiner-Elements stores this, by platform
~/.config/karabiner/karabiner.json
This is the only live config location. Complex rule files you import get merged into this file. After relocating it with a symlink, run the launchctl kickstart command from the docs to restart the console user server.
Frequently asked questions
how do i back up my karabiner rules
Edit ~/.config/karabiner/karabiner.json directly, then check the Karabiner-Elements log viewer if a rule does not work. A single bad comma can stop the whole file from loading, so validate the JSON first.
can i symlink karabiner.json to dotfiles
Link the ~/.config/karabiner directory itself, not the file. Karabiner-Elements watches the directory for changes and misses updates when karabiner.json alone is a symlink. Restart the console user server after moving it.
Notice an outdated path? Let us know.