A free and open-source collection of native macOS menu bar tools
[中文] [English]
MacTools brings frequently used system actions together in a lightweight, fast, and unobtrusive menu bar app. Built with SwiftUI + AppKit for macOS 14.0 and later.
Screenshots

Features
| Feature | Description |
|---|---|
| Display Resolution | View connected displays and switch each display to an available resolution, with an adaptive list that remains usable near screen edges. |
| Sidecar | View connected and nearby Sidecar-compatible displays, use direct connect, switch, or disconnect actions, prioritize devices for a first-available shortcut, and keep per-display connection policies and shortcuts, including wired-only connections that request a wired transport rather than a Wi-Fi fallback. |
| Display Brightness | Quickly adjust built-in and DDC/CI external display brightness, with shortcuts that can follow the mouse or control all displays together, plus Gamma/Shade fallbacks. |
| True Tone | Automatically adapt display colors to ambient light on MacBooks and compatible displays. |
| Display Sleep | Put all displays to sleep immediately, then wake them with mouse movement or keyboard input. |
| Dark Mode | Toggle the system light and dark appearances, with live state sync when the system theme changes. |
| Night Shift | Toggle Night Shift to reduce blue light and warm the screen colors at night. |
| Prevent Sleep | Keep any Mac awake and choose whether the display may turn off, stays on, or remains active for screen-based tools. Screen tools also prevent automatic locking; manual locking still works. On a MacBook, closed-lid operation requires a power connection and creates an experimental built-in virtual display only while the lid is closed and no physical external display is active. Stop automatically after 30 minutes, 1 hour, 2 hours, or 5 hours, or use the state-aware toggle action from Action Grid, shortcuts, gestures, and other action surfaces. |
| Clean Mode | Show a full-screen black overlay and temporarily disable input for cleaning the screen, keyboard, or trackpad. |
| Mouse Enhancer | Adjust mouse and trackpad scrolling independently, with separate horizontal and vertical direction reversal. |
| Custom Shortcuts | Record keyboard keys, mouse clicks (including double-click and long-press), scroll directions, or precise trackpad gestures, then assign a shortcut, mouse navigation, or a common macOS system action. The menu-bar title names its keyboard, trackpad, and mouse input sources. Unsafe mappings require confirmation and can always be disabled with Control-Option-Command-Escape. |
| Middle Click | Turn a three-, four-, or five-finger trackpad tap into a middle-button click, control it through one state-aware action in search, shortcuts, workflows, and Action Grid, and recover the listener after wake, display changes, or trackpad reconnection. If Trackpad Gestures owns the same tap, Middle Click pauses and explains the conflict instead of firing twice. |
| Trackpad Gestures | Map only the gestures you choose—including repeatable TipTap while its fixed fingers stay down, three- to five-finger taps, double taps and long touches, plus two- and three-finger physical clicks—through one unified action picker for MacTools actions, workflows, keyboard shortcuts, and middle clicks. Built-in and external Magic Trackpads share the same mappings across USB, Bluetooth, reconnects, and wake while keeping recognition state isolated per device. A categorized gesture chooser explains each motion and its macOS conflicts, while searchable, sortable, and filterable mapping rows keep every gesture and assigned action easy to manage. Click-producing gestures consume their matching native click, typing protection prevents palm-triggered gestures, and the accessible settings include a built-in TipTap guide, unique gesture mappings, shortcut-reuse guidance, and a no-action test mode. One MacTools process owns the device listener at a time so temporary development or test hosts cannot interrupt the stable app. Existing Mouse Enhancer middle-click settings migrate automatically. |
| Hide Notch | Mask the top notch area on built-in notch displays without modifying the original wallpaper. |
| Auto Hide Menu Bar | Automatically hide the menu bar to make more screen space available. |
| Auto Hide Dock | Automatically hide the Dock for a cleaner desktop. |
| Dock Lock | Prevent the Dock from moving between displays accidentally. |
| Stage Manager | Toggle Stage Manager to focus the current window and place other windows on the side. |
| System Mute | Mute or restore system audio output through CoreAudio on the default output device, with automatic restoration when the plugin is disabled. |
| Microphone Mute | Mute or restore the default microphone input through CoreAudio without requesting recording permission. |
| App Volume | On macOS 15 and later, adjust the volume of each app currently playing audio and keep preferences locally per app; first use requires System Audio Recording permission. |
| Disk Cleanup | Scan system caches, developer artifacts (node_modules, build outputs), and leftover installers; move to Trash by default, with path safety checks, Full Disk Access guidance, and sensitive-data protection before deletion. |
| Xcode Cleanup | Scan DerivedData, device support files, archives, simulators, and preview caches by category; deletion is disabled while Xcode is running and only runs inside allowlisted roots. |
| Eject Disks | Detect visible ejectable mounts when the panel opens, including external drives, disk images, and network volumes; multiple volumes on one device are ejected once. |
| Empty Trash | Show the number of Trash items and empty Trash through Finder; the action is disabled when Trash is empty. |
| Clear Clipboard | Clear the current clipboard content to protect privacy and avoid accidental paste. |
| IP Check | Refresh local and public IPv4 addresses when its Feature Panel or settings page opens, double-click either address to copy it, and inspect domestic/international egress, location, ISP, ASN, and macOS network quality details. |
| Translator | Translate the currently selected text with a global shortcut; the first version supports OpenAI-compatible services, automatic language selection, and a source editor whose actions stay clear of multi-line text. |
| Window Switcher | Replace or customize the window-switching shortcut with direct cycling or a fixed key-selection window for running windows; click a key hint to record a stable letter, digit, or Command-key binding. |
| App Shortcuts | Bind global shortcuts to common apps; pressing a shortcut opens or activates the app, and hides it if it is already frontmost. |
| Actions & Shortcuts | Discover published MacTools and plugin actions in Unified Search or a lazy-loading central settings page, grouped under each provider's icon with one shortcut to its settings, run them through one guarded executor, and assign conflict-checked ordinary global shortcuts from either surface. Every available Run Link uses the same disclosure; parameterized actions create their required preset immediately before the first expansion, then expose copy controls for the link and terminal command. Canonical actions cover Sidecar, Window Switcher, display and appearance controls, app/input/audio controls, timed Keep Awake sessions, IP address copying, battery and fan controls, clipboard, disks and Trash, app repair and quitting, guarded Homebrew maintenance, favorite user Launch Items, and physical clean mode. Adaptive toggle actions report current state and the next operation for supported binary controls while explicit On/Off actions remain deterministic for workflows and Run Links. Disk and Xcode cleanup actions only scan and open review; machine-specific, interactive, and destructive actions retain their normal availability, foreground, and confirmation safeguards. Saved Run Links survive relaunch and preferences backup restore. |
| Automation | Build and reorder reusable named workflows in a stable, resizable list with one continuous sidebar surface and readable multi-line summaries beside the editor, whose header keeps the workflow title with its Enable and Run controls while placing the description below. Use a searchable action picker to add or replace steps, preview ordered steps and safety requirements before a manual run, stop active work, see activity in Settings and the menu bar, copy detailed per-step diagnostics, and attach schedule, calendar, app, power, display, or network rules with explicit conditions. Advanced step settings stay collapsed until needed, automatic actions require provider opt-in, overlapping runs are bounded, and trigger services run only while an enabled rule needs them. Definitions and rules are included in preferences backups. |
| Action Grid | Arrange favorite actions, workflows, and nested folders in exact slots of editable 3×3 grids, with one add sheet for actions or folders, drag and drop, in-place settings, keyboard and number-key navigation, multi-display placement, VoiceOver support, and live active-state presentation for actions that publish it. |
| Saved Scripts | Keep AppleScript, zsh, Bash, and POSIX shell scripts in a searchable library with direct Run/Stop controls, a slider or numeric timeout editor, captured output, and running/recent-completion Feature Panel indicators, or run the first scripts without configuring Automation or Action Grid. Every script also becomes a stable MacTools action for optional shortcuts, gestures, grids, workflows, and Run Links; a per-script switch controls whether other MacTools features ask before running it. Scripts use explicit interpreters, bounded timeouts and output, no implicit sudo, and opt-in source backup. |
| Run Links | Copy stable mactools://app/actions/... links for eligible actions and workflows to use from launchers, Apple Shortcuts, scripts, or documents with normal safety checks. Parameter presets remain an internal compatibility detail instead of a second user-facing link type. |
| Auto Input | Remember and restore input sources per app, assign fixed sources, and optionally show the current source beside the focused text field. |
| Launchpad | Summon an app grid in fullscreen or a compact window, with instant search, horizontal paging, keyboard navigation, drag-to-stack folders with inline rename (click an open folder's title, or right-click a folder to rename/dissolve), an adjustable glass background (clear/standard/deep presets or a custom material + dimming, with a live preview in settings), adjustable appearance (icon size 48–96 pt with rows/columns adapting, optional icons-only mode that hides app names, label appearance presets (color: automatic/light/dark/accent, weight, and a size tier that scales with the icon — shared by app names and the open-folder title), and a compact-window size slider — the compact panel now scales with the screen instead of capping at 960×680, so any display whose usable area exceeds ~1333×829 pt renders a larger panel than before, including modern built-in laptop screens (~13% on a 14″ MacBook Pro); all previewed live by a layout thumbnail in settings that mirrors the real grid math), a global shortcut, and IME-composition safety. |
| Finder Right Click | Add Finder context menu actions: new folder, new file (.txt / .md / .json), open in Terminal, open with a configurable app list, copy selected item names, and copy absolute / relative / shell-escaped paths / file:// URLs for selected items or the current folder when clicking the background — each item toggleable in Settings. |
| Lock Screen | Lock the screen immediately, equivalent to Cmd+Ctrl+Q. |
| Launch Items | Browse LaunchAgent/LaunchDaemon entries with search, field explanations, and user-level enable/disable controls. |
| Calendar Widget | View a monthly calendar, lunar calendar data, holidays, and today's events, with any weekday as the start of the week and compact localized navigation controls. |
| System Status | Show 1-hour charts for CPU, GPU, memory, disk, network, battery, and high-usage processes. |
| Activity Stats | Track keyboard, mouse, scroll, and foreground app usage, with install/update and uninstall actions for Claude Code, Cursor, and Codex activity hooks. |
| Device Battery | Aggregate battery levels for the Mac, trusted iPhone/iPad/Apple Watch devices over USB or Wi-Fi, Bluetooth peripherals, AirPods/Beats split batteries and charging state, and Rapoo VT series mice, with multiple widget layouts and optional low-battery notifications. Background sampling pauses when the widget is hidden unless notifications are enabled. |
| Fan Control | Manage fan speed presets with automatic, full-speed, and custom fixed-RPM modes; installs the bundled helper on first control and verifies privileged SMC writes before reporting success. |
| Battery Charge Limit | Limit battery charging to a chosen cap, defaulting to 80%; charging stops at the cap and does not automatically resume below it unless the user chooses to continue or force discharge. |
| Fix Damaged Apps | Remove quarantine attributes to resolve "damaged and can't be opened" prompts by selecting a .app in a file panel and running the fix with administrator privileges. |
| Quit Apps | Select and quit running apps, or quit all at once; multiple instances of the same app are grouped into one stable entry, reverse selection helps quickly choose the target set, and the selection panel closes when focus moves elsewhere. |
| zsh Config | View and edit zsh configuration files such as .zshrc and .zshenv inside the app, with syntax highlighting, common snippets, and automatic backup before saving. |
| Plugins & Settings | Press ⌘K from a MacTools surface, use the Settings sidebar search launcher, or assign the optional Open Command Palette global shortcut to open unified app navigation, settings, plugin pages, and explicitly supported commands; the global shortcut opens a standalone keyboard-first palette from any app and remains unassigned by default. Relaunching MacTools opens Settings in the running instance, even when its menu-bar icon is unavailable. Commands can explicitly choose System, Dark, or Light appearance, enable or disable Launch at Login, and show or hide any installed plugin on each supported Dashboard or Feature Panel surface; only actions that change the current state are offered. Use ↑/↓ to select a result, Tab/Shift-Tab to reach its inline controls, Return to run or open, Command-Return to open an action’s exact owning editor, or the physical ⌘1–⌘9 number-row shortcuts for the first nine visible results; VoiceOver announcements and deep links take you directly to the chosen setting or plugin row. Switch between feature and component panels from the centered menu-bar toolbar or with ⌘1/⌘2, dismiss a menu-bar panel with Esc, and open or focus Settings from an active MacTools surface with ⌘,. Jump among General, Plugins, and About in Settings with ⌘1/⌘2/⌘3, move between visible Plugins subpages with ⌃⌘↑/⌃⌘↓, and press ⌘F to focus contextual search in the Marketplace, including installed plugins. Settings uses one native resizable sidebar for General, About, built-in management pages, and plugin settings; mouse scrolling and focused ↑/↓ navigation follow the active selection, and detail pages rely on the toolbar title instead of repeating a large page heading. Compact descriptions and page actions scroll with their content while host-rendered macOS grouped forms retain semantic backgrounds, shared permission and shortcut rows, compact menus, and clean stepped sliders. Complex managers keep the same host page shell. The Settings window keeps a consistent width across pages and a usable minimum size, and its Back/Forward toolbar controls (⌘[/⌘]) restore the exact Plugins subpage. Install, update, batch-update, and uninstall plugins in the Marketplace; filter by category or search and sort by installation state or localized name. Dashboard and Feature Panel independently control which supported plugins appear there and their order. Use a row’s icon to open settings, its eye control to show or hide it, and its contextual menu to reorder it, open its Marketplace entry, or uninstall it without leaving the layout. Manage permissions, plugin-specific settings, and global shortcuts—including standalone F1–F12 keys with conflict warnings—and selectively export or import app preferences, plugin layout and visibility, shortcut customizations, workflows, automation rules, saved Run Links, and supported plugin settings. |
| Menu Bar Icon Customization | Use local images or lightweight GIF/MP4 animations as the menu bar icon, choose static or animated icons from the online gallery with clear animation badges, preserve original colors and transparency on local import, automatically adapt monochrome gallery icons to the menu bar appearance, restore the default icon, and preview every source with the same standard icon height and content inset as the default. |
| Localization | Follow the system language by default, or choose a fixed app language in Settings > General > Appearance; the picker shows each language in the system language and its native spelling, while menu-bar action buttons and the Actions, Run Links, Automation, and Action Grid surfaces adapt their copy, accessibility labels, and layout to the selected language. |
Shortcut settings: Plugin and app shortcut rows keep the action icon/name beside the recorder field, wrapping groups between rows without splitting an individual shortcut control.
Menu-bar panels: Dashboard cards and their nested controls use shared semantic surfaces and text levels in Light, Dark, and Increased Contrast appearances, without decorative borders or shadows. The surrounding popover and its attachment arrow use one opaque semantic background so wallpaper colors do not reduce contrast. Settings includes independent Light and Dark themes, ten built-in palettes, System Default, live previews, and imports from
.itermcolors(including.txt) or Base16/Base24 YAML/JSON files; themes preserve layout, typography, calendar event colors, and brand colors.Preferences backup: Export and import both let you select app preferences, plugin layout, shortcuts, automation, saved Run Links, and each plugin’s portable settings independently, with dependency notes beside every category. Workflow IDs and direct workflow Run Links are preserved; importing an individual workflow preserves its ID on a new Mac and creates a new ID only when that ID already exists. Automation rules bound to a display identifier from the current Mac are omitted with an export warning. Saved Scripts source is excluded unless each script explicitly opts in, and working directories are never included. Permissions, caches, credentials, and other non-portable data are excluded. Missing plugins are never installed automatically: the preview lets you explicitly select catalog-verified plugins to install, while unavailable or unselected plugins and their settings are skipped.
Right-click action: You can use Option + left-click on the MacTools icon to trigger the right-click action.
Deep links and Run Links: Open MacTools surfaces or invoke explicitly eligible actions and workflows through the guarded
mactools://app/...URL API.
Supported Languages
MacTools supports Simplified Chinese, Traditional Chinese, English, Spanish, French, Russian, Portuguese, German, Japanese, Korean, and Arabic.
Install
brew install --cask mactools
Upgrade
brew update
brew upgrade --cask --greedy mactools
MacTools quietly checks for app updates once per day. When an update is available, the menu-bar panel shows an Update button beside Settings; selecting it opens About and starts the standard Sparkle update flow.
The in-app update dialog separates App Updates from Plugin Updates and includes plugin releases published since the previous app version.
If Homebrew still reports that the cask is already up to date, check the locally resolved cask version first:
brew info --cask mactools
Contributing
See CONTRIBUTING.md for development setup, testing, plugin development, and release workflows.
License
MacTools is open source under the Apache License 2.0.
Privacy
MacTools is local-first and includes no maintainer-operated analytics or advertising. See the bilingual Privacy Policy for details about local data, permissions, and network-dependent features.
Acknowledgements
- Third-party assets, dependencies, and implementation references are listed in Sources/Resources/ThirdPartyNotices.
- Contributors