Skip to content
Agentmart
Submit a tool

mac-vm

Use when a task needs a GUI app on a Mac whose desktop is locked, or when the user asks to start, stop, or set up the agent macOS VM.

Skill by connorch

IndexedMIT★ 2
Write a review

Chalk Labs

Need help deploying mac-vm?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/connorch-mac-vm

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when a task needs a GUI app on a Mac whose desktop is locked, or when the user asks to start, stop, or set up the agent macOS VM. Boots an on-demand Tart VM with its own always-unlocked desktop, then shuts it down.

Use cases: productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 1, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/mac-vm

What's inside

Skill name
mac-vm
Description
Use when a task needs a GUI app on a Mac whose desktop is locked, or when the user asks to start, stop, or set up the agent macOS VM. Boots an on-demand Tart VM with its own always-unlocked desktop, then shuts it down.
License
MIT
Metadata
requires: tart and the mac-vm CLI on PATH
Instructions
104 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Mac VM

macOS blocks screen capture and input while the Mac is locked. The agent VM is
a separate macOS guest with auto-login, so its desktop is usable no matter
what the host is doing. It is **off by default**: boot it for a task, shut it
down after.

```sh
mac-vm status                 # stopped | running at <ip>, guest agent, VNC, tunnels
mac-vm up                     # boot headless, wait for the guest; safe to re-run
mac-vm up --forward 18789     # also reverse-tunnel host 127.0.0.1:18789 into the guest
mac-vm down                   # close tunnels, shut down (forced after 60s)
mac-vm shot [out.png]         # the guest screen as a PNG (default /tmp/mac-vm.png)
mac-vm click <x> <y>          # at the PNG's pixel coordinates; --double, --right
mac-vm type "<text>"          # type into whatever has focus
mac-vm key cmd+shift+a        # enter, tab, escape, backspace, arrows, f1-f12, cmd/alt/ctrl/shift
```

The VM is `agent-vm` unless `--vm` or `MAC_VM` says otherwise.

## Rules

- **Always `mac-vm down` when the task ends**, including when it failed. Check
  `mac-vm status` at the start of a task; if the VM is already running and you
  did not start it, leave it running and do not shut it down.
- **Only apps the user approved** belong in the guest. Never put personal data
  or credentials into it yourself; the user signs in to accounts there. The one
  exception is the OpenClaw Gateway token below, and only after the user has
  approved provisioning it.
- `up` blocks until the guest has logged in (up to 4 minutes on a cold boot).

## Working inside the guest

Run commands through Tart's guest agent, no SSH needed:

```sh
tart exec agent-vm open -a "Some App"
tart exec agent-vm sh -c 'ls ~/Downloads'
tart exec -i agent-vm sh -c 'cat > ~/Downloads/file.3mf' < file.3mf   # copy a file in
```

`tart exec` runs as the guest's `admin` user (passwordless `sudo -n` works).

### Driving the screen

`shot`, `click`, `type`, and `key` go through Tart's VNC server, so they work
from any agent with a shell and need nothing inside the guest. Take a `shot`
and look at it before the first click, and again after anything that changes
the screen; click coordinates are pixels of that PNG (the guest is Retina, so
a 1024x768 desktop is a 2048x1536 image). The first command starts a screen
daemon that holds the VM's one VNC connection until `down`; do not point
another VNC client at the VM while it runs.

### With OpenClaw (optional)

An OpenClaw agent can also use its own computer tool: the guest runs the
OpenClaw Mac app as a node named **Agent VM**, reaching a loopback-only Gateway
through `mac-vm up --forward <gateway port>`, and reconnects on its own after
boot (a LaunchAgent opens the app at login). To set it up in a new guest, copy
`/Applications/OpenClaw.app` in, get the user's go-ahead to put the Gateway
token in the guest, then pipe it (never echo it) into
`openclaw-mac primary set --direct-url ws://127.0.0.1:<port> --token-stdin`
through `tart exec -i`, and have the user approve the pairing request.

## Setup (one-time, per machine)

```sh
brew install openai/tools/tart     # may first need: brew trust --formula openai/tools/softnet
mac-vm init                        # clones ghcr.io/cirruslabs/macos-tahoe-base (~25 GB), 4 CPU / 8 GB, SSH key
```

Copy apps in from the host rather than downloading them in the guest:
`tar -C /Applications -cf - Some.app | tart exec -i agent-vm sudo -n tar -C /Applications -xf -`.
Then let the user sign in to them in a visible window: `mac-vm down`, then
`tart run agent-vm` in the background. That window has no Gateway tunnel, so
the Agent VM node is offline until you `mac-vm down` and `mac-vm up` again;
sign-ins persist across the restart. Tell the user not to save passwords in the
guest's browser. The Cirrus image logs in as `admin`/`admin`. Tart's
default network is NAT and only reachable from the host, so this is no more exposed than the host itself.
Grant Accessibility and Screen Recording to whatever drives the UI in the guest.

## Troubleshooting

- `timed out ... waiting for the guest desktop login`: see `~/.local/state/mac-vm/<vm>.log`.
  Boot once with a window (`tart run agent-vm`) to see what the guest is stuck on.
- `reverse tunnel ... exited` or `... never became reachable in the guest`: the
  port is already bound in the guest, or `mac-vm init` never authorized the key.
  Re-run `mac-vm init` (it skips the clone).
- `mac-vm shot` is black: the guest is still booting; `up` waits for the login.
- `vnc: not available (booted outside mac-vm?)`: the VM was started with
  `tart run` by hand, so mac-vm has no VNC address. `mac-vm down`, then `up`.
- `VNC: the server closed the connection` and `status` says stopped: Tart's
  VNC server crashed. It asserts when a client connects after the screen
  changed since the last client left, which is why mac-vm keeps one
  connection open in its daemon. `mac-vm up` boots it again.
- `the screen daemon did not start`: see `~/.local/state/mac-vm/<vm>.screen.log`.
- `open -a "Some App"` cannot find an app copied in: open it by path,
  `open "/Applications/Some App.app"`.
- The guest renders OpenGL in software, so GL-heavy apps (Bambu Studio's 3D
  view) crash. Prefer a lighter companion app.
- The guest sits behind NAT, so LAN discovery (SSDP, mDNS) of devices on the
  home network does not work. Use the app's cloud login or a direct IP.

From connorch/skills, MIT.

More from connorch/skills

Signals

Stars
2
Forks
0
Open issues
2
Last commit (this folder)
Oct 7, 2026 (29 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from connorch

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get mac-vm running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying mac-vm?

CallGet help
Cite this page

mac-vm skill. Agent Mart. https://agentmart.dev/skills/connorch-mac-vm (last updated 2026-10-24)