canvas-edit — canvas-edit setup for AI agents canvas-edit, agent-canvas-skills, community, canvas-edit setup for AI agents, ide skills, real-time web design review tool, live annotation toolbar for developers, Claude Code, Cursor, Windsurf

v1.0.0
GitHub

About this Skill

Perfect for Frontend Agents needing real-time web page annotation and debugging capabilities. canvas-edit is an AI Agent skill that provides a live annotation toolbar for web design reviews. It overlays numbered badges with color-coded severity borders on problematic page elements and enables detailed issue inspection via hover popovers.

Features

Displays live numbered badges on elements as issues are found
Applies color-coded severity borders (red/orange/blue) to badges
Provides hover popovers with detailed issue information
Enables one-click screenshot capture for documentation

# Core Topics

edrouhardmicrosoft edrouhardmicrosoft
[0]
[0]
Updated: 3/8/2026

Agent Capability Analysis

The canvas-edit skill by edrouhardmicrosoft is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance. Optimized for canvas-edit setup for AI agents, real-time web design review tool, live annotation toolbar for developers.

Ideal Agent Persona

Perfect for Frontend Agents needing real-time web page annotation and debugging capabilities.

Core Value

Empowers agents to overlay design review findings directly on web pages using live annotations, severity indicators, and issue popovers, streamlining the debugging process with numbered badges, hover popovers, and one-click screenshot capture via HTTP protocol.

Capabilities Granted for canvas-edit

Debugging web page elements with live annotations
Generating issue reports with severity-colored borders
Capturing one-click screenshots for issue documentation

! Prerequisites & Limits

  • Requires web page access for overlay functionality
  • Limited to web-based applications
Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

canvas-edit

Install canvas-edit, an AI agent skill for AI agent workflows and automation. Works with Claude Code, Cursor, and Windsurf with one-command setup.

SKILL.md
Readonly

Canvas Edit - Live Annotation Toolbar

Floating toolbar that overlays design review findings directly on web pages in real-time. Displays numbered badges on problematic elements with severity-colored borders, hover popovers for issue details, and one-click screenshot capture.

Key features:

  • Live annotations - Numbered badges appear on elements as issues are found
  • Severity indicators - Color-coded badges (red/orange/blue) with counts
  • Issue popovers - Click badges to see full issue details and recommendations
  • Screenshot capture - Capture annotated page (toolbar hidden, annotations visible)
  • Shadow DOM - Toolbar is invisible to agent-eyes screenshots
  • Filtering - Filter by severity or pillar category

Breaking Changes from v1

This is a complete redesign. Canvas-edit is now a viewing tool, not an editing tool.

Old FunctionalityNew Behavior
Text editing via textareaREMOVED
Style sliders (fontSize, etc.)REMOVED
"Save All to Code" buttonREPLACED with screenshot capture
contentEditable toggleREMOVED
edit commandREPLACED with inject command

For live editing, use agent-canvas --with-edit instead.

Prerequisites

  • Python 3.10+
  • uv package manager
  • Playwright browsers: playwright install chromium

Commands

bash
1SKILL_DIR=".claude/skills/canvas-edit/scripts"

Inject Annotations onto Page

bash
1# Inject toolbar with issues from JSON file 2uv run $SKILL_DIR/canvas_edit.py inject http://localhost:3000 --issues issues.json 3 4# Inject with issues from stdin 5echo '[{"id": 1, "selector": "h1", "severity": "major", "title": "Contrast issue"}]' | \ 6 uv run $SKILL_DIR/canvas_edit.py inject http://localhost:3000 --issues - 7 8# Auto-screenshot on load 9uv run $SKILL_DIR/canvas_edit.py inject http://localhost:3000 --issues issues.json --screenshot

Typical Workflow: Design Review + Annotations

bash
1# 1. Run design review to find issues 2uv run .claude/skills/design-review/scripts/design_review.py review http://localhost:3000 \ 3 --output-json issues.json 4 5# 2. Inject annotations onto the page 6uv run $SKILL_DIR/canvas_edit.py inject http://localhost:3000 --issues issues.json 7 8# 3. User interacts with annotations, takes screenshots, closes browser

Toolbar Controls

The floating toolbar (top-right by default) provides:

Status Display

  • Issue count ("5 Issues" or "All looks good!")
  • Severity badges: 🔴 blocking, 🟡 major, 🔵 minor

Actions

  • 👁 Visibility: Show/hide all annotations
  • ⚙ Filter: Filter by severity or pillar category
  • 📸 Screenshot: Capture page with annotations (toolbar hidden)
  • ↕/↔ Orientation: Toggle vertical/horizontal toolbar
  • ✕ Dismiss: Remove toolbar and all annotations

Dragging

  • Grab the ☰ handle to drag toolbar anywhere on screen
  • Position persists during session

Annotation Badges

Each issue appears as a numbered badge on its target element:

  • Position: Top-right of target element (auto-adjusts at screen edges)
  • Color: Border matches severity (red/orange/blue)
  • Click: Opens popover with full issue details
  • Hover: Highlights the target element

Badge Popover Contents

