
Opencu
io.github.Daily-ACPublished by GitHub account Daily-ACv0.9.1Updated Nov 6, 2026
Independent local computer-use engine and MCP server for macOS, Windows, Linux and Android
Overview
Local computer-use MCP server that lets an AI agent read and operate desktop apps on macOS, Windows, Linux and Android.
- What you can do
- List running and launchable apps, and read a window's accessibility tree with an optional screenshot.
- Click, drag, scroll, type text, paste, press keys and shortcuts, set values and trigger an element's own actions.
- Bring an app to the front, and batch up to 16 actions in one call that returns a single final state.
- Start, check or stop an agent desktop: a virtual display on macOS and Android, a separate session on Windows.
- When to use it
- Useful when an agent must complete tasks that only exist in a GUI, such as filling a form, running an installer, using Save As dialogs or dismissing popups, on your own machine rather than a hosted service.
- Requirements
- Runs as a local stdio process installed from npm; macOS needs Apple silicon, macOS 14+ and Node.js 22+, Windows and Linux use prebuilt x64 builds (Linux X11 only), and Android is driven from a computer over adb. macOS requires granting Accessibility and Screen Recording permissions. No account or model key is needed.
Installation
In SourceWeft
- Open Opencu in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
OpenCU
Computer use for any AI agent, on your own machine.
https://github.com/user-attachments/assets/5da04b21-47fe-44c4-9d3d-e2b3a2e9a9c6
Re-created in code from a real session.
OpenCU is an MCP server that lets Claude Code, Codex or any other MCP client read
and operate the apps on macOS, Windows, Linux and Android. It runs locally, needs no account
or model key, and the person at the keyboard can stop it at any time.
[Latest release] [macOS, Windows, Linux, Android] [MIT license]
Install · Connect · Measured · Limitations · 简体中文
Why OpenCU
It works beside you. On macOS, input goes to the target app's process and window. Your cursor stays where it is and the app in front keeps the keyboard.
It can have a screen of its own. Start the agent desktop and the agent works on a virtual display (macOS) or in a separate session (Windows), which you watch in an ordinary window.
You stay in charge. You can always stop it: the Stop button on macOS, a physical Escape on Windows and Linux, three presses of volume-down on Android. On Windows, Linux and Android it will not take the foreground within 10 seconds of your last input. A stopped connection never restarts on its own.
It is measured. On Windows tasks that can only be done through the UI, the same agent passed 7 of 8 trials with OpenCU and 2 of 8 with a shell and screenshots. Details below.
It is yours. MIT licensed, with no account, no proprietary runtime and nothing hosted. The agent you already use brings the model.
Install
Windows · PowerShell, as your normal user, no administrator rights
Linux · x86_64 with glibc, X11 desktops
macOS · Apple silicon, macOS 14 or later, Node.js 22+
Android · preview, Android 14 or later, driven from a computer over adb (USB or wireless debugging)
To check an installation, run opencu doctor (on Windows and Linux, the command from the table below). Platform guides:
macOS · Windows · Linux · Android. Connecting your own host to Android: Android integration.
Connect your agent
OpenCU is a stdio MCP server. The command to register is:
On Windows, Linux and Android, use the command from the table instead of opencu.
Any other MCP client (on Android, add "args": ["android"]):
Then ask your agent to do something in an app. It starts by reading the app with
get_app_state.
What the agent can do
select_text is macOS and Linux only. Linux has no agent_desktop.
Input requires a fresh observation of the same app, and every error starts with a
stable code such as STOPPED_BY_PERSON. Details are in Tools and
the engine contract.
Measured
With and without OpenCU. The same agent and model, with a shell and screenshots alone or with OpenCU added:
On the scriptable tasks the shell-only agent wrote LibreOffice and OBS scripts instead of using the UI; two of OpenCU's three failures there were a modal-dialog defect fixed in 0.3.2. Evidence: Windows, Linux.
Against open-computer-use. The same agents, models and tasks with OpenCU and with iFurySt/open-computer-use 1.1.2 at its default settings:
- Linux: the two Firefox tasks took OpenCU 244 and 96 seconds (median) and
open-computer-use 872 and 552. open-computer-use did not list Firefox until the
agent turned on the AT-SPI bus itself, and in one trial its
set_valueandtype_textleft the Firefox entries empty without an error. - Windows: in all eight open-computer-use trials the agent also wrote its own Win32 input code, and its four passes completed input that way. It wrote none with OpenCU. open-computer-use ran behind a bridge on the VM (1.5 to 7 seconds per call), so its Windows timings are not comparable.
- macOS: both passed the same four tasks. On those, the agent took 544 seconds in total with OpenCU and 1,498 with open-computer-use; median click time was 292 ms against 2,029 ms. The OpenCU build in that VM was 0.2.0.
The samples are small and each platform used one model. We did not test open-computer-use's locked-screen mode, its background input on covered Chrome windows, or its global pointer setting (evidence).
Platforms
Stopping it
- macOS: the V in the menu bar has Stop. In agent desktop mode, the preview's Stop button does the same.
- Windows and Linux: a physical Escape stops input for the rest of the connection, and your own input during an action stops that action. The Windows agent desktop also has a Stop button.
- Android: press volume-down three times within 1.5 seconds. While the agent works on its background screen, the optional phone app's status island also has Stop. Touching the main screen during an action there stops that action.
- A person's stop is final for the connection. Agents must never reconnect around it.
OpenCU is a person-facing brake, not a sandbox: the agent's apps share your account
and files, and any local process that can run opencu uses its permissions.
Limitations
- macOS: Apple silicon only. The package is signed with OpenCU's own certificate and is not notarized, so install it with npm, not a browser download. macOS asks about once a month whether OpenCU may keep capturing the screen. It cannot operate a locked Mac.
- Windows: the package is unsigned, so SmartScreen or Defender may warn. Outside the agent desktop, input uses the foreground.
- Linux: X11 only; Wayland is refused. Input uses the foreground.
- Android: a preview, tested on one phone (OPPO PGBM10, Android 14). It runs from a computer over adb; the npm package installs only on Apple silicon Macs, and other computers build from source. The phone app is optional and only shows status, a preview and Stop.
- Custom-drawn apps such as Blender, and windows in the Stage Manager strip, need the foreground.
The full list, with measurements, is in Limitations.
Documentation
- Platform guides: macOS, Windows, Linux, Android
- Tools and the engine contract, with the Windows and Linux contracts
- Host integration, for programs that start OpenCU on an agent's behalf
- Limitations and measured behavior
Development
verify-gui.mjs builds two disposable AppKit fixtures, keeps one in the
foreground and operates the other in the background through the MCP server. On
Windows, node scripts/verify-gui-win.mjs uses disposable WinForms and Chrome
fixtures and takes the foreground.
python3 scripts/package-opencu.py builds a self-contained archive with Node and
the MCP dependencies for your own Macs, signed with your local identity, and
python3 scripts/verify-release.py checks it offline.
License
Original OpenCU code is available under the MIT License. Bundled open source dependencies retain their own licenses. No license for proprietary third party software is included or implied.
Source: README.md at commit eda54d0
Tools
0Version history
2- v0.9.1LatestNov 6, 2026
- v0.9.0Nov 5, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
