UseMyMac
Left: Claude Code, anywhere. Right: a Mac running usemymac up. The agent reaches it only through the printed URL.
Turn your Mac into a remote computer-use host. One command on the Mac, one paste into Claude Code or Codex, and the agent can see your screen, click, type, and open apps.
Built on CUA's computer-server for the macOS driver.
UseMyMac adds the parts that make it safe to reach from outside: a bearer token, a tool
allowlist that hides shell and filesystem access by default, a Cloudflare quick tunnel,
keep-awake, and a permissions preflight.
Quick start
uvx usemymac up
Or without uv installed:
curl -fsSL https://raw.githubusercontent.com/yunfeng-enrich/usemymac/main/install.sh | sh
Either way UseMyMac fetches cloudflared on first run and starts the server. It prints one line to paste into your agent, plus the one-line commands:
claude mcp add --transport http usemymac https://<host>/<token>/mcp
codex mcp add usemymac --url https://<host>/<token>/mcp
The token lives in the URL so no client needs custom headers. Authorization: Bearer <token>
against https://<host>/mcp works too.
Permissions
macOS grants Screen Recording and Accessibility per app, and the app is whichever
terminal launched usemymac. The first run triggers both prompts. Screen Recording only
takes effect after that terminal is fully quit and reopened. Without it, screenshots
are black and window titles are empty. Check with:
usemymac check
What is exposed
By default: screenshot, mouse, keyboard, clipboard, windows, app launch, and the accessibility tree. Not exposed unless you ask:
--allow-shelladdscomputer_run_command--allow-filesadds file read, write, and delete tools
Other flags: --no-tunnel for LAN or SSH-forwarded use, --width/--height to scale
screenshots and coordinates for the model, --port, --token.
Security
This is your real desktop on a public URL. The token is the only lock, and it is in the
URL, so treat the URL like a password. Both the hostname and the token are new on every
run, so a leaked URL stops working the moment you Ctrl-C. Keep the terminal visible while
an agent is connected. Pass --token only if you need a fixed one.
Status
Spike. Works end to end on macOS 15 with Claude Code over a Cloudflare tunnel. Not yet: signed menu bar app, persistent tunnel hostnames, per-app allowlists, Lume VM sandbox mode.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file usemymac-0.1.0.tar.gz.
File metadata
- Download URL: usemymac-0.1.0.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e65ff7b8e0942232525a7945f0a15b66b95eeb3cdb065d8f7ad2f76e746c1876
|
|
| MD5 |
4e45c031359566abd9ff45e001cd7a0d
|
|
| BLAKE2b-256 |
e0e9b8a017b207fd17235e2a80f8391ed9a89f672fddb8fb6fcad5e6403cde2d
|
Provenance
The following attestation bundles were made for usemymac-0.1.0.tar.gz:
Publisher:
publish.yml on yunfeng-enrich/usemymac
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usemymac-0.1.0.tar.gz -
Subject digest:
e65ff7b8e0942232525a7945f0a15b66b95eeb3cdb065d8f7ad2f76e746c1876 - Sigstore transparency entry: 2833246080
- Sigstore integration time:
-
Permalink:
yunfeng-enrich/usemymac@fbaf3d5cd42bbf3924f9a084115af43b79bbd6dc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yunfeng-enrich
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fbaf3d5cd42bbf3924f9a084115af43b79bbd6dc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file usemymac-0.1.0-py3-none-any.whl.
File metadata
- Download URL: usemymac-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0001f512c5585989195b9cc51e835aa0d574716b6914b1dcca99f4e40782c93
|
|
| MD5 |
f609fcf68317fdc3bd49801cdd658b02
|
|
| BLAKE2b-256 |
0ea59862933bc23423726849451db611a786a4eb380ac5305dc0a46c4785998c
|
Provenance
The following attestation bundles were made for usemymac-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on yunfeng-enrich/usemymac
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
usemymac-0.1.0-py3-none-any.whl -
Subject digest:
f0001f512c5585989195b9cc51e835aa0d574716b6914b1dcca99f4e40782c93 - Sigstore transparency entry: 2833246130
- Sigstore integration time:
-
Permalink:
yunfeng-enrich/usemymac@fbaf3d5cd42bbf3924f9a084115af43b79bbd6dc -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yunfeng-enrich
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fbaf3d5cd42bbf3924f9a084115af43b79bbd6dc -
Trigger Event:
workflow_dispatch
-
Statement type: