An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# 🎨 Multi-Agent Dev Canvas

[![GitHub Copilot CLI](https://img.shields.io/badge/GitHub%20Copilot%20CLI-canvas%20extension-000?logo=githubcopilot&logoColor=white)](https://github.com/leestott/copilot-canvas-runtime)
[![Node.js](https://img.shields.io/badge/Node.js-built--ins%20only-5FA04E?logo=nodedotjs&logoColor=white)](https://nodejs.org)
[![Dependencies](https://img.shields.io/badge/dependencies-zero-success)](#quick-start)
[![Last commit](https://img.shields.io/github/last-commit/leestott/copilot-canvas-runtime?logo=git&logoColor=white)](https://github.com/leestott/copilot-canvas-runtime/commits/main)
[![Stars](https://img.shields.io/github/stars/leestott/copilot-canvas-runtime?style=flat&logo=github)](https://github.com/leestott/copilot-canvas-runtime/stargazers)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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

![Multi-Agent Dev Canvas](docs/blog/canvas-demo.png)

## 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:

![Multi-Agent Dev Canvas inside the GitHub Copilot App](ghcanvasapp.png)

## 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).