BetterTouchTool Developer Documentation
website·Indexed 38 days ago
https://docs.folivora.aiTechnical documentation for extending BetterTouchTool, featuring guides on creating plugins via BTTPluginInterface, BTTActionPluginInterface, and BTTStreamDeckPluginInterface. Includes specifications for JSON trigger and floating menu configurations, WebView integration for running AppleScripts and Shell Scripts, and support for Stream Deck hardware and the MacBook Pro Touch Bar.
What's inside BetterTouchTool
- BetterTouchTool (BTT) AI Assistants allow users to build custom Mac assistants for chat, BTT configuration, automation, research, coding, and computer use. BTT does not provide the AI model service; users must choose their own provider or local model. Requests are sent directly from the Mac to the provider, ensuring that assistant chat data is not routed through BetterTouchTool servers.
Overview of BetterTouchTool mouse customization
BetterTouchTool allows users to extend the functionality of a standard mouse by assigning custom actions to mouse buttons, implementing mouse gestures, and configuring specific behaviors for short and long clicks. Additionally, it provides capabilities to activate smooth scrolling and simulate macOS trackpad gestures using a mouse.Overview of BetterTouchTool Plugin Types
BetterTouchTool supports six native plugin types to extend functionality, as well as a no-code JSON option for action sequences. Native plugins allow for custom widgets, actions, and system event monitoring.Overview of the BetterTouchTool Launcher
The Launcher is a Spotlight-style command window built into BetterTouchTool that provides centralized access to apps, files, BTT triggers, clipboard history, calendar events, reminders, speech dictation, and AI chat. It supports multiple parallel instances, each with its own pinned items, window position, and query memory.
System Requirements:
- macOS 13 or newer
- BetterTouchTool 6.440 or newer
Overview of BetterTouchTool Plugin Types
BetterTouchTool supports six primary native plugin types to extend functionality, as well as a no-code JSON option for action sequences.Overview of BetterTouchTool AI Assistants
BetterTouchTool (BTT) AI Assistants allow users to build custom Mac assistants for chat, BTT configuration, automation, research, coding, and computer use. BTT does not provide the AI model service; users must choose their own provider or local model. Requests are sent directly from the Mac to the provider, ensuring that assistant chat data is not routed through BetterTouchTool servers.Overview of Menu Bar Status Item management in BetterTouchTool
Starting with BetterTouchTool 4.615, users can manage macOS menu bar status items using four primary features: the 'Move Menu Bar Status Item To New Position' action, the 'Hide Menu Bar Icons Left Of Specific Icon' action, a 'Menubar Status Item' Widget for Floating Menus, and the 'Search Menu Bar Status Items' action.Overview of BetterTouchTool Floating Menus
Floating menus (widgets) in BetterTouchTool are customizable, keyboard-navigable UI elements built with SwiftUI (macOS 13+). They can be fixed to the desktop, float on top of other windows, or behave like standard windows. They support dynamic positioning based on windows, screen positions, or the mouse cursor, and can be configured to resize on hover.Overview of BetterTouchTool Launcher
The Launcher is a Spotlight-style command window built into BetterTouchTool that provides centralized access to apps, files, BTT triggers, clipboard history, calendars, reminders, speech dictation, and AI chat. It supports multiple parallel instances, each with its own pinned items, window position, and query memory.
System Requirements:
- macOS 13 or newer
- BetterTouchTool 6.440 or newer
Overview of BetterTouchTool scripting interfaces
BetterTouchTool provides a generic scripting interface that can be accessed through multiple languages and protocols depending on the use case. As of version 3.333, JavaScript is the recommended method. Other supported interfaces include AppleScript, Swift (introduced in BTT 6.755 for native macOS API access), the custombtt://URL scheme, an integrated webserver, OSC (Open Sound Control), and an official npm package for Node.js/TypeScript.Overview of BetterTouchTool Floating Menus
Floating Menus (and widgets) in BetterTouchTool are SwiftUI-based customizable overlays that can be triggered by gestures or events. They support dynamic positioning (attached to windows, screen positions, or mouse cursors), resizing on hover, and various window behaviors (fixed to desktop, float on top, or standard window behavior). They are keyboard navigable and support scripting.Use Standard Items in Floating Menus
Standard items render text and icons or images. They are scriptable and support file-drop functionality; files dropped onto a standard item can be accessed by reading the item's value via scripting.