Installation
windo is a dev tool, so it lives in your devDependencies. Install it from npm, make sure your project already has the peers windo expects, then pick how you want to run it — a Vite plugin for an integrated dev server, or the CLI for a one-off canvas.
Install as a dev dependency
windo never ships in your bundle — it renders your components in a separate dev-time canvas. Install it as a dev dependency with the manager you already use.
bun add -d @westopp/windo
pnpm add -D @westopp/windo
npm install --save-dev @westopp/windo
Peer dependencies
windo expects these to already exist in your project — it doesn't pull them in for you, so it picks up the exact versions your app runs:
{
"peerDependencies": {
"react": "^19.0.0",
"react-dom": "^19.0.0",
"vite": "^7.0.0",
"zod": "^4.0.0"
}
}React 19 and React DOM 19 power the preview render; zod 4 validates the live props you declare on each windo. Vite 7 is the odd one out — it's marked optional. You only need it for the Vite plugin path below. If you run windo through the CLI instead, Vite comes along as part of windo's own toolchain and you can skip it from your project.
Two ways to run it
windo needs a dev server to host the canvas. There are two routes to one, and the right choice depends on whether you already run Vite.
The Vite plugin folds windo into a Vite config you control. If your project is already on Vite, this is the natural fit — windo shares your resolver, aliases, and plugins, so your components render with the same module graph they ship with.
import { defineConfig } from 'vite' import { windo } from '@westopp/windo/plugin' export default defineConfig({ plugins: [windo()], })
The windo() plugin pairs @vitejs/plugin-react with windo's own machinery, so you don't add the React plugin separately. The full set of options lives on The Vite plugin.
The CLI spins up a canvas with no config file at all. Point it at your *.windo.tsx files and it brings its own Vite dev server — ideal for trying windo in a project that doesn't use Vite, or for a quick look without touching your build setup.
bunx windo
What the CLI accepts, and how it discovers your windos, is covered on The CLI. Either way, once the server is up, head to Getting started to write your first windo.