That is what survives a layout shift, and it is why a click does not need a screenshot or an LLM call in the loop. Browser work goes through the DevTools Protocol in the background, so Chrome does not need focus — which also means you can keep using your machine while it works.
A desktop automation MCP server for macOS and Windows. It drives native applications through the accessibility API, and Chrome through the DevTools Protocol in the background.
- 111 tools across desktop control, browser automation and fallback execution
- Native UI: ui_tree, ui_find, ui_press, ui_set_value, menu_click, click, type_text, key, drag, scroll
- Seeing the screen when you need to: screenshot, screenshot_file, ocr, click_text
- App handling: apps, windows, focus, launch, and applescript on macOS
- Browser over CDP without stealing focus: browser_tabs, browser_open, browser_navigate, browser_js, browser_dom, browser_click, browser_type, browser_wait, browser_page_info
- Human-like input and anti-detection: browser_fill_form, browser_human_click, browser_stealth
- Automatic fallback from accessibility API to CDP to OCR to coordinates: execution_plan, click_with_fallback, type_with_fallback
- Prebuilt app references, playbooks and UI maps that load when the matching app or site is detected
macOS or Windows. Add it with claude mcp add screenhand -- npx -y screenhand, or run npx -y screenhand from any MCP client. On macOS, enable your terminal under System Settings > Privacy & Security > Accessibility. Browser tools need Chrome started with --remote-debugging-port=9222. Version 0.5.3.
One command — npx -y screenhand
