ibz-04/gloamy/mac-use
Claude Code and agent skill by ibz-04/gloamy
- community
Checking that the SKILL.md file is still in the repository.
Control macOS GUI apps visually — take screenshots, click, scroll, type. Use when the user asks to interact with any Mac desktop application's graphical interface.
Install
npx vskill@latest install ibz-04/gloamy/mac-useSKILL.md
Mac Use
Control any macOS GUI application through a screenshot → pick element → click → verify loop.
Setup
Platform: macOS only (requires Apple Vision framework for OCR)
System binaries (pre-installed on macOS):
python3— via Homebrew (brew install python)screencapture— built-in macOS utility
Python packages — install from the skill directory:
How It Works
The screenshot command captures a window, uses Apple Vision OCR to detect all text elements, draws numbered annotations on the image, and returns both:
- Annotated image at
/tmp/mac_use.png— numbered green boxes around each detected text - Element list in JSON —
[{num: 1, text: "Submit", at: [500, 200]}, {num: 2, text: "Cancel", at: [600, 200]}, ...]whereatis the center point[x, y]on the 1000x1000 canvas (origin at top-left)
You receive both by calling Bash (gets JSON with element list) and then Read on /tmp/mac_use.png (gets the visual). Always do both so you can cross-reference the numbers with what you see.
Quick Reference
Workflow
- Open the target app with
open -a "App Name"(optionally with a URL or file path) - Wait for it to load:
sleep 2 - Screenshot the app:
``bash python3 {baseDir}/scripts/mac_use.py screenshot <app> [--id N] ` This returns JSON with file (image path) and elements` (numbered text list).
- Read the annotated image at
/tmp/mac_use.pngto see the numbered elements visually - Decide which element to interact with:
- Prefer `clicknum N` — pick the number of a detected text element
- Fallback `click --app <app> x y` — only for unlabeled icons (arrows, close buttons, cart icons) that have no text and therefore no number
- Act using
clicknum,type,key, orscroll - Screenshot again to verify the result
- Repeat from step 3
Commands
list
Show all visible app windows.
Returns JSON array: [{"app":"Google Chrome","title":"Wikipedia","id":4527,"x":120,"y":80,"w":1200,"h":800}, ...]
screenshot
Capture a window, detect text elements via OCR, annotate with numbered markers, and return the element list. The target window is automatically raised to the top before capture, so overlapping windows are handled.
<app>: fuzzy, case-insensitive match (e.g. "chrome" matches "Google Chrome")--id N: target a specific window ID (required when multiple windows of the same app exist)- Returns JSON with:
file: path to annotated screenshot (/tmp/mac_use.png)id,app,title,scale: window metadataelements: array of{num, text, at}— the numbered clickable text elements, whereatis[x, y]center coordinates on the 1000x1000 canvas (origin at top-left)- If multiple windows match, returns a list of windows instead — pick one and retry with
--id - The image is 1000x1000 pixels with green bounding boxes and blue number badges
- Element map is saved to
/tmp/mac_use_elements.jsonforclicknum
clicknum
Click on a numbered element from the last screenshot. This is the primary click method.
N: the element number from the lastscreenshotoutput- Reads the saved element map, activates the window, and clicks at the element's center
- Returns JSON with
clicked_num,text, canvas coords, and absolute screen coords
click
Click at a position using canvas coordinates. Fallback only — use for unlabeled icons.
- Coordinates are canvas positions (0-1000) from the screenshot image
- x=0 is left, x=1000 is right; y=0 is top, y=1000 is bottom
- Use this only when Vision OCR didn't detect the element (icon-only buttons, images, etc.)
scroll
Scroll inside an app window.
- Directions:
up,down,left,right - Amount: number of scroll clicks (3-5 for moderate, 10+ for fast scrolling)
- Mouse is moved to the center of the window before scrolling
type
Type text into the currently focused input field.
--app: activates the app first to ensure keystrokes go to the right window- Uses clipboard paste (Cmd+V) for reliable Unicode/CJK support
- Always click on the target input field first before typing
key
Press a single key or key combination.
--app: activates the app first- Common keys:
return,tab,escape,space,delete,backspace,up,down,left,right - Modifiers:
cmd,ctrl,alt/opt,shift
Important Rules
- Always screenshot before your first interaction with an app
- Always screenshot after an action to verify the result
- Always Read the screenshot image after running the screenshot command — you need both the element list AND the visual
- Prefer `clicknum` over
click— only use direct coordinates for unlabeled icons - Click before typing — ensure the correct input field has focus first
- Multiple windows: if you get
multiple_windowserror, uselistto see all windows, then pass--id - Popup windows (like WeChat mini-program panels) are separate windows with their own IDs — use
listto find them and--idto target them - Wait after opening apps: use
sleep 2-3afteropen -abefore taking a screenshot - Activate the app before screenshot/click: prepend
osascript -e 'tell application "AppName" to activate' && sleep 1when the target app may be behind other windows - Do not type passwords or secrets via this tool
Coordinate System (for fallback click only)
Screenshots are rendered onto a 1000x1000 canvas:
- Origin (0, 0) is at the top-left corner
- x increases left to right (0 = left edge, 1000 = right edge)
- y increases top to bottom (0 = top edge, 1000 = bottom edge)
- The app window is scaled to fit (aspect ratio preserved), centered, with dark gray padding
Example: Order food on Meituan in WeChat
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/mac_use/SKILL.md
Popularity
- Repository stars
- 63
- Repository forks
- 12
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 Jul 2026, 3 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ibz-04/gloamy/mac-use)