Show HN: Mecum, open source Mac app that lets agents use ANY desktop software ForteAI-Org released Mecum, an open-source Mac app that gives AI agents a desktop workspace to operate any macOS application, including software that exposes neither an API nor an accessibility (AX) tree. Mecum runs on macOS 15+ on Apple silicon and Intel, supports AppKit, Chromium, Electron and Qt frameworks, and connects Claude Code or Codex through a local MCP STDIO bridge with no Node.js or Python installation required. The app uses a Swift-written driver that moves app windows to a virtual display to route agent input, plus perception, brain and memory components, with UXP support for Adobe apps still in development. Let agents work in your apps while you keep using your Mac. Mecum gives agents a desktop workspace on your Mac. Give a worker a task in the Mecum app, or connect Claude Code or Codex through MCP to work in desktop apps, even when they expose neither an API nor an AX tree. mecum-readme-20s-v2.mp4 Mecum runs on macOS 15+ , on Apple silicon and Intel . Follow the installation guide https://github.com/ForteAI-Org/mecum/blob/main/Documentation/README.md get-started to get set up. 1. Install and open Mecum. 2. Create a worker, connect a supported model and grant the Mac access needed for desktop work. 3. Start with a small task in a disposable document. Name the app, the result you want and where the agent should stop. 4. Follow the activity and inspect the result in the app. For your first task, ask the agent to read an open TextEdit test document and summarize it without editing or saving. If you use Codex or Claude Code, keep their CLIs up to date to access the latest models available to your account. To build from source with Swift 6.4 , follow the developer Quickstart https://github.com/ForteAI-Org/mecum/blob/main/QUICKSTART.md . Connect Claude Code, Codex or another local MCP client Mecum and your client must run on the same Mac. The app includes the STDIO bridge; no Node.js or Python installation is needed. 1. Keep Mecum open. In MCP → MCP Connections… , name your client, choose its capabilities and click Add Client . 2. Turn Enabled on and wait for Ready . 3. Expand Client configuration and use Copy Claude Code command , Copy Codex command or Copy JSON . Prefer these generated values over the templates below. Claude Code claude mcp add --scope user --transport stdio mecum -- \ "/Applications/Mecum.app/Contents/Helpers/mecum-bridge" \ mcp-bridge --connection \ "/Users/YOUR USERNAME/Library/Application Support/Mecum/MCP/CLIENT UUID.connection.json" Codex codex mcp add mecum -- \ "/Applications/Mecum.app/Contents/Helpers/mecum-bridge" \ mcp-bridge --connection \ "/Users/YOUR USERNAME/Library/Application Support/Mecum/MCP/CLIENT UUID.connection.json" These are templates. Replace YOUR USERNAME and CLIENT UUID with the values from Mecum, and use the generated helper path if the app is elsewhere. Keep paths quoted. Save configurations in personal settings. Check registration with claude mcp get mecum or codex mcp list . Start a new client session and use /mcp to inspect the live connection, then run the read-only connection check https://github.com/ForteAI-Org/mecum/blob/main/Documentation/MCPSetup.md test-the-connection . Each connection entry accepts one active client. Create separate entries for independently running clients. Never share the contents of .connection.json . The full MCP guide https://github.com/ForteAI-Org/mecum/blob/main/Documentation/MCPSetup.md covers other local clients, capabilities and troubleshooting. Not every client has been tested end to end. URL-only web connectors cannot use this local bridge. Supported frameworks: AppKit, Chromium, Electron and Qt . UXP support is in development Adobe apps . Workers take turns controlling desktop apps. While one works, the others wait in line. Read the compatibility and limitations guide https://github.com/ForteAI-Org/mecum/blob/main/Documentation/LaunchCompatibility.md for the current scope and how to report a workflow. - Driver https://github.com/ForteAI-Org/mecum/blob/main/Documentation/Driver/README.md : written in Swift, it moves app windows to a virtual display and routes the agent's input there, so you can keep working on your Mac without a virtual machine. - Perception https://github.com/ForteAI-Org/mecum/blob/main/Documentation/Perception/README.md : turns the current interface into structured text and refreshes it as the window changes. - Brain https://github.com/ForteAI-Org/mecum/blob/main/Documentation/README.md brain : builds a map of each app's controls, relationships and transitions, giving agents context about how the app works. - Memory https://github.com/ForteAI-Org/mecum/blob/main/Documentation/README.md memory : stores past interactions and their outcomes, so agents can draw on that experience in later tasks still in development; recall can be inconsistent, with improvements on the way . Driver, Perception and Engine are Swift package libraries https://github.com/ForteAI-Org/mecum/blob/main/Package.swift you can use in your own macOS apps. Mecum checks what changed after each action. You can follow the activity, review the result and stop the worker from the app. The desktop window-to-text pipeline runs locally. A remote model can receive window text, task context and relevant app knowledge. Read Permissions & data https://github.com/ForteAI-Org/mecum/blob/main/Documentation/README.md permissions-and-data . Mecum's full-scene responses used 85–97% fewer estimated tokens than Cua's screenshot + AX tree responses. 8 runs after 1 warm-up. Times include the action and updated view. | Application / framework | Mecum support | Cua support | Mecum step ms | Cua step ms | |---|---|---|---|---| | TextEdit AppKit | Partial | Supported | 1,069 | 1,489 | | Chrome Chromium | Partial | Supported | 1,227 | 1,590 | | Obsidian Electron | Supported | Supported | | 1,513 | | Stocks Mac Catalyst | Unavailable | Supported | — | 2,061 | | kitty OpenGL/GLFW | Partial | Partial | | 1,602 | | DaVinci Resolve Qt + GPU UI | Supported | Not supported | | — | | Prism Launcher Qt 6 | Supported | Not supported | | — | | Calculator SwiftUI | Supported | Supported | | 1,355 | | Safari WebKit | Partial | Partial | | 1,385 | See the full report https://github.com/ForteAI-Org/mecum/blob/main/Documentation/Driver/reports/CUADriverBenchmark20261006.md for the method and support limits. Estimated tokens in the tool response, rather than total tokens for a task with a model: | Application / framework | Mecum full read | Mecum unchanged | Cua full read | |---|---|---|---| | TextEdit AppKit | | | 6,185 | | Chrome Chromium | | | 13,986 | | Obsidian Electron | | | 7,307 | | kitty OpenGL/GLFW | | | 4,566 | | DaVinci Resolve Qt + GPU UI | | | 17,924 | | Prism Launcher Qt 6 | | | 4,157 | | Calculator SwiftUI | | | 3,801 | | Safari WebKit | | | 34,002 | Full read: the complete view, as structured text for Mecum or screenshot + AX tree for Cua. Unchanged: no changes since the previous step. Mecum sends a short confirmation; Cua sends the full view again. Test hardware: MacBook Pro with M4 base model , 16 GB RAM, macOS 27.0.1 26A434 . Read the method, results and per-operation data → https://github.com/ForteAI-Org/mecum/blob/main/Documentation/Driver/reports/CUADriverBenchmark20261006.md We welcome help with Qt driver coverage, UXP and Flutter support, missing Perception controls, and feedback on Brain and Memory as you use apps. Start with CONTRIBUTING.md https://github.com/ForteAI-Org/mecum/blob/main/CONTRIBUTING.md and GitHub Issues https://github.com/ForteAI-Org/mecum/issues . For questions and workflows, join Discord https://discord.gg/SBqrAN9wDg . Apache 2.0 https://www.apache.org/licenses/LICENSE-2.0 , Copyright 2026 Forte Audio S.r.l.