┌─────────────────────────────────────┐
│ #3  Contrast issue         [major] │
├─────────────────────────────────────┤
│ Color contrast ratio 3.2:1 fails   │
│ WCAG AA requirement of 4.5:1       │
│                                     │
│ Pillar: Quality Craft               │
│ Check: color-contrast               │
├─────────────────────────────────────┤
│ Recommendation:                     │
│ Change text color to #1a1a1a or    │
│ background to #ffffff              │
└─────────────────────────────────────┘

Issue JSON Format

Issues can come from design-review output or be manually constructed:

json
1[ 2 { 3 "id": 1, 4 "selector": ".hero-title", 5 "severity": "major", 6 "title": "Contrast ratio insufficient", 7 "description": "Text contrast 3.2:1 fails WCAG AA (4.5:1 required)", 8 "pillar": "Quality Craft", 9 "checkId": "color-contrast", 10 "recommendation": "Use darker text (#1a1a1a) or lighter background" 11 }, 12 { 13 "id": 2, 14 "selector": "button.submit", 15 "severity": "minor", 16 "title": "Touch target too small", 17 "description": "Button is 36x28px, minimum is 44x44px", 18 "pillar": "Quality Craft", 19 "checkId": "touch-target-size" 20 } 21]

Required Fields

FieldTypeDescription
idnumberUnique identifier
selectorstringCSS selector for target element
severitystring"blocking", "major", or "minor"
titlestringShort issue title

Optional Fields

FieldTypeDescription
descriptionstringDetailed explanation
pillarstringDesign pillar category
checkIdstringIdentifier for the check that found this
recommendationstringSuggested fix

Event API (Canvas Bus)

Canvas-edit integrates with other skills via the canvas bus event system.

Events Emitted

EventPayloadWhen
annotation.clicked{issueId, selector, severity}User clicks a badge
screenshot.requested{directory, filename, issueCount}Screenshot button clicked
screenshot.captured{path, issueCount}Screenshot saved (Python-side)
annotations.cleared{}Dismiss button clicked
filter.changed{severity, pillars}Filter settings changed

Events Subscribed

EventAction
review.startedShow "Scanning..." state
review.issue_foundAdd badge for new issue
review.completedShow final count or success message
capture_mode.changedHide/show toolbar for agent-eyes

Integration Example

javascript
1// In another skill's JavaScript 2const bus = window.__canvasBus; 3 4// Listen for annotation clicks 5bus.subscribe('annotation.clicked', (payload) => { 6 console.log(`Issue ${payload.issueId} clicked: ${payload.selector}`); 7}); 8 9// Add an issue programmatically 10window.__annotationLayer.addIssue({ 11 id: 99, 12 selector: '.problematic-element', 13 severity: 'major', 14 title: 'New issue found' 15});

Screenshot Output

Screenshots are saved to .canvas/screenshots/ with timestamp filenames:

.canvas/screenshots/
├── 2026-01-23T15-30-45_5-issues.png
└── 2026-01-23T15-45-12_0-issues.png

Filename format: YYYY-MM-DDTHH-MM-SS_N-issues.png

Screenshots capture:

  • Full page content
  • All visible annotation badges
  • Element highlights (if active)
  • NOT the toolbar (hidden during capture)

Toolbar States

StateDisplayTrigger
Issues Found"N Issues" + severity badgesDefault when issues > 0
All Clear"✓ All looks good!" (randomized)Zero issues after review completes
Scanning"⟳ Analyzing..." with spinnerDuring review.started

Success messages rotate randomly:

  • "All looks good!"
  • "Ship it!"
  • "Pixel perfect"
  • "Zero issues found"
  • "Looking sharp!"

Keyboard Navigation

KeyAction
TabNavigate toolbar controls
1-9Jump to badge by number
Arrow keysNavigate between visible badges
Enter/SpaceActivate focused button/badge
EscapeClose open popover

Shadow DOM Isolation

The toolbar is rendered inside a closed Shadow DOM:

  • Invisible to document.querySelector()
  • Excluded from agent-eyes DOM snapshots
  • Hidden from screenshots (annotations remain visible)
  • Page styles cannot affect toolbar appearance

Notes

  • Toolbar auto-repositions to stay on screen when dragged or resized
  • Badges reposition when window resizes or scrolls
  • Multiple badges on the same element stack with offset
  • Orphaned badges (element removed) are automatically cleaned up
  • Filter state persists during session but resets on page reload

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is canvas-edit?

Perfect for Frontend Agents needing real-time web page annotation and debugging capabilities. canvas-edit is an AI Agent skill that provides a live annotation toolbar for web design reviews. It overlays numbered badges with color-coded severity borders on problematic page elements and enables detailed issue inspection via hover popovers.

How do I install canvas-edit?

Run the command: npx killer-skills add edrouhardmicrosoft/agent-canvas-skills/canvas-edit. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for canvas-edit?

Key use cases include: Debugging web page elements with live annotations, Generating issue reports with severity-colored borders, Capturing one-click screenshots for issue documentation.

Which IDEs are compatible with canvas-edit?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for canvas-edit?

Requires web page access for overlay functionality. Limited to web-based applications.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add edrouhardmicrosoft/agent-canvas-skills/canvas-edit. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use canvas-edit immediately in the current project.

Related Skills

Looking for an alternative to canvas-edit or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

149.6k
0
AI

flags

Logo of vercel
vercel

flags is a Next.js feature management skill that enables developers to efficiently add or modify framework feature flags, streamlining React application development.

138.4k
0
Browser

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
AI