Agent skill

image-annotations

Annotate screenshots, diagrams, and images with callout rectangles, arrows, labels, and color-coded highlights using PIL. Includes rules for animated GIF annotations with timing and pacing.

GitHub68,948★ · +463/wk · 2 repos on radarProfile →
copilotMIT
Install
npx skills add github/awesome-copilot --skill image-annotations --agent copilot

Same command for any agent — swap --agent for claude-code, codex, cursor.

Facts
Files in the skill folder: 1
SKILL.md size: 23 KB
Bundled scripts: none
Path: skills/image-annotations/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 37,432 · +281 this week
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Annotate screenshots, diagrams, and images with callout rectangles, arrows, labels, and color-coded highlights using PIL. Includes rules for animated GIF annotations with timing and pacing.

How it works

The skill provides a workflow to annotate images:

  • Install Pillow via pip as prerequisite.
  • Define color rules, font settings, and shape guidelines for annotations (rounded rectangles, padding, stroke details).
  • Draw a callout around target content using rounded rectangles, lines, and labels with consistent color and typography.
  • Offer an algorithmic annotation path via an annotate.py module that places labels automatically to avoid overlap, using a set of steps: grid placement, candidate generation, scoring based on contrast, proximity, and line-of-sight, and greedy placement to maximize overall readability.
  • Provide a complete example and a reference snippet demonstrating how to use PIL to draw annotations, including how to position labels and callouts relative to target elements.
  • For multiple elements, use annotate_image(image_path, annotations, ...) which computes padding, bounding regions (cyan), label sizing, and candidate annotations, then renders the final image with colored annotations.

When to use it

Use this skill when you need to:

  • Highlight a specific area in a screenshot for a PR description
  • Annotate before/after images to show what changed
  • Add labels and callouts to diagrams or architecture images
  • Create annotated frames for animated GIF demos

What it can touch

  • The tool uses PIL/Pillow to modify images in memory and save annotated outputs. It references file-based resources for fonts and input images. The example module annotate.py is intended to be saved alongside the script and imported.

Caveats

  • Prerequisites include: pip install Pillow -q
  • Font handling differs by platform: on Windows it uses Ink Free font path; on Linux/macOS it falls back to load_default().
  • Stroke, padding, and color rules are explicit (e.g., red for bad/removed, orange for highlights) and must be followed as defined in the color rules and shapes sections.
  • The algorithm relies on exact pixel coordinates for element bounding boxes and uses a grid and scoring to place labels to minimize overlap, but the behavior is dependent on input data and may not guarantee perfect placements in all cases.
From the SKILL.md

# Image Annotations Add visual callouts to any image — screenshots, diagrams, architecture docs, demo frames — using PIL/Pillow. Highlights what changed or what to look at, so reviewers don't have to guess. ## When to Use This Skill Use this skill when you need to: - Highlight a specific area in a screenshot for a PR description - Annotate before/after images to show what changed - Add labels and callouts to diagrams or architecture images - Create annotated frames for animated GIF demos ## Prerequisites ```bash pip install Pillow -q ``` ## Color Rules - **Red (`#E63946`)** — only for "bad" / "removed" things (e.g., circling a bug being fixed) - **Yellowish-orange (`#FF9F1C`)** — for neutral highlights ("look here", "new feature", etc.) - Never use red just because it's eye-catching — red = bad/removed ## Font - Use **Ink Free** (`C:/Windows/Fonts/Inkfree.ttf`) for a handwritten look on Windows - On Linux/macOS, fall back to `ImageFont.load_default()` - Size **36** for annotations on ~1400px-wide images - `stroke_width=1` with `stroke_fill=<same color as fill>` — gives body without being too thick - Do NOT use white stroke — looks like a bad glow effect ## Shapes - Prefer **rounded

What's inside
Steps it walks through
  1. When to Use This Skill
  2. Prerequisites
  3. Color Rules
  4. Font
  5. Shapes
  6. Reference Snippet
  7. Algorithmic Annotation — annotate.py
  8. Quick start
  9. Coordinate grid helper
  10. Algorithm overview
  11. Debug mode colors
  12. Arrow styles
  13. annotate.py — full module
  14. Image Diffing
Commands it runs
pip install Pillow -q
More from awesome-copilot
All skills →
About this skill
What does the image-annotations skill do?

Annotate screenshots, diagrams, and images with callout rectangles, arrows, labels, and color-coded highlights using PIL. Includes rules for animated GIF annotations with timing and pacing.

How do I install it?

Run `npx skills add github/awesome-copilot --skill image-annotations --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From github/awesome-copilot, a repository with 37,432 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going