Skills DirectorySearch all skills ↗

AI agent skill · by @zeenie-ai

Vision Skill

Understand images (describe content, answer questions about them, extract text/OCR) via a vision model. Use when the user asks what an image, screenshot, chart, scan, or photo contains.

Archived 2026-10-23 · Source updated 2026-09-15 · License: MIT. Check the original repository for the latest version.

SKILL.md instructions

# Vision Skill

See images through the `vision` tool (a vision-capable model looks at the
image and answers in text). Check the tools in your tool list for full
schemas; this skill covers strategy.

## Workflow

1. Locate the image with the `data` tool first (`list` / `search`) — the
   `vision` tool takes a workspace-relative path, and guessing paths wastes
   a paid model call.
2. An image on an external mount (`mnt/...`) must be imported first:
   `data copy_to_workspace`, then pass the returned workspace path.
3. Choose the operation:
   - `describe` — what is in the image; pass `question` for something
     specific ("what is the y-axis peak?") instead of asking for a general
     description and hoping.
   - `extract_text` — OCR-style text extraction (documents, screenshots,
     signs). Returns only the text.

## The budget ladder

`budget` controls resolution and therefore cost: `small` (~256 visual
tokens), `normal` (~1024, default), `large` (~2048, fine detail).

- Skim at `normal`; escalate to `large` only when the answer needs fine
  detail (dense charts, small print, UI screenshots).
- Never open with `large` on an image you haven't seen at `normal` — each
  call bills the vision provider.

## When NOT to use this tool

- The host model may already see images natively: if an image you read via
  the `data` tool is visible in the conversation, answer from it directly —
  a delegate call would be a second opinion at extra cost and latency.
- Extracting text from a PDF: use `data read` (text extraction) first;
  vision OCR is for rasterized/scanned content the parser cannot read.

## Anti-patterns

- Calling `vision` on a path that was never confirmed via `data` list/read.
- Repeating `describe` with rephrased questions — ask one specific
  `question` with the detail you actually need.
- Using `extract_text` on charts to infer numbers — ask `describe` with a
  targeted question instead; OCR on plot labels loses structure.

Related skills