Repository navigation
Releases
v1.5.3
Fix background exact-window input, verify accepted text writes without duplicate retries, and bound desktop capture. Based on cua-driver. Validated release build and native Slack delivery; 139 regression tests passed before the final narrow accepted-AXValue fix, followed by 26 affected tests. macOS arm64 binary included.
v1.5.2
v1.5.1 — foreground input works; agent cursor always visible
- Foreground delivery no longer fails with 'foreground activation or AXRaise failed' (SwiftUI windows such as Calculator reject AXRaise); it now requires the target app frontmost and the exact window focused.
- Background pixel clicks/double clicks press the hit-tested AX control; background Cmd chords press their menu item.
- The first mutation waits out the activity-monitor warm-up instead of returning activity_monitor_unavailable.
- list_windows no longer lists off-screen untitled helper surfaces as minimized windows.
- The agent cursor overlay appears for every pointer action, with or without a session.
- Chrome extension 1.4.1: trusted clicks and keystrokes reach background tabs and fail loudly when dropped; browser_snapshot waits for loading; stale refs report a clear error. Reload the unpacked extension after updating.
v1.5.0
cua-driver parity (inspired by trycua/cua libs/cua-driver), Jev-first.
- Apps and desktop: list_apps, launch_app (background), kill_app, bring_to_front, get_accessibility_tree, get_desktop_state, get_screen_size, set_window_frame, clipboard_read/clipboard_write, check_permissions, health_report, get_config/set_config.
- Input: click, double_click, drag, type_text, press_key, hotkey, move_cursor, get_cursor_position, invoke_menu, verify_state. Background by default;
delivery_mode:"foreground"fronts the window and restores the previous app. Mutations refuse withhuman_activitywhile you are using the target. - verify_state
expect.criteria: natural-language checks answered by Jev over filtered labels (no screenshots, values or secrets); without a Jev key the filtered evidence is returned for the agent. - jev_decide
browser: true: Jev picks the next click in the owned Chrome tab. - Sessions, agent cursor overlay (click-through, never moves your pointer), trajectory recording (typed text redacted) and replay.
- Chrome extension 1.4.0: browser_navigate, browser_click, browser_type, browser_pointer, browser_dialog, browser_set_input_files, browser_download, page. Uses
chrome.debuggeronly during an action (Chrome shows its debugging bar meanwhile); newdebuggeranddownloadspermissions — reload the extension.
v1.4.3 — screenshots fail fast instead of hanging
- The whole screenshot capture (ScreenCaptureKit plus Quartz fallback) has a 12s deadline; a wedged capture service can no longer freeze the call or hold the per-app lock.
- After a capture timeout, screenshots fail immediately with
screen_capture_stalled_retry_laterfor 30s instead of waiting the full deadline every time. - ScreenCaptureKit timeouts and missing shareable content fall back to Quartz window capture.
- Includes v1.4.2: on-screen-only window lookup (~2x faster screenshots).
If screenshots keep timing out after reinstalling, macOS Screen Recording permission for the binary path is stale: remove and re-add mac-use-mcp in System Settings > Privacy & Security > Screen & System Audio Recording.
v1.4.2 — screenshots no longer hang
- Screenshot capture is bounded: ScreenCaptureKit lookup times out after 5s and image capture after 10s, so a wedged capture service can no longer hold the per-app lock and freeze later mac-use calls.
- Faster screenshots: the window lookup lists only on-screen windows (about 2x faster end-to-end in local tests: ~0.3s vs ~0.65s per screenshot).
v1.4.1
v1.4.0
New features:
- run_subtask: Jev observe-decide-act loop with risk contract, allowed_risks and secret_inputs (secrets redacted).
- set_value and menu_shortcut tools; element_id (ax_) on click_element and set_value.
- get_ui_tree OCR perception (ocr: auto|always|never).
- UI settling (settle_ms/settled) after native actions.
- AX-only tools work on minimized windows; allowed_risks guards on popup items and menu shortcuts.
Behavior change: browser_act now returns a fresh snapshot; refs from the previous snapshot are stale.
Thanks to shhivv/arc-cua (https://github.com/shhivv/arc-cua) for the inspiration.
v1.3.0 — Chrome extension stays connected
The Chrome extension now stays connected on its own.
- It connects when Chrome starts the extension, retries every 30 seconds through a
chrome.alarmskeep-alive, and reconnects about 1 second after a long-lived connection drops. - Clicking the icon no longer turns it OFF; when it is disconnected, a click retries at once.
- The extension now requests the
alarmspermission (version 1.3.0). Reload the unpacked extension inchrome://extensionsafter updating. - README (English, Spanish, Portuguese) updated. The MCP server binary has no code changes since v1.2.0.
Assets: the mac-use skill folder, the Chrome extension folder (zip), and a release build of mac-use-mcp for Apple silicon (unsigned). SHA256SUMS lists checksums.
Validation: Chrome extension tests (13) passed with a mocked Chrome API, including reconnect after a drop and click-while-connected.
mac-use v1.2.0
mac-use Chrome tabs now live in their own tab group, out of your way.
- Tabs opened by
browser_openare placed in a collapsed, grey "mac-use" tab group in that window. Later sessions reuse the same group; its collapsed state is left as you set it. - Moving a tab out of the group, or selecting it, gives control back to you (
human_activity). - Grouping is best-effort: if Chrome refuses it,
browser_openstill works. - The extension now requests the
tabGroupspermission (version 1.2.0). Reload the unpacked extension inchrome://extensionsafter updating. - Skill and README (English, Spanish, Portuguese) updated.
Assets: the mac-use skill folder, the Chrome extension folder (zip), and a release build of mac-use-mcp for Apple silicon (unsigned). SHA256SUMS lists checksums.
Validation: Chrome extension tests (12) passed, including group creation, reuse, ungroup takeover and grouping failure. Not yet exercised in a live Chrome window at release time.