# Karabiner-Elements changelog > A powerful keyboard customizer for macOS. - Vendor: pqrs.org - Category: Productivity - Platforms: macOS - Official site: https://karabiner-elements.pqrs.org - Tracked by: What's New (https://whatsnew.fyi/product/karabiner-elements) - Harvested from: GitHub (pqrs-org/Karabiner-Elements) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### beta - Date: 2026-07-05 - Version: beta - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/beta - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/beta - Labels: Pre-release; beta; Platforms: macOS - **changed** — Integrated the Multitouch Extension menu into the Karabiner-Elements menu - **added** — Added filtering functionality to the Complex Modifications list - **fixed** — Fixed CGEventTap leaks - **fixed** — Fixed an issue where the core service agent could rarely abort during termination - **fixed** — Fixed an issue where modifications could stop working for several seconds after waking from sleep on macOS - **changed** — Karabiner-EventViewer and the Settings window are now closed after an upgrade - **added** — Added support for unbundled GUI apps in frontmost_application_if and frontmost_application_unless - 💥 Breaking changes - Integrated the Multitouch Extension menu into the Karabiner-Elements menu. Open the Multitouch Extension settings from the Karabiner-Elements menu. - ✨ New Features - Added filtering functionality to the Complex Modifications list. - 🐛 Bug Fixes - Fixed CGEventTap leaks (Thanks to @MrMage and @VitalyShein) - ⚡️ Improvements - Fixed an issue where the core service agent could rarely abort during termination. - Fixed an issue where modifications could stop working for several seconds after waking from sleep on macOS. - Karabiner-EventViewer and the Settings window are now closed after an upgrade. - Added support for unbundled GUI apps in `frontmost_application_if` and `frontmost_application_unless`. ### v16.1.0 - Date: 2026-07-05 - Version: v16.1.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v16.1.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v16.1.0 - Labels: Platforms: macOS - **added** — Add filtering functionality to the log viewer - **fixed** — Fix ac_zoom_in and ac_zoom_out key codes being swapped - **fixed** — Fix an issue where the settings window could open at login when the system default configuration used an old format - **changed** — Replace the IPC backend with pqrs::unix_domain_stream to improve internal communication between Karabiner-Elements processes - **changed** — Change update checks to run periodically, not only at startup - **added** — Support consumer_key_code::ac_keyboard_layout_select - **added** — Support consumer_key_code::ac_desktop_show_all_windows - **added** — Support consumer_key_code::ac_soft_key_left - **added** — Support consumer_key_code::ac_desktop_show_all_applications - **fixed** — Fix typo in ComplexModificationsView - **removed** — Remove the karabiner_session_monitor process - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v16.1.0/Karabiner-Elements-16.1.0.dmg) - 📅 Release date - Jul 5, 2026 - ✨ New Features - Added filtering functionality to the log viewer. - 🐛 Bug Fixes - Fixed the ac_zoom_in and ac_zoom_out key codes being swapped. - Fixed an issue where the settings window could open at login when the system default configuration used an old format. - ⚡️ Improvements - Improved internal communication between Karabiner-Elements processes by replacing the IPC backend with `pqrs::unix_domain_stream`. - Changed update checks to run periodically, not only at startup. - Supported the following keys: - consumer_key_code::ac_keyboard_layout_select (Thanks to @PedroSebastiao) - consumer_key_code::ac_desktop_show_all_windows (Thanks to @omor1) - consumer_key_code::ac_soft_key_left - consumer_key_code::ac_desktop_show_all_applications - Fix typo in ComplexModificationsView (Thanks to @kiangkuang) - The `karabiner_session_monitor` process has been removed. ### v16.0.0 - Date: 2026-05-03 - Version: v16.0.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v16.0.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v16.0.0 - Labels: Platforms: macOS - **added** — frontmost_application_if can now detect overlay windows such as Spotlight using the Accessibility API - **added** — variable_if now supports accessibility.focused_ui_element.role_string, accessibility.focused_ui_element.subrole_string, accessibility.focused_ui_element.title_string, accessibility.focused_ui_element.window_position_x, accessibility.focused_ui_element.window_position_y, accessibility.focused_ui_element.window_size_height, and accessibility.focused_ui_element.window_size_width - **added** — Generate JSON for Complex Modifications rules by writing JavaScript - **added** — Add your own rule using JavaScript button in the complex modifications viewer - **added** — Open in external editor button in the complex modifications editor - **added** — Clear user variables button in EventViewer - **added** — to.to_if_other_key_pressed for implementing conditional key presses based on other keys being pressed - **added** — to.send_user_command for executing actions via an external server built with Karabiner-Elements-user-command-receiver - **added** — to.from_event allowing pressed events to be passed through as-is - **added** — relative_to and fallback_to options for software_function.set_mouse_cursor_position - **added** — Enable CGEventTap fallback setting in Expert tab for receiving events via CGEventTap when IOHIDDeviceOpen fails - **added** — Setup tab in Settings - **fixed** — Fixed an issue where modifier keys could remain stuck when physical keyboard events were missed during capture - **fixed** — Fixed an issue where reordering in Complex Modifications and Profiles did not work properly when dragging while scrolling - **fixed** — Fixed an issue where variables in expressions were not properly initialized when unset - **changed** — Call exit instead of abort to suppress crash reports when a fatal error prevents CFRunLoop from running in background processes - **changed** — Request only Accessibility permission instead of both Accessibility and Input Monitoring permissions when Accessibility permission makes Input Monitoring permission unnecessary - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v16.0.0/Karabiner-Elements-16.0.0.dmg) - 📅 Release date - May 3, 2026 - 🔔 Important Notes - Karabiner-Core-Service now requires Accessibility permission. Please enable it in System Settings. - ✨ New Features - `frontmost_application_if` can now detect overlay windows, such as Spotlight, using the Accessibility API. - `variable_if` now supports the following variables, making it possible to change behavior depending on whether the focused element is a text area. - accessibility.focused_ui_element.role_string - accessibility.focused_ui_element.subrole_string - accessibility.focused_ui_element.title_string - accessibility.focused_ui_element.window_position_x - accessibility.focused_ui_element.window_position_y - accessibility.focused_ui_element.window_size_height - accessibility.focused_ui_element.window_size_width - You can now generate JSON for Complex Modifications rules by writing JavaScript. - Added an "Add your own rule using JavaScript" button to the complex modifications viewer. - Added an "Open in external editor" button to the complex modifications editor. - Added a "Clear user variables" button to EventViewer. (Thanks to @BarakXYZ) - Added [`to.to_if_other_key_pressed`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to-if-other-key-pressed/). It's now possible to implement "Change option+tab to command+tab" in a more natural way and reliable way. - Added [`to.send_user_command`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to/send-user-command/). By using it together with an external server built with Karabiner-Elements-user-command-receiver, you can execute any action from Karabiner-Elements with low latency. (Thanks to @nikivdev) - Added [`to.from_event`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to/from-event/), allowing pressed events to be passed through as-is. - Added `relative_to` and `fallback_to` to `software_function.set_mouse_cursor_position`. - Added `Enable CGEventTap fallback` setting to Expert tab. Enable receiving events via CGEventTap for keyboards where IOHIDDeviceOpen fails for some reason. - Added Setup tab to Settings. - 🐛 Bug Fixes - Fixed an issue where modifier keys could remain stuck when physical keyboard events were missed during capture. - Fixed an issue where reordering in Complex Modifications and Profiles didn't work properly when dragging while scrolling. - Fixed an issue where variables in expressions were not properly initialized when unset. - ⚡️ Improvements - Changed to call `exit` instead of `abort` to suppress crash reports when a fatal error prevents CFRunLoop from running in background processes. - If Accessibility permission makes Input Monitoring permission unnecessary, only Accessibility permission will be requested. ### v15.9.0 - Date: 2026-01-19 - Version: v15.9.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.9.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.9.0 - Labels: Platforms: macOS - **fixed** — Fixed an issue in v15.8.0 where the update notification window was not shown when updates were checked in the background - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.9.0/Karabiner-Elements-15.9.0.dmg) - 📅 Release date - Jan 19, 2026 - 🐛 Bug Fixes - Fixed an issue in v15.8.0 where the update notification window was not shown when updates were checked in the background. ### v15.8.0 - Date: 2026-01-18 - Version: v15.8.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.8.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.8.0 - Labels: Platforms: macOS - **changed** — Changed the default behavior of f6 to the Do Not Disturb key - **added** — Added open_application.frontmost_application_history_exclusion_bundle_identifiers and open_application.frontmost_application_history_exclusion_file_paths - **added** — Added --list-multitouch-extension-variables and --watch-multitouch-extension-variables options to karabiner_cli - **added** — Added macOS log messages viewer to Settings - **fixed** — Fixed an issue where the sticky modifier indicator could continue to be displayed even after being disabled in the settings - **fixed** — Fixed an issue where karabiner_machine_identifier was not set correctly during a clean install - **removed** — Removed the probable stuck key detector - **added** — Added an alert that appears if communication with Karabiner-VirtualHIDDevice-Daemon is not possible - **changed** — Improved the automatic recovery behavior from inter-process communication failures - **changed** — Improved open_application to exclude non-application bundles from frontmost_application_history_index - **changed** — Moved system extensions viewer to Settings from EventViewer - **changed** — Updated EventViewer to properly display modifier flags for pointing button events - **changed** — Improved MultitouchExtension to disable PreventUserIdleSystemSleep before the system goes to sleep - **added** — Added support for generic_desktop::do_not_disturb key - **changed** — Updated Sparkle Framework - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.8.0/Karabiner-Elements-15.8.0.dmg) - 📅 Release date - Jan 18, 2026 - 💥 Breaking changes - Changed the default behavior of `f6` to the `Do Not Disturb` key. - ✨ New Features - Added [`open_application.frontmost_application_history_exclusion_bundle_identifiers` and `open_application.frontmost_application_history_exclusion_file_paths`.](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to/software_function/open_application/) - Added the following options to karabiner_cli: - `--list-multitouch-extension-variables` - `--watch-multitouch-extension-variables` - Added macOS log messages viewer to Settings. - 🐛 Bug Fixes - Fixed an issue where the sticky modifier indicator could continue to be displayed even after being disabled in the settings. - Fixed an issue where karabiner_machine_identifier was not set correctly during a clean install. - ⚡️ Improvements - Removed the probable stuck key detector since we've confirmed that, on supported versions of macOS, seizing the device while keys are held down no longer causes any issues. - Added an alert that appears if communication with Karabiner-VirtualHIDDevice-Daemon is not possible. - Improved the automatic recovery behavior from inter-process communication failures. - Improved `open_application` to exclude non-application bundles from `frontmost_application_history_index`. - Move system extensions viewer to Settings from EventViewer. - Updated EventViewer to properly display modifier flags for pointing button events. - Improved MultitouchExtension to disable PreventUserIdleSystemSleep before the system goes to sleep. - Supported the following keys: - generic_desktop::do_not_disturb - Sparkle Framework has been updated. ### v15.7.0 - Date: 2025-11-10 - Version: v15.7.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.7.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.7.0 - Labels: Platforms: macOS - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.7.0/Karabiner-Elements-15.7.0.dmg) - 📅 Release date - Nov 10, 2025 - 🔔 Important Notes - After upgrading, make the following changes in System Settings: - Enable `Karabiner-Elements Privileged Daemons v2` under App Background Activity. - Enable `Karabiner-Core-Service` under Input Monitoring. - karabiner_grabber has been renamed to Karabiner-Core-Service. Full Disk Access isn't necessary if you're just using the standard setup. However, if you've manually moved the karabiner.json configuration file to another location, [you might need to grant Full Disk Access to Karabiner-Core-Service.](https://karabiner-elements.pqrs.org/docs/manual/misc/configuration-file-path/) - 💥 Breaking changes - The file `/Library/Application Support/org.pqrs/tmp/karabiner_grabber_devices.json` is no longer updated. You can still use EventViewer and karabiner_cli to check connected devices. - 🐛 Bug Fixes - Fixed an issue where modifiers in a pending-release state under Complex Modifications were not being released when all keys were lifted. - ⚡️ Improvements - Fixed an issue on macOS 26.1 where karabiner_grabber was missing from the Input Monitoring list in System Settings. Instead, Karabiner-Core-Service will now be shown. - The error message in the Complex Modification Editor is now copyable. ### v15.6.0 - Date: 2025-11-03 - Version: v15.6.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.6.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.6.0 - Labels: Platforms: macOS - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.6.0/Karabiner-Elements-15.6.0.dmg) - 📅 Release date - Nov 3, 2025 - 💥 Breaking changes - The file `/Library/Application Support/org.pqrs/tmp/karabiner_grabber_manipulator_environment.json` is no longer updated. You can still use EventViewer to check current variable values. - 🐛 Bug Fixes - Fixed an issue in EventViewer where new events were not added while the "Unknown Events" tab was open. - ✨ New Features - Added a "Temporarily turns off all Karabiner-Elements modifications" toggle to EventViewer. - Added a feature that lets you set environment variables via [`/Library/Application Support/org.pqrs/config/karabiner_environment`](https://karabiner-elements.pqrs.org/docs/help/advanced-topics/set-environment-variables/). - Added support for devices that expose the Programmable Buttons usage on the Consumer Usage Page. (e.g., VEC USB Footpedal) - Added [`set_variable.expression` and `set_variable.key_up_expression`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to/set-variable/#expression-specification). - Added [`expression_if` and `expression_unless`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/expression/). - Added `system.now.milliseconds` to variables. - Added [`integer_value`](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/from/integer-value/) to the from event definition. - ⚡️ Improvements - Updated the app icon for macOS 26. - Added support for Liquid Glass. - Reduced the load on karabiner_grabber. In particular, CPU usage is lower when handling high-frequency events (e.g., mouse input). - Improved handling of the `ignore_vendor_events` setting. The UI already prevented enabling this for Apple devices, and now, even if you manually set `ignore_vendor_events` in karabiner.json, vendor events for Apple devices will always be processed regardless of the setting. - Adjusted the layouts in Settings and EventViewer to show more information. - Supported the following keys: - generic_desktop::system_app_menu - consumer_key_code::microphone - consumer_key_code::selection - pointing_button::button33 ... pointing_button::button255 - Sparkle Framework has been updated. ### v15.5.0 - Date: 2025-07-29 - Version: v15.5.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.5.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.5.0 - Labels: Platforms: macOS - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.5.0/Karabiner-Elements-15.5.0.dmg) - 📅 Release date - Jul 29, 2025 - 🐛 Bug Fixes - Fixed an issue where the "Use all F1, F2, etc. keys as standard function keys" setting wasn't correctly detected in some environments. - Fixed an issue where some buttons were hard to see in Dark Mode. - ✨ New Features - Added `Show additional menu items` option in UI tab. - Added `macOS also remaps modifier keys` warning. - Added `karabiner.json couldn't be loaded due to a parse error` alert. - ⚡️ Improvements - Suppress forced icon updates (e.g., for Karabiner-Elements.app) during `karabiner_grabber` startup. ### v15.4.0 - Date: 2025-06-29 - Version: v15.4.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.4.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.4.0 - Labels: Platforms: macOS ##### Karabiner-Elements 15.4.0 - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.4.0/Karabiner-Elements-15.4.0.dmg) - 📅 Release date - Jun 29, 2025 - 🐛 Bug Fixes - Fixed an overflow issue with the mouse key movements. - Fixed an issue that the fn key is unintentionally tapped when use the media keys if "Use all F1, F2, etc. keys as standard function keys" is enabled. - ✨ New Features - Supported headset buttons. - Added `Ignore vendor events` option to device settings in Devices tab. - Added `XY movement multiplier` and `Wheels multiplier` to the mouse settings in Devices tab. - Added `frontmost_application_history_index` option into `open_application`. - Added `conditions` option into `to`. - Added `Filter useless events from specific devices` option in Expert tab. - Added `Reorder same timestamp input events to prioritize modifiers` in Expert tab. - Added a toggle to EventViewer for monitoring events. - ⚡️ Improvements - Migrated to the SwiftUI life cycle. - Migrated to Swift 6. - Improved `to_delayed_action` behavior to use the modifier flags of the time the key is pressed, when sending events. - Supported the following keys: - consumer::ac_zoom_out - consumer::ac_zoom_in - generic_desktop::system_sleep - Added support for new consumer keys (Thanks to @indygriffiths): - `{ "consumer_key_code": "stop" }` - `{ "consumer_key_code": "bass_boost" }` - `{ "consumer_key_code": "loudness" }` - `{ "consumer_key_code": "bass_increment" }` - `{ "consumer_key_code": "bass_decrement" }` - `{ "consumer_key_code": "ac_search" }` - The implicit conversion of Touch ID to the Lock key has been modified to work even when modifiers are held down. ### v15.3.0 - Date: 2024-10-28 - Version: v15.3.0 - Original notes: https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v15.3.0 - Permalink: https://whatsnew.fyi/product/karabiner-elements/releases/v15.3.0 - Labels: Platforms: macOS - [📦 Download](https://github.com/pqrs-org/Karabiner-Elements/releases/download/v15.3.0/Karabiner-Elements-15.3.0.dmg) - 📅 Release date - Oct 28, 2024 - 🐛 Bug Fixes - Fixed the behavior when setting the function keys to act as regular f1...f12 keys instead of media controls. - ✨ New Features - Added the following variables for `variable_if`, `variable_unless`: - `system.scroll_direction_is_natural` - `system.use_fkeys_as_standard_function_keys` - ⚡️ Improvements - The key names in the Function Keys settings became clearer when "Use all F1, F2, etc. keys as standard function keys" is enabled.