Best for
- "Open Safari and navigate to github.com" — anything requiring real GUI interaction with an app
- "Click the Join button on the Zoom invite dialog"
- "Type this into the Discord message box"
sonichi/sutando/skills/macos-use/SKILL.md
GUI control for macOS apps via mediar-ai's mcp-server-macos-use. Click, type, scroll, key-press, open apps — driven by accessibility tree, works in non-interactive Claude Code mode. Use this for any Sutando task that needs to drive another macOS application (Safari, Zoom, Mail, Finder, etc.).
Decision brief
Drive macOS applications from Claude Code via mediar-ai's mcp-server-macos-use. A Swift MCP server that wraps the macOS Accessibility API. Unlike Claude's built-in computer-use, this works in non-interactive mode (which is how Sutando's proactive loop and task bridge run), does…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Declared | Source record | Install path and trigger |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/sonichi/sutando --skill "skills/macos-use"Inspect the Agent Skill "macos-use" from https://github.com/sonichi/sutando/blob/6a8f0fccd32e5aa620a3572c8885544f144bb6fe/skills/macos-use/SKILL.md at commit 6a8f0fccd32e5aa620a3572c8885544f144bb6fe. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Prefer this skill over: - bash src/screen-capture.sh — that captures screenshots; macos-use actually interacts - AppleScript tell application blocks — more reliable, better error handling - cliclick — lower-level, no accessibility context - Claude's built-in computer-use — that…
After install, these appear as mcpmacos-use in Claude Code:
Review the “Install” section in the pinned source before continuing.
bash skills/macos-use/scripts/build.sh
bash skills/macos-use/scripts/install-mcp.sh
Permission review
The documentation asks the agent to run terminal commands or scripts.
bash skills/macos-use/scripts/build.shThe documentation asks the agent to run terminal commands or scripts.
bash skills/macos-use/scripts/install-mcp.shThe documentation includes network, browsing, or remote request actions.
Sutando, open Safari and navigate to https://github.com/sonichi/sutandoEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 87/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 359 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Drive macOS applications from Claude Code via mediar-ai's mcp-server-macos-use. A Swift MCP server that wraps the macOS Accessibility API. Unlike Claude's built-in computer-use, this works in non-interactive mode (which is how Sutando's proactive loop and task bridge run), does not hold a machine-wide lock, and does not require a Pro/Max subscription.
src/inline-tools.tsPrefer this skill over:
bash src/screen-capture.sh — that captures screenshots; macos-use actually interactstell application blocks — more reliable, better error handlingcliclick — lower-level, no accessibility contextcomputer-use — that mode requires interactive sessions and holds a lock that contends with Sutando's own loopAfter install, these appear as mcp__macos-use__* in Claude Code:
| Tool | Parameters | Purpose |
|---|---|---|
open_application_and_traverse | identifier (name/bundle ID/path) | Launch or activate an app, return its a11y tree |
click_and_traverse | pid, x, y | Click at coordinates in a target app, return updated tree |
type_and_traverse | pid, text | Type into the frontmost element |
press_key_and_traverse | pid, key | Press a named key (Return, Tab, Escape, arrows, ...) |
scroll_and_traverse | pid, direction, amount | Scroll in a direction |
refresh_traversal | pid | Re-read the a11y tree without acting |
Every tool returns an accessibility-tree snapshot of the target app — structured UI elements with roles, titles, positions, and identifiers. No pixels. Model reasons over the tree, not over screenshots.
Two steps, one-time:
# 1. Build the Swift binary (~35s)
bash skills/macos-use/scripts/build.sh
# 2. Register with Claude Code's MCP config (writes ~/.claude.json)
bash skills/macos-use/scripts/install-mcp.sh
# 3. Grant Accessibility permission
# System Settings → Privacy & Security → Accessibility
# Click +, navigate to ~/.macos-use-mcp/.build/release/mcp-server-macos-use, enable.
Restart Claude Code after install for the MCP tools to appear.
swift-sdk transitive dep has data-race errors that Swift 6.3+ strict-concurrency trips on. build.sh uses -Xswiftc -swift-version -Xswiftc 5 as a workaround. When upstream fixes this, remove the flag.screen-capture.sh + Claude vision.sutando-memory.git (binaries are machine-specific). Run build.sh + install-mcp.sh on Mac Mini and MacBook separately.After install + restart:
Sutando, open Safari and navigate to https://github.com/sonichi/sutando
You should see Claude invoke mcp__macos-use__open_application_and_traverse with identifier: "Safari", then type_and_traverse into the URL bar, then press_key_and_traverse with Return.
notes/issue-65-computer-use-research.mdAlternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
event4u-app/agent-config
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
affaan-m/ECC
Design, implement, and refactor Ports & Adapters systems with clear domain boundaries, dependency inversion, and testable use-case orchestration across TypeScript, Java, Kotlin, and Go services.
event4u-app/agent-config
Use when shaping a Playwright suite — locator strategy, Page Object boundaries, fixture composition, flake-prevention architecture, CI-vs-local split — even on 'design our E2E tests'.