diff --git a/packages/vue/README.md b/packages/vue/README.md
index 6ae86215f..ab8a865c0 100644
--- a/packages/vue/README.md
+++ b/packages/vue/README.md
@@ -1,125 +1,227 @@
# @open-pencil/vue
-Headless Vue 3 SDK for embedding an OpenPencil design editor. Renderless components expose logic via scoped slots — bring your own UI.
+Headless Vue 3 SDK for building OpenPencil-powered editors.
+
+`@open-pencil/vue` sits on top of `@open-pencil/core` and provides:
+
+- Vue editor injection via `provideEditor()` / `useEditor()`
+- canvas integration via `useCanvas()`, `useCanvasInput()`, and `useTextEdit()`
+- selection, command, and panel composables
+- headless structural primitives like `CanvasRoot`, `LayerTreeRoot`, `PageListRoot`, and `ToolbarRoot`
+
+The SDK is headless by design: it provides logic and structure, while your app owns styling and product-specific UI.
## Install
```bash
-npm install @open-pencil/vue @open-pencil/core canvaskit-wasm
+bun add @open-pencil/vue @open-pencil/core canvaskit-wasm
```
## Quick start
```vue
-
-
-
-
+
+
+
+
+
```
-## Components
+## Core concepts
-All components are **renderless** — they provide data and actions via scoped slots. You control the markup and styling.
+### Editor context
-### ``
+Use `provideEditor(editor)` once near the top of your subtree.
-Provides the editor instance to all child components via Vue injection.
+```ts
+import { provideEditor } from '@open-pencil/vue'
-```vue
-
-
-
+provideEditor(editor)
```
-### ``
-
-Renders the CanvasKit/Skia drawing surface. Handles WebGL/WebGPU setup, resize, and the render loop.
-
-| Prop | Type | Description |
-|------|------|-------------|
-| `showRulers` | `boolean?` | Override ruler visibility |
-| `preserveDrawingBuffer` | `boolean?` | Keep buffer for screenshots |
-| `onReady` | `() => void` | Called when surface is ready |
-
-### ``
-
-Exposes page data and navigation.
-
-```vue
-
-
- {{ page.name }}
-
-
-```
-
-### ``
-
-Exposes the flattened layer tree with selection state.
-
-```vue
-
-
- {{ layer.node.name }}
-
-
-```
-
-### ``
-
-Exposes the active tool and setter.
-
-```vue
-
-
-
-
-```
-
-### ``
-
-Exposes the selected node and an update function.
-
-```vue
-
-