# Plan Canvas Review

Open a plan in a browser canvas to annotate, approve or request changes.

- Repository: https://github.com/affaan-m/ECC (294725 stars)
- Category: Design
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add affaan-m/ECC --skill plan-canvas -g -a claude-code -y`
Codex: `npx skills add affaan-m/ECC --skill plan-canvas -g -a codex -y`
Cursor: `npx skills add affaan-m/ECC --skill plan-canvas -g -a cursor -y`
Gemini CLI: `npx skills add affaan-m/ECC --skill plan-canvas -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add affaan-m/ECC`

## Description

Open plans and HTML artifacts in a local browser canvas where the human annotates elements, chats, and approves or requests changes without leaving the page. Use when presenting a plan for review, or when feedback like "move this, change that" is easier pointed at than typed.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Plan Canvas

Review loop for plans and visual artifacts: you write the artifact, the human
reviews it in the browser, annotating the exact element they mean, chatting,
and delivering an **Approve plan / Request changes** verdict, while you block
on a single CLI call that returns their feedback as JSON.

Inspired by [lavish-axi](https://github.com/kunchenguid/lavish-axi); rebuilt
ECC-native around the `/plan` confirmation gate, with zero dependencies.

## When to Use

- You just wrote a plan artifact (`.claude/plans/*.plan.md` from `/plan`) and
  need the CONFIRM/approve decision, the canvas verdict replaces a typed
  "yes/proceed".
- The user should *point at* what to change: reviewing designs, comparisons,
  reports, or any local `.md` / `.html` artifact.
- The user asks for `/plan-canvas`, a visual review, or "open it in the browser".

Do NOT use for: code review of diffs (`/code-review`), running web apps, or
remote URLs. The canvas serves local artifact files only.

## How It Works

Invoke the CLI as `ecc-plan-canvas`, the bin shipped by the `ecc-universal`
package (on PATH after a global/plugin install; `node "$CLAUDE_PLUGIN_ROOT/scripts/plan-canvas.js"`
also works for plugin installs). Run it from the project you are reviewing in;
it works from any working directory. It manages a detached loopback server
(`127.0.0.1:4517`) shared by all sessions, keyed by artifact path, no session
ids to track.

The workflow is a plain CLI-plus-JSON loop, so it is model- and harness-agnostic:
any agent that can run a shell command and read stdout drives it the same way
(Claude Code, Codex, Cursor, Gemini, OpenCode, Copilot). Trigger it however your
harness surfaces skills, e.g. `/plan-canvas` in Claude Code, `$plan-canvas` in
Codex, or just run the `ecc-plan-canvas` commands directly.

```bash
# 1. Open the artifact in the user's browser (returns immediately)
ecc-plan-canvas open .claude/plans/feature.plan.md

The rest: https://github.com/affaan-m/ECC/blob/HEAD/.agents/skills/plan-canvas/SKILL.md
