https://github.com/leestott/copilot-canvas-runtime
Canvas as a runtime for shaping agent-driven systems β a GitHub Copilot Canvas extension (Multi-Agent Dev Canvas) with a worked scenario, blog posts, and a demo prompt.
https://github.com/leestott/copilot-canvas-runtime
ai-agents canvas copilot-cli developer-tools github-copilot multi-agent observability runtime
Last synced: 6 days ago
JSON representation
Canvas as a runtime for shaping agent-driven systems β a GitHub Copilot Canvas extension (Multi-Agent Dev Canvas) with a worked scenario, blog posts, and a demo prompt.
- Host: GitHub
- URL: https://github.com/leestott/copilot-canvas-runtime
- Owner: leestott
- License: mit
- Created: 2026-06-27T08:22:32.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-06-27T10:11:26.000Z (20 days ago)
- Last Synced: 2026-06-27T10:14:09.533Z (20 days ago)
- Topics: ai-agents, canvas, copilot-cli, developer-tools, github-copilot, multi-agent, observability, runtime
- Size: 1020 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π¨ Multi-Agent Dev Canvas
[](https://github.com/leestott/copilot-canvas-runtime)
[](https://nodejs.org)
[](#quick-start)
[](https://github.com/leestott/copilot-canvas-runtime/commits/main)
[](https://github.com/leestott/copilot-canvas-runtime/stargazers)
[](LICENSE)
A GitHub Copilot Canvas extension that demonstrates **Canvas as a runtime observability and control plane** for multi-agent development β not a traditional UI builder.
> **Canvas redefines software development** by shifting from writing static code to orchestrating living systems, where developers and AI co-create, observe, and evolve solutions in real time.
π¦ **Repository:** https://github.com/leestott/copilot-canvas-runtime

## The Experience in the GitHub Copilot App
This is what it looks like live in the **GitHub Copilot App** β the AI chat on the
left driving the system, and the Canvas panel on the right updating in real time
as a shared Human β AI β System surface:

## What This Is
Traditional UIs are for **using** software. Canvas is for **shaping** software while it runs.
This canvas provides:
- **System View** β Live agent cards showing status, responsibilities, and task counts
- **Task Flows** β Visual pipeline of work routing between agents
- **Validation Panel** β Structured test results with pass/fail badges and reasoning
- **Live State Timeline** β Chronological log of every state mutation
- **Controls** β Trigger agent actions, pause/resume execution, inject failures, and reset
## Agent-Callable Actions
| Action | Description |
|--------|-------------|
| `decompose_system` | Break requirements into agent tasks and update the task flow graph |
| `execute_workflow` | Coordinate agents to perform pending tasks |
| `validate_output` | Run evaluation tests and return structured pass/fail results |
| `update_system_design` | Modify architecture, constraints, or components live |
| `track_state` | Read full system state including agents, flows, and history |
| `inject_failure` | Force an agent into error state to test adaptation |
| `pause_resume` | Toggle execution on/off |
## Scenario Walkthrough
Want to see Canvas in action? **[scenario.md](scenario.md)** documents a complete,
reproducible demo β taking a *Customer Support Triage System* from a single
requirement through decomposition, execution, validation, fault injection, and
live design evolution. It also explains **how Canvas apps empower developers** and
why Canvas is for *test validation and implementation of agentβdriven solutions* β
not for building a DevOps board.
> You don't build Canvas instead of your UI β you use Canvas to figure out, test,
> and evolve the UI and system **before and during** building it.
- π **[scenario.md](scenario.md)** β the full fiveβbeat walkthrough
- π§βπ» **[prompts/canvas-showcase-prompt.md](prompts/canvas-showcase-prompt.md)** β a readyβtoβpaste prompt for engineers to showcase Canvas
- βοΈ **[Blog: Shaping Software While It Runs](docs/blog/shaping-software-while-it-runs.html)** β the scenario as a narrative
## Quick Start
### Prerequisites
- [GitHub Copilot CLI](https://docs.github.com/en/copilot) with Canvas support
- Node.js v20+
### Install the Extension
The canvas extension lives at `.github/extensions/multi-agent-dev/extension.mjs`. To use it:
1. **Clone this repo** into your project or copy the `.github/extensions/multi-agent-dev/` folder into your own repo.
```bash
git clone https://github.com/leestott/copilot-canvas-runtime.git
```
2. **Reload extensions** in GitHub Copilot CLI:
```
extensions_reload
```
3. **Open the canvas**:
```
open_canvas({ canvasId: "multi-agent-dev", instanceId: "dev-1" })
```
4. **Invoke actions** β either click the buttons in the canvas UI, or call from the agent:
```
invoke_canvas_action({
instanceId: "dev-1",
actionName: "decompose_system",
input: {
requirements: "Build an AI code review agent",
components: ["pr-ingestion", "code-analysis", "feedback-generator"]
}
})
```
## How It Works
The extension is a single `extension.mjs` file that:
1. **Registers a canvas** with the Copilot SDK via `createCanvas()`
2. **Starts a loopback HTTP server** per instance on an ephemeral port
3. **Pushes state updates** to the iframe via Server-Sent Events (SSE)
4. **Exposes dual interaction** β humans click buttons in the UI, AI agents call actions through the SDK; both mutate the same state
```
ββββββββββββββββ SSE /events ββββββββββββββββββββ
β Canvas UI β βββββββββββββββββββ β extension.mjs β
β (iframe) β ββββPOST /triggerβββΊβ (Node.js) β
ββββββββββββββββ β β
β βββ Agent calls β
ββββββββββββββββ invoke_canvas_ β via SDK β
β Copilot CLI β ββactionβββββββββββΊ β β
ββββββββββββββββ ββββββββββββββββββββ
```
## Project Structure
```
canvasdemo/
βββ .github/
β βββ extensions/
β βββ multi-agent-dev/
β βββ extension.mjs # The canvas extension (single file)
βββ docs/
β βββ blog/
β βββ canvas-demo.png # Screenshot β after validation
β βββ canvas-fault-injected.png # Screenshot β fault injected
β βββ canvas-evolved.png # Screenshot β evolved & recovered
β βββ shaping-software-while-it-runs.html # Scenario blog post
β βββ canvas-is-not-a-ui-builder.html # Architecture deep-dive
βββ prompts/
β βββ canvas-showcase-prompt.md # Engineer prompt to showcase Canvas
βββ ghcanvasapp.png # The canvas running in the GitHub Copilot App
βββ scenario.md # Full demo scenario walkthrough
βββ README.md
```
## Canvas vs. Figma vs. Traditional UIs
| Tool | Collaboration Model | Executes? |
|------|-------------------|-----------|
| **Figma** | Human β Human | No β design only |
| **Traditional UI** | Human β System | Yes β finished product |
| **Canvas** | Human β AI β System | Yes β living, evolving system |
## Blog Posts
- [Shaping Software While It Runs: A Canvas Scenario, Start to Finish](docs/blog/shaping-software-while-it-runs.html) β the demo scenario as a narrative
- [Canvas Is Not a UI Builder β It's a Runtime for Shaping Intelligent Systems](docs/blog/canvas-is-not-a-ui-builder.html) β the deeper architectural deepβdive
## License
MIT β see [LICENSE](LICENSE).