New Drawer Widget — A drop target where you can collect and organize files. Supports grid, list, and horizontal layouts, an optional toolbar, configurable max file size, and automatic cleanup of old items.
New positioning mode: "Fixed Initial Position, Then Free Move" — Menus start at a configured position but can be freely dragged afterwards. The dragged position is remembered across restarts.
New "Disable Drag" option — Prevents a floating menu from being dragged, available in the right-click context menu.
Horizontal and vertical alignment options — Control how items are aligned within a floating menu layout (Left/Center/Right, Top/Center/Bottom). Available for horizontal, vertical, fill-row, and fill-column layout modes.
Cleaner preset exports — Floating menu JSON exports are now more compact, making presets smaller and easier to read.
WebView user agent now matches installed Safari version instead of a hardcoded older version.
Fixed custom HTML content failing to load external resources due to cross-origin restrictions.
Fixed items showing a yellow border on hover when no hover border color was configured.
Fixed floating webview URLs failing to load when the path did not reference a valid preset.
Fixed "click highlighted item and hide" closing the menu even when no item was hovered.
Continue work on AI Assistant / h@llo.ai (still beta!)
"Ask AI" button in preferences — a built-in configuration assistant that can create triggers, shortcuts, automations, and floating menus via natural language, with a setup wizard for first-time configuration
AI can now read the currently selected trigger, create standalone widget apps from floating menus, and compile Swift plugin widgets during a conversation
Redesigned context panel with tabs for Skills, Resolved config, full Prompt view, and LSP
Live "Thinking..." indicator and collapsible reasoning sections for extended thinking models
Skill cards show clickable example prompts
Added OpenRouter as a suggested API endpoint
Various UI/theme improvements for chat bubbles, code blocks, and tool call results
New Triggers
Audio Output/Input Device Changed — react when your default audio device switches (e.g., speakers to headphones), with optional regex filtering by device name
New Actions
Change/Set Audio Output & Input Device — switch devices by name
Toggle Mute Microphone and Set Audio Input Volume
Play Sound File
Floating Menu Drawer Widget
Slot Grid layout — fixed grid where items occupy specific cells, drag to rearrange
Remove items by dragging them out or pressing Backspace
Text snippets now open in your default text editor; added "Open With" context menu
Multiple file safety improvements — files outside the drawer's storage can no longer be accidentally deleted
Cmd+Delete no longer trashes the previewed file; safer drag-out behavior
Font size, text color, and grid columns now properly read from configuration
Fixed keyboard shortcuts (spacebar/Quick Look) only responding when the drawer is focused
Fixed internal drag-and-drop incorrectly triggering the external drop handler
Floating Menus
New window level: "Above Menu Bar"
Smooth Scrolling
Added option to only simulate trackpad scrolling for horizontal scrolls
Keyboard Shortcuts
Fixed left/right-specific modifier keys not matching correctly in some configurations
Added warning about "Key Down Only" keeping keys pressed until explicitly released
Action descriptions now show "(Only Key Down)" / "(Only Key Up)" labels
JSON Import/Export
Exported triggers now group actions by category with named keys, making JSON more readable
Fixed several import issues (parent relationships, app name resolution)
Scripting
New InputVolume built-in variable for reading/setting microphone volume
Fixed crash when passing null to the add-new-trigger scripting command
Other
Fixed a potential startup freeze related to USB Overdrive compatibility check
Preferences trigger list auto-refreshes after importing triggers via AI or scripting
Long Touch gestures (1–5 fingers) for trackpad and Magic Mouse — triggers after holding fingers stationary for a
configurable duration
Circle gestures (clockwise/counter-clockwise) for trackpad and Magic Mouse — draw circles with one finger to
trigger actions, with configurable circle count and shape tolerance
AI Assistant
Added Codex CLI and OpenCode CLI as AI backend options (no API key needed)
New Safari Automation skill for browser control and web scraping
Custom prompt blocks — define reusable text blocks, insert with {BLOCK:name} placeholders
AI config changes now take effect immediately without restarting the chat
Improved accuracy when creating/modifying triggers and actions
Added GPT-5.4 as default model
Smooth Scrolling
Replaced multiple advanced settings with a single Smoothness slider (0–1)
Fixed rubber banding, swipe navigation, and momentum interruption issues in Safari
Fixed sluggish response when reversing scroll direction
Floating Menus
New "Steal Keyboard Focus On Hover" option for menus with text input
All Swipe Gestures in BTT now have a separate action trigger category "Quick Flick". This allows to have different actions for slow swipes and for quick swipes.
Updated some UI parts:
Updated modern live touch view — a redesigned touch visualization window that shows real-time finger tracking with smooth trails, force indicators, and gesture logging. See exactly which gestures are being recognized and what actions they trigger as you use your trackpad or Magic Mouse.
New usage statistics window — track how often you use your triggers and actions across all device categories (trackpad, keyboard shortcuts, Stream Deck, floating menus, and more)
Daily trend chart — see your usage patterns over time with an interactive per-category chart
Most used triggers — quickly see which triggers and actions you rely on most
New Actions
Auto Scroll (Toggle) — a new predefined action that starts continuous auto-scrolling with a visual overlay showing scroll direction and speed. Move your cursor to control the scroll direction and intensity; click or press ESC to stop.
Smooth Scrolling
Horizontal-only trackpad simulation — new option to restrict trackpad scroll phase simulation to horizontal scrolls only, leaving vertical scrolling unaffected
AI Assistant
Model browser — browse and select from available AI models across major providers (OpenAI, Anthropic, Google, Mistral, DeepSeek, and more) directly within the AI setup, with live pricing and context window info
Hide Ask AI button — easily hide the Ask AI toolbar button from the setup wizard if you don't want it
Improved OpenCode CLI integration — better support for OpenCode's serve mode with HTTP/SSE streaming
MCP server improvements — enhanced Model Context Protocol server with support for both Streamable HTTP and SSE transports
Localization
Added and improved translations for Chinese, French, German, Japanese, Korean, and Spanish
Other
Gesture animations in preferences have been refactored for a more consistent look across all gesture types
New: Import Snippets from Files — You can now import text snippets and typed string triggers from external files. An "Import Snippets" button is now available in the Key Sequences section. Supported formats:
CSV — Simple trigger;replacement format
JSON — Array of snippet objects with trigger, content, and type
Espanso YAML — Import your existing Espanso snippet configurations, including support for variables (date, clipboard, shell commands, random choices, forms), case propagation, cursor positioning, and HTML output
AutoHotkey (.ahk) — Import hotstring definitions from AutoHotkey scripts, including multi-line replacements and continuation sections
The file picker auto-detects the format, and you can import multiple files at once
Mouse / Trackpad
Fixed an issue where mouse button long-press actions could incorrectly trigger when performing button-drag gestures
BetterTouchTool 6.275 (2026031706)
Key Sequences
Fixed key sequences with a "minimum hold time" requirement not triggering reliably when using modifier-only sequences (e.g. holding a modifier key for a set duration). Previously, these could fail to fire.
Window Management / Spaces
Fixed space switch without animation actions not working correctly when the macOS "Displays Have Separate Spaces" option is turned off in System Settings. BTT now correctly identifies spaces in both single-space and multi-display configurations.
BetterTouchTool 6.274 (2026031705)
Trackpad
Added new two-finger edge swipe gestures: you can now use two-finger swipes along the left, right, top, and bottom edges of your trackpad (up/down on side edges, left/right on top/bottom edges) as continuous triggers
Clipboard Manager
Fixed an issue where rapidly toggling the left or right sidebar could cause visual glitches or unexpected behavior
Configuration UI
When expanding a trigger group in the extra column navigation mode, the first item is now automatically selected and its configuration is shown, instead of displaying stale settings from a previously selected item
Switching trigger categories in extra column mode now properly collapses the navigation column to avoid layout issues
BetterTouchTool 6.273 (2026031704)
AI / OpenCode Integration
The OpenCode CLI integration now dynamically fetches the list of available models from your local OpenCode installation instead of showing a hardcoded list
Model selection now uses the correct provider/model format (e.g. openai/gpt-5.2) and passes the chosen model to OpenCode when sending requests
Updated default OpenCode model to Big Pickle (free tier)
BetterTouchTool 6.271 (2026031702)
Floating Menus
Added a search/filter field to the floating menu configuration panel — quickly find any setting by typing keywords instead of scrolling through categories
Expanding and collapsing configuration sections is now instant with no delay
Scroll position is now preserved when expanding or collapsing configuration sections
AI Chat
Improved vertical alignment of the text input field — placeholder text and typed text are now properly centered when on a single line
Sidebar
App names in the sidebar now wrap to two lines instead of being cut off, making longer names easier to read
Plugins
Fixed an issue where recompiling a previously approved Swift plugin at launch could trigger unnecessary file watcher events
BetterTouchTool 6.270
Floating Menus
Fixed drag and drop from the Drawer widget no longer showing a misleading "2 items" badge when dragging a single item
Fixed a crash that could occur when importing floating menu items with missing configuration data
Added new configuration options for positioning items within sub-menus (nested floating menus)
Hidden irrelevant positioning and visibility settings when configuring nested floating menu items, making the settings panel cleaner
Improved layout of dropdown menus in the configuration panel — labels now appear above the dropdown instead of beside it, giving more space for long option names
Templates
Added new "Drawer Widget" template — quick access to files, text snippets, and other draggable/copyable items from a screen corner
Added new "Circular App Switcher" template — a radial app switcher triggered by a three-finger trackpad swipe
Added new "Notch Menu" template — a menu that appears when hovering over the MacBook notch area
Bug Fixes
Fixed an issue where triggers in the trash could still be matched and executed under certain conditions
In the current alphas (e.g. 6.295) I have added a plugin manager that shows all loaded plugins. You can now also ask the BTT AI configuration assistant to create new action plugins and new trigger plugins. For example "Create a trigger plugin that recognizes when finder has been the active app for more than 2 seconds" or "Create a new action plugin that compresses the selected file in finder". All of these only work if the Xcode command line tools are installed.
Trigger plugins are listed in the "Automations, Named & Other Triggers" section in BTT. Action plugins are automatically listed in the action selector.
Example with an AI-generated trigger and action plugin:
You can now drag and drop conditions and groups to reorder them or move them between groups
Drag handles appear next to each condition row and group header for easy rearranging
Drop indicators show exactly where an item will be placed
Improved the visual alignment of the group connector lines
Improved reliability of the live "Currently True / Currently False" evaluation indicator
Variables View
Significantly improved performance of the built-in variables list — expensive system queries (mouse position, trackpad state, accessibility lookups, Dock item detection) are now only performed when the relevant variables are actually visible on screen
Only visible variable values are refreshed, reducing CPU usage when scrolling through large variable lists
Context Menu
The "Transform Plugin to Individual Actions" option is now always visible in the right-click menu (previously it was only shown for JSON plugin actions)
BetterTouchTool 6.303 (2026032404)
AI & Automation
Fixed a race condition where rapidly switching between documents could cause the AI assistant to miss detecting the current project context
Updated the default plugin identifier format for user-created Swift plugins to use com.bttuserplugin.swift.* instead of com.btt.swift.*, making it clearer which plugins are user-created vs. built-in
BetterTouchTool 6.302 (2026032403)
Icon Picker
The icon picker in the rule editor now opens a full icon picker popover when clicked, making it much easier to browse and select icons
Updated the hint text to "Click, paste or drag" to reflect the new click-to-browse functionality
Conditional Activation Groups
You can now create new Conditional Activation Groups from scratch without needing an existing app entry first
Actions
Added new "Transform Plugin to Individual Actions" option in the main menu
BetterTouchTool 6.301 (2026032402)
JSON Action Plugins
Added support for a new JSON Action Plugin system — simple JSON files that define reusable actions with configurable form fields, no compiled code required
Added a "Transform Plugin to Individual Actions" option in the right-click context menu, allowing you to expand a JSON plugin action into its individual component actions with all form values applied
Conditions
Added new condition variables for detecting which app is being hovered over in the Dock: hovered app name, hovered app path, and hovered app bundle identifier
AI Assistant
The built-in AI assistant now knows about JSON Action Plugins and can help you create and configure them
BetterTouchTool 6.300 (2026032401)
JSON Action Plugins
Added a new JSON Action Plugin system — create reusable action plugins using simple JSON files (.bttjsonplugin) without writing any compiled code
JSON plugins support configurable form fields (text fields, sliders, checkboxes, dropdowns, color pickers, etc.) with placeholder values that get substituted at runtime
Right-click any action(s) and choose "Export Selected Action(s) as JSON Action Plugin..." to package them into a shareable plugin file
JSON plugins appear alongside compiled plugins in the action selector under "Custom Plugin Actions"
Plugins are automatically detected and hot-reloaded when added to or removed from the Plugins folder
Double-clicking a .bttjsonplugin file will install it into BetterTouchTool
Hovered Dock Item Variables
Added three new variables for the currently hovered Dock item: app name, app path, and bundle identifier
These variables are available in the Variables Viewer, conditional activation rules, and the rule editor
Can be used in trigger conditions to create actions that respond to which app you're hovering over in the Dock
AI / Automation
The "Activate Hovered App in Dock" AI tool now correctly activates the app
Window Switcher
Improved window positioning so the switcher properly stays within screen bounds after content loads
Plugin Manager
Added support for browsing and managing JSON Action Plugins in the Plugin Manager
Added an optional plugin notarization feature for developers (sign, notarize, and staple plugins directly from the Plugin Manager)
BetterTouchTool 6.299 (2026032313)
Clipboard Manager
Hover previews in the clipboard manager now appear faster, making browsing through clipboard entries feel more responsive
BetterTouchTool 6.298 (2026032312)
Clipboard Manager
Added a new "Show preview on hover" option (experimental) — hover over clipboard entries to see a quick preview without clicking
New setting available in Clipboard Manager settings
Keyboard Shortcuts
Fixed an issue where modifier keys (e.g. left-CMD vs right-CMD) could lose their left/right distinction after executing a shortcut while holding a modifier key
Improved modifier key state restoration to prevent held modifiers from being incorrectly released after shortcut execution
Logitech Device Support
Fixed an issue where choosing to divert no specific keys on a Logitech device would not properly undivert all keys
The "Save" button in the Logitech key recorder is no longer disabled when no keys are recorded, allowing you to clear your key configuration
BetterTouchTool 6.297 (2026032310)
Floating Menus
Fixed maximum width handling for floating menus — menus now correctly respect the configured maximum width in all sizing modes, including content-sized and min/max layouts
Improved floating menu item wrapping behavior so items properly wrap to the next row when a maximum width is set
Configuration UI
Fixed an issue where certain configuration options (like SF Symbol settings) could incorrectly appear or disappear depending on unrelated tab selections
BetterTouchTool 6.296 (2026032309)
Keyboard Shortcuts
Fixed an issue where modifier keys (Shift, Command, Option, Control) could sometimes not be detected correctly after other apps posted synthetic keyboard events, which could cause keyboard shortcuts to stop working until the modifier key was pressed again
Fixed modifier key restoration when using left/right-specific modifier keys (e.g., Left Command vs Right Command) in shortcut sequences — previously, holding a modifier during a shortcut action could fail to be recognized afterward
BetterTouchTool 6.295 (2026032308)
AI Chat & Plugins
Improved AI response handling for CLI-based providers: When using Claude Code, Codex CLI, or OpenCode CLI as AI providers, BetterTouchTool now correctly retrieves a final text summary after the AI finishes executing tools, preventing cases where the chat would end without a visible response.
Better plugin compilation feedback: After compiling a Swift plugin, the AI now provides more specific guidance on where to find and use the plugin based on its type (action plugin, trigger plugin, Stream Deck widget, Touch Bar widget, or floating menu widget).
AI now knows your file system paths: The AI chat assistant automatically has access to your home directory and plugins folder path, making it easier to help with plugin compilation and file-related tasks without needing to ask.
Configuration UI
Fixed dropdown menus in plugin configuration forms: Dropdown/popup menus in the configuration panel now correctly handle plain text and dictionary-based options provided by Swift plugins, preventing potential crashes or empty menus.
BetterTouchTool 6.291 (2026032304)
Conditional Activation Rules
Improved the labels for mouse position condition fields in the rule editor to be clearer and more descriptive (e.g., "Mouse Dist X From Active Win Top Left" instead of the previous abbreviated labels)
BetterTouchTool 6.290 (2026032303)
Trigger Plugins
Added support for Trigger Plugins — custom plugins that can observe system events and fire BetterTouchTool triggers when conditions are met. Find them under Other Triggers > Trigger Plugins in the trigger selector.
Rule Editor
Fixed a crash that could occur when parsing certain condition rules with unexpected expression types
Fixed incorrect handling of true/false values in condition rules
Improved spacing and layout of the rule editor interface
AI Integration
Updated the AI assistant's knowledge to include the new Trigger Plugin system
BetterTouchTool 6.288 (2026032301)
Trigger Plugins
Added a new Trigger Plugin system — you can now create custom triggers that monitor system events and fire BetterTouchTool actions when conditions are met. Trigger plugins appear under Other Triggers > Trigger Plugins in the trigger selector.
Trigger plugins support custom configuration options, so plugin authors can expose user-facing settings directly in the BTT UI.
The AI assistant can now create and edit trigger plugins alongside existing plugin types (action plugins, floating menu widgets, Stream Deck plugins, and Touch Bar plugins).
Plugin Manager
Added a built-in source code editor for Swift plugins — click the pencil icon on any plugin with a .swift source file to view and edit its code directly in BTT.
You can now save, revert, and recompile plugins from the editor without leaving the Plugin Manager.
Added an "Ask AI To Modify Plugin" button in the editor to get AI assistance with changing existing plugin code.
The "Ask AI" button in the Plugin Manager now opens a dedicated Plugin Creator AI chat with the appropriate skills pre-loaded.
AI Assistant
New Plugin Creator skill — a specialized AI mode for building all five plugin types with guided assistance.
New Plugin Editor skill — a specialized AI mode for modifying existing plugins, with the source code automatically provided as context.
Fixed an issue where the AI spotlight window would dismiss when opening a file picker or save dialog in compact mode.
Fixed an issue in the AI setup wizard where selecting a model from the model browser could be overwritten by default settings.
Condition / Rule Editor
Fixed a crash that could occur when evaluating trigger conditions or activation group rules that reference undefined variables.
BetterTouchTool 6.287 (2026032001)
Condition & Rule Editor
New modern rule editor for trigger conditions and activation groups on macOS 13+ — provides a cleaner, more intuitive interface for building complex conditions
Added a predicate text editor toggle for advanced users who prefer editing conditions as text
The previous editor is still used on macOS 12 and earlier
Plugin Manager
Added a new Plugin Manager window, accessible from the toolbar and the View menu
Browse, filter, and manage all installed plugins (floating menu widgets, actions, Stream Deck, Touch Bar) in one place
Load new plugins or open the Plugins folder directly from the manager
AI Assistant
The AI assistant now has dedicated reference documentation for all four plugin types: Floating Menu Widgets, Actions, Stream Deck, and Touch Bar
Improved guidance when creating Swift plugins — the assistant will automatically retrieve the correct reference for the plugin type you're building
Magic Mouse
Magic Mouse single-finger tap click delay and double-tap threshold are now configurable via the hidden preferences BTTMMTapClickDelay and BTTMMDoubleTapThreshold (useful for users who find taps registering too quickly or too slowly)
I needed a better way to control my Apple TV's from macOS so this version adds an Apple TV Remote Control action and an action to trigger specific TV remote control actions (media buttons, launching apps, etc.) via any BTT Trigger.
Redesigned setup wizard with three clear paths: Cloud API, Local Model, or CLI Tool. Built-in support for LM Studio, Ollama, Jan, LocalAI, Apple Foundation Models, plus Claude Code CLI presets (Sonnet 4.5, Opus 4.6, Haiku 4.5). Includes a Fetch Models button, Test Connection, and no API key requirement for local servers.
MCP server lets external clients (Claude Code, Codex) use your configured BTT assistants — with one-click Codex plugin installer, a configurable port, and per-client sessions.
Skills system: skills can be Active, Optional, or Off. The AI can request optional skills mid-conversation via inline Allow/Decline cards. Skills are organized into searchable, categorized groups.
Assistants now support multiple model configurations and theme color presets (8 colors).
CLI backends (Claude/Codex/OpenCode) can now act as fallback models, and starting a new chat properly resets server-side conversation state.
New Triggers
Accelerometer triggers (Apple Silicon MacBooks) — axis thresholds, shake detection, and chassis tap/knock/hard-hit detection with adjustable sensitivity (1–100) and multi-tap counts. Includes a live sensor view.
Power Mode Changed trigger — fires when macOS energy mode switches between Automatic, Low Power, and High Power. Sets a power_mode variable.
Allow Parallel Execution option — run all matching duplicate triggers at once instead of showing the conflict menu.
Key Sequences
New Key Sequence Visualizer — a live debug window showing all active sequences as you type, with match quality sorting and explanations for why a sequence was ruled out.
The recorder no longer auto-enters recording mode when editing an existing sequence.
Drawing & Mouse Gestures
Direction-aware line gesture recognition — straight-line gestures are now matched by their actual drawn direction, dramatically improving accuracy for multi-direction line setups.
Smoother stroke rendering with curve interpolation and improved performance for long strokes.
New Actions
Quit Specific Application — quit any app by name, with optional Force Quit.
Send Keyboard Shortcut gained two options: include currently held modifiers and send at the lowest possible system level (helps with apps that ignore standard simulated events).
Send Shortcut to Specific App can now target the active/frontmost app or the app under the cursor.
Find Text on Screen now stores last_find_text_on_screen_result and last_find_text_on_screen_success variables, supports continuing on no-match, and lists all detected text when nothing matches.
Scrolling
New Disable / Reduce Scroll Acceleration modifier for linear 1:1 scrolling on mice, trackpads, and Magic Mouse.
Per-axis filtering for scroll modifiers (horizontal-only or vertical-only).
Multiple smooth-scrolling fixes: reverse-direction glitch, fast-scroll stutter, momentum/ease-out behavior, and false button+scroll triggers on momentum mice.
Apple TV Remote
Fully inline configuration of Apple TV actions (device, button, media command, app) without opening the full configurator.
Auto-connects to paired devices when the remote opens, with a Pair button and faster repeated commands via connection reuse.
Conditions & Variables
New condition variables: Audio Output Device, Audio Input Device, Keyboard Input Source, Connected Screen Count, Is Charging, and currently_active_modifier_keys (distinguishes left/right side).
Drag-and-drop reordering of conditions and groups in the rule editor.
New "Keyboard" category in the rule editor.
Significantly faster built-in variables list (expensive lookups only run for visible rows).
"Show Running Processes" button replaces the raw text dump.
Floating Menus
Content-fit menus no longer briefly appear at the wrong size before snapping into place.
Fixed item sizing in row/column layouts so minimum height is respected.
Other
New .bttjsonplugin format for distributing plugins as simple JSON files.
AI Model Browser now lists models from many more providers, with an API Type column.
Stream Deck preset import fixes for fixed row/column buttons.
Logitech receiver re-detection fix after sleep/reconnect.
Caps Lock Hyper Key no longer gets stuck after wake.