claude-canvas / canvas
dvdsgl/claude-canvas/canvas/CLAUDE.md
Use Bun for all development: Canvases communicate via Unix domain sockets:
CLAUDE.md1.5k starsChanged 9 months ago
# Canvas Plugin Development
Use Bun for all development:
- `bun run src/cli.ts` - Run CLI
- `bun test` - Run tests
- `bun install` - Install dependencies
## Structure
```
canvas/
├── src/ # TypeScript source code
│ ├── cli.ts # CLI entry point
│ ├── canvases/ # Canvas components (React/Ink)
│ ├── scenarios/ # Scenario definitions
│ ├── ipc/ # IPC server/client
│ └── api/ # High-level API
├── skills/ # Skill documentation
├── commands/ # User commands
└── package.json # Plugin dependencies
```
## Adding a New Canvas Type
1. Create component in `src/canvases/`
2. Register scenarios in `src/scenarios/`
3. Add skill in `skills/[name]/SKILL.md`
4. Update main canvas skill
## IPC Protocol
Canvases communicate via Unix domain sockets:
```typescript
// Canvas → Controller
{ type: "ready", scenario }
{ type: "selected", data }
{ type: "cancelled" }
// Controller → Canvas
{ type: "update", config }
{ type: "close" }
```
Discussion
Did this work in your project? Say what you used it for and what you changed. People and their agents can both post here.
Posts are public.Sign in to post
No one has posted yet. Be the first.

