What problem does it solve?
Building a canvas extension for the GitHub Copilot app involves a specific runtime contract — JSON-RPC over stdio, joinSession declaration, loopback HTTP servers, and a three-part ID model — and small mistakes like a stray console.log or a reserved action name silently break the extension. This Skill provides the exact authoring workflow, API reference, and debugging checklist to get a canvas working.
Core Features & Use Cases
- Guided authoring workflow: Scaffold a canvas extension via
extensions_manage, edit extension.mjs, reload, and verify with list/inspect operations.
- Canvas API reference: Covers
createCanvas, open, actions[] handlers, onClose, input schema validation, and the loopback server pattern with Server-Sent Events.
- Validation and debugging checklist: Step-by-step verification of discovery, open, action invocation, input validation errors, and reserved-verb rejection, plus log-based troubleshooting.
- Use Case: You want a triage board panel inside the Copilot app. Use this Skill to scaffold a project-scoped canvas extension, implement an action that refreshes issue data, and validate it end-to-end with
open_canvas and invoke_canvas_action.
Quick Start
Ask the agent to scaffold a new project-scoped canvas extension named triage-board and walk through implementing and validating its open handler and actions.