Skip to content

ipdelete/canvas

Repository files navigation

Canvas Copilot CLI Extension

Shareable packaging for the Canvas Copilot CLI extension.

Canvas lets Copilot CLI agents display rich HTML content in a local browser window, update it with live reload, and receive browser actions through a local back-channel.

Install

The installer asks whether to install Canvas as:

  • User-scoped - available to Copilot CLI in every working directory.
  • Repo-scoped - copied into the current repository at .github/extensions/canvas.

Windows

irm https://raw.githubusercontent.com/ipdelete/canvas/main/install.ps1 | iex

macOS/Linux

bash -c "$(curl -fsSL https://raw.githubusercontent.com/ipdelete/canvas/main/install.sh)"

After installing, restart Copilot CLI or run extensions_reload.

Non-interactive install

Set COPILOT_EXTENSION_SCOPE to user or repo.

$env:COPILOT_EXTENSION_SCOPE = "user"
irm https://raw.githubusercontent.com/ipdelete/canvas/main/install.ps1 | iex
COPILOT_EXTENSION_SCOPE=user bash -c "$(curl -fsSL https://raw.githubusercontent.com/ipdelete/canvas/main/install.sh)"

Manual install

Copy the extension folder into either your user extensions directory or a repository's extension directory:

extensions/canvas -> ~/.copilot/extensions/canvas
extensions/canvas -> .github/extensions/canvas

Then restart Copilot CLI or run extensions_reload.

Extensions

  • canvas - display and update local browser canvases from Copilot CLI.
  • pi/canvas.ts - Pi coding agent adapter for the same Canvas browser tools.

See extensions/canvas/README.md for Copilot usage details. For a step-by-step beginner guide, see docs/README.md.

Pi install

Canvas can also be loaded as a Pi package without changing the Copilot extension layout:

pi install git:github.com/ipdelete/canvas

Or try it for a single Pi run:

pi -e git:github.com/ipdelete/canvas

The Pi adapter registers canvas_show, canvas_update, canvas_close, canvas_list, canvas_library, and canvas_actions using Pi's extension API. Browser content is served from the existing extensions/canvas/data/content directory by default. Set PI_CANVAS_CONTENT_DIR=/absolute/path to use a different content directory.

Self-updates

The installer writes .canvas-install.json into each installed extension copy with the source repository, branch, install scope, and installed commit SHA.

When Canvas starts, it compares that installed commit to the latest main commit in ipdelete/canvas. If the installed copy is stale, Canvas downloads the latest managed files, verifies them against canvas-manifest.json SHA-256 hashes, updates the installed copy in place, and asks Copilot CLI to reload extensions via the SDK.

Canvas preserves data/ so generated canvas content is not part of the self-update.

Set CANVAS_DISABLE_AUTO_UPDATE=true before starting Copilot CLI to disable self-updates.

Uninstall

Delete the installed extension folder:

~/.copilot/extensions/canvas
.github/extensions/canvas

The installer only writes the chosen extension folder and does not modify Copilot settings.

About

Canvas Copilot CLI extension

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors