junmo-kim/mac-local-vision/macvis
Claude Code and agent skill by junmo-kim/mac-local-vision
- community
Checking that the SKILL.md file is still in the repository.
On-device, zero-token vision for AI agents (mac-local-vision, macOS). Read text from an image / screenshot / PDF (OCR), find the exact click-pixel of a word for E2E/UI assertions, scan QR codes and barcodes, tag/classify an image, group photos by face, flatten a photographed document, extract a document's structured layout, segment an object into a mask, or ask a question about an image. Apple Vision + Foundation Models, fully on-device — no cloud, no vision tokens, ~0.3s per call. Reach for this whenever an agent needs to read or locate something in a screenshot/image instead of sending it to a cloud vision API, or needs to generate a QR code or straighten a photographed document/receipt. Triggers: read text from an image, OCR a screenshot/PDF, find a button's pixel coordinates, click-point for E2E, assert text is on screen, scan a QR code, read a barcode, decode a barcode payload, generate a QR code, create a QR code image, classify/tag an image, what's in this image, find a document's corners, flatten/straighten/scan a photographed document or receipt, perspective-correct an image, extract a table from an image, parse a document's structure, read a receipt/invoice layout, segment an object, create an object mask from a point or box, on-device/local vision, sort photos by person. Apple Silicon + macOS 26+ (`ask` and `segment` need macOS 27).
Install
npx vskill@latest install junmo-kim/mac-local-vision/macvisSKILL.md
macvis
macvis reads and locates things in images, on-device. Put the binary on your PATH (repo README → Install) and call it. Output is YAML by default; add --format json to parse.
Which command
| You need | Command | ||
|---|---|---|---|
| Read all text from an image / screenshot / PDF | macvis ocr <path> | ||
The click-point (x,y) of a specific word — E2E / UI targeting | macvis find <path> --target "<text>" | ||
| Scan a QR code or barcode (any symbology) | macvis barcode <path> | ||
| Scan for a QR code only (skip other symbologies) | macvis qr <path> | ||
| Tag/classify what an image contains (labels, not free text) | macvis classify <path> | ||
| Generate a scannable QR code PNG | macvis make-qr "<text>" --out <path> | ||
| Find a document's four corners in a photo | macvis document-bounds <path> | ||
| Flatten/straighten a photographed document into a scan | macvis rectify-document <path> --out <path> | ||
| Extract a document's title/paragraphs/tables/lists with layout preserved | macvis document-ocr <path> | ||
| Create an object mask from one point or box — macOS 27 | macvis segment <path> --point <x,y> --out <mask.png> | ||
| To interpret an image (describe, reason, summarize) — macOS 27 | macvis ask <path> --prompt "<question>" | ||
| To extract structured JSON fields from an image (schema-constrained) — macOS 27 | `macvis ask <path> --prompt "<question>" --schema <path\ | inline-json>` | |
| Group photos by person | macvis sort-faces <dir> | ||
| Find photos matching a given face | macvis find-person --target <face.jpg> --dir <dir> | ||
| Check what runs on this machine | macvis doctor |
Rule of thumb: ocr to read everything, find to get one word's pixel to click/assert, document-ocr when the layout (table cells, list items) matters rather than flat lines, ask only when you need interpretation rather than raw text.
Examples
Reading the output
- stdout = data, stderr = structured errors (
error/reason/hint) — keep them apart. - Exit codes:
0ok ·1ran but no result (e.g.findmiss) ·64bad args ·
70 permanently unavailable · 71 retry later.
- `find`: always check
found— it'sfalse(with exit 1) when the target isn't on
screen. x,y is the click center; approximate: true means the box is the whole text line, not word-tight.
- PDF input: output starts with
pageandpage_count. A PDF without--pagemeans page 1 only — read every page with--page 1…--page <page_count>. An out-of-range page fails withpage_out_of_range(exit 64). - Recognition languages auto-detect from the system locale; override with
--lang ko-KR,en-US. findfilters at--min-confidence 0.3by default (ocrkeeps everything); lower it for blurry/headless renders.segmentnever downloads model assets implicitly. If it returns
segment_unavailable/assets_not_ready, use --download-assets only when the user explicitly wants to install the assets, then retry without changing the point/box seed.
doctor.segment: "unknown: assets_not_ready"means Vision has not established readiness
in this process, not that the model is necessarily missing. Try a normal segment call first.
segmentreports native maskwidth/heightseparately from inputimage_width/image_height(upright pixels after PDF rasterization). Mask resolution varies by quality. Map input pixels withx * width / image_width,y * height / image_height, or resize the mask to the input raster before overlaying. Foreground is white, background black.
classify scores an image against Vision's 1,303-label taxonomy (identifiers are unlocalized technical names, e.g. outdoor/document/people — not meant for direct UI display). Vision scores every label for every image, so results are filtered by --min-confidence (default 0.1) and capped by --top (default 20) before they come back; label_count: 0 is a valid outcome (not an error), same as barcode's code_count: 0.
Full flags for any command live in macvis <command> --help (the canonical, code-generated reference). To drive it as a tool server instead of the CLI, run macvis mcp — same engine, exposes ocr / find / barcode / qr / classify / make-qr / document-bounds / rectify-document / document-ocr / segment / doctor / ask as MCP tools. On macOS 26, ask and segment return structured availability errors.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/macvis/SKILL.md
Popularity
- Repository stars
- 60
- Repository forks
- 4
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
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/junmo-kim/mac-local-vision/macvis)