Let agents work in your apps while you keep using your Mac.
See the codeLet 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 runs on macOS 15+, on Apple silicon and Intel. Follow the installation guide to get set up.
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.
Mecum and your client must run on the same Mac. The app includes the STDIO bridge; no Node.js or Python installation is needed.
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.
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 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 for the current scope and how to report a workflow.
Driver, Perception and Engine are Swift package libraries 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.
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 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 →
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 and GitHub Issues.
For questions and workflows, join Discord.
Apache 2.0, Copyright 2026 Forte Audio S.r.l.
Let agents work in your apps while you keep using your Mac.
See the codeLet 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 runs on macOS 15+, on Apple silicon and Intel. Follow the installation guide to get set up.
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.
Mecum and your client must run on the same Mac. The app includes the STDIO bridge; no Node.js or Python installation is needed.
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.
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 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 for the current scope and how to report a workflow.
Driver, Perception and Engine are Swift package libraries 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.
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 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 →
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 and GitHub Issues.
For questions and workflows, join Discord.
Apache 2.0, Copyright 2026 Forte Audio S.r.l.