velloo 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +121 -225
  2. package/THIRD-PARTY-NOTICES.md +3 -3
  3. package/canvas/assets/index-CcPwhD7W.js +31 -0
  4. package/canvas/assets/index-CkVteRZ9.css +2 -0
  5. package/canvas/assets/lucide-all-Cezxn40A.js +1 -0
  6. package/canvas/index.html +2 -2
  7. package/{chunk-rjjc9vam.js → chunk-07fxzrx2.js} +2 -2
  8. package/{chunk-ff0jfn0v.js → chunk-32cq4wpr.js} +1 -1
  9. package/{chunk-nx09zqgs.js → chunk-3612470d.js} +1 -1
  10. package/{chunk-hf4adxe0.js → chunk-45wv1fs5.js} +8 -8
  11. package/chunk-4g4c9h7k.js +2 -0
  12. package/{chunk-8vgpffn7.js → chunk-6w42sr61.js} +1 -1
  13. package/{chunk-esb7n55g.js → chunk-8n07n0cr.js} +3 -3
  14. package/{chunk-96qhpth5.js → chunk-8qf0ne1p.js} +1 -1
  15. package/{chunk-56z5xd5b.js → chunk-8ztgcajz.js} +1 -1
  16. package/chunk-9g45c5md.js +815 -0
  17. package/{chunk-w2naqxqt.js → chunk-aefn23tr.js} +1 -1
  18. package/{chunk-jsvkqae2.js → chunk-asqpx5v7.js} +1 -1
  19. package/chunk-b4hny6hw.js +3 -0
  20. package/chunk-bntsn3wj.js +2 -0
  21. package/{chunk-bc7pkjcn.js → chunk-c4164x55.js} +1 -1
  22. package/{chunk-mfch0b0t.js → chunk-cg0sjdqt.js} +1 -1
  23. package/{chunk-3trkmgfr.js → chunk-cq2q36d1.js} +1 -1
  24. package/chunk-d19ttv1a.js +4 -0
  25. package/{chunk-8grzf8q1.js → chunk-djwvt6jx.js} +1 -1
  26. package/chunk-dqqpbmxt.js +22 -0
  27. package/{chunk-1td6z6ey.js → chunk-dy7qwj3t.js} +1 -1
  28. package/{chunk-dar6wbf2.js → chunk-ejpccmcj.js} +1 -1
  29. package/{chunk-pxaxgkaq.js → chunk-emty5315.js} +1 -1
  30. package/chunk-esg0x95a.js +5 -0
  31. package/{chunk-k423dkjz.js → chunk-ez720ked.js} +1 -1
  32. package/{chunk-h85hv05d.js → chunk-ffm2jpxp.js} +1 -1
  33. package/{chunk-6813v926.js → chunk-g3k8k6fq.js} +3 -3
  34. package/{chunk-63y5gdzw.js → chunk-h3ser37q.js} +1 -1
  35. package/{chunk-74yxy75r.js → chunk-hsk91jms.js} +1 -1
  36. package/chunk-jxgwdz2r.js +5 -0
  37. package/chunk-kvq7pcph.js +2 -0
  38. package/chunk-m0v3d581.js +2 -0
  39. package/chunk-majd3gx9.js +3 -0
  40. package/{chunk-t2x3mztc.js → chunk-mqtnj8ws.js} +1 -1
  41. package/{chunk-xtwx2p9g.js → chunk-mqx96m2g.js} +1 -1
  42. package/{chunk-c4spp880.js → chunk-nrxqr4v5.js} +1 -1
  43. package/{chunk-g185gx8a.js → chunk-nx0ex7qw.js} +1 -1
  44. package/{chunk-qwccndcd.js → chunk-q7wwqn03.js} +1 -1
  45. package/chunk-qgbat4fv.js +6 -0
  46. package/{chunk-08mjtg1e.js → chunk-qqagacne.js} +1 -1
  47. package/{chunk-69qb8p8s.js → chunk-qx83fdv2.js} +1 -1
  48. package/{chunk-ff2vt7cz.js → chunk-r5y1sh4f.js} +1 -1
  49. package/{chunk-2ba6edh8.js → chunk-rg86bhtb.js} +2 -2
  50. package/{chunk-x02z2ccm.js → chunk-rhfzy9c0.js} +1 -1
  51. package/{chunk-t6qr2ay9.js → chunk-rrrn1mkq.js} +1 -1
  52. package/{chunk-56vfy0db.js → chunk-s1cwck4c.js} +1 -1
  53. package/{chunk-tac2wvc7.js → chunk-sjxp2bx3.js} +1 -1
  54. package/chunk-skk6yvnw.js +3 -0
  55. package/{chunk-52m26hh4.js → chunk-t08391mh.js} +1 -1
  56. package/{chunk-2q561dec.js → chunk-t61vyqpd.js} +1 -1
  57. package/{chunk-ta84ehgg.js → chunk-v6ks5v53.js} +1 -1
  58. package/{chunk-hjc5eg5c.js → chunk-w30zfv3m.js} +1 -1
  59. package/{chunk-tbd6wn3q.js → chunk-x84qrz4q.js} +1 -1
  60. package/{chunk-chtv0yj6.js → chunk-xg49s85z.js} +147 -30
  61. package/{chunk-8cj4swpr.js → chunk-xxw67jpk.js} +3 -3
  62. package/{chunk-eqjtq673.js → chunk-yjwtdm71.js} +1 -1
  63. package/{chunk-8vam2893.js → chunk-z6r6wxm6.js} +1 -1
  64. package/{chunk-hsfpbjpc.js → chunk-zgwvkgsz.js} +1 -1
  65. package/cli.js +1 -1
  66. package/launcher.cjs +3 -1
  67. package/package.json +1 -1
  68. package/pkgs/helpers/src/box.tsx +12 -6
  69. package/pkgs/helpers/src/descriptors.ts +6 -0
  70. package/pkgs/helpers/src/icon.tsx +5 -3
  71. package/pkgs/helpers/src/index.ts +2 -2
  72. package/pkgs/helpers/src/text.tsx +29 -5
  73. package/pkgs/provider-antd/src/index.ts +1 -0
  74. package/pkgs/provider-antd/src/manifest.ts +1 -0
  75. package/pkgs/provider-chakra/src/manifest.ts +1 -0
  76. package/pkgs/provider-html/src/index.ts +1 -0
  77. package/pkgs/provider-mui/src/index.ts +10 -0
  78. package/pkgs/provider-mui/src/manifest.ts +1 -0
  79. package/pkgs/provider-none/src/components-inline.tsx +20 -14
  80. package/pkgs/provider-none/src/components.tsx +2 -4
  81. package/pkgs/provider-none/src/index.ts +1 -0
  82. package/pkgs/schema/src/board.ts +13 -1
  83. package/pkgs/schema/src/config.ts +38 -1
  84. package/pkgs/schema/src/flow.ts +230 -0
  85. package/pkgs/schema/src/frame.ts +7 -0
  86. package/pkgs/schema/src/index.ts +24 -0
  87. package/pkgs/schema/src/node-identity.ts +54 -1
  88. package/pkgs/schema/src/node.ts +114 -26
  89. package/pkgs/schema/src/snippet-resolve.ts +18 -12
  90. package/pkgs/schema/src/svg-sanitize.ts +3 -0
  91. package/pkgs/schema/src/theme.ts +56 -0
  92. package/pkgs/schema/src/typeset.ts +21 -4
  93. package/pkgs/shadcn-snapshot/dist/manifest.json +6 -0
  94. package/plugins/claude/velloo/agents/velloo-designer.md +7 -4
  95. package/plugins/claude/velloo/commands/setup.md +13 -0
  96. package/plugins/gemini/GEMINI.md +9 -5
  97. package/plugins/gemini/commands/velloo/setup.toml +11 -0
  98. package/skills/velloo-design/SKILL.md +11 -6
  99. package/skills/velloo-setup/SKILL.md +179 -36
  100. package/canvas/assets/index-CnyI3aig.js +0 -29
  101. package/canvas/assets/index-GNLd0pCG.css +0 -2
  102. package/canvas/assets/lucide-all-CH8LmVh0.js +0 -1
  103. package/chunk-1gkeepkm.js +0 -2
  104. package/chunk-2web93qz.js +0 -2
  105. package/chunk-ab8fga32.js +0 -22
  106. package/chunk-azeqkms7.js +0 -6
  107. package/chunk-e2btp1wd.js +0 -3
  108. package/chunk-ey65err5.js +0 -5
  109. package/chunk-rk238m15.js +0 -4
  110. package/chunk-wfhv9jg4.js +0 -2
  111. package/chunk-wnj432fw.js +0 -3
  112. package/chunk-yfvc8d2g.js +0 -716
  113. package/chunk-z73q4dq9.js +0 -2
  114. package/chunk-ztsckexy.js +0 -5
package/README.md CHANGED
@@ -7,262 +7,175 @@
7
7
  </picture>
8
8
  </h1>
9
9
 
10
- **Design like a developer. Build like a designer.**
10
+ **Give your coding agent a place to design.**
11
11
 
12
- Velloo is an open-source, local-first canvas for agent-driven design. It gives
13
- your coding agent a structured understanding of your app — its routes,
14
- components, theme, and conventions — so it can compose real screens, inspect the
15
- rendered result, and write the chosen design back into your app while you keep
16
- the taste and direction.
12
+ Velloo is an open-source, local-first canvas for exploring design with your
13
+ coding agent. Try directions in real components, refine them yourself or with
14
+ feedback from others, then implement the one you believe in.
17
15
 
18
16
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-FFAB1F.svg)](https://www.apache.org/licenses/LICENSE-2.0)
19
17
  [![npm](https://img.shields.io/npm/v/velloo.svg?color=FFAB1F)](https://www.npmjs.com/package/velloo)
20
18
  [![CI](https://github.com/velloo-design/velloo/actions/workflows/ci.yml/badge.svg)](https://github.com/velloo-design/velloo/actions/workflows/ci.yml)
21
19
  [![Discussions](https://img.shields.io/github/discussions/velloo-design/velloo?color=FFAB1F)](https://github.com/velloo-design/velloo/discussions)
22
20
 
23
- [Quickstart](#quickstart) · [Documentation](./docs) · [Contributing](./CONTRIBUTING.md) · [Discussions](https://github.com/velloo-design/velloo/discussions) · [velloo.design](https://velloo.design)
21
+ [Quickstart](#quickstart) · [Watch the film](https://velloo.design/#walkthrough) · [Documentation](https://velloo.design/docs/) · [Contributing](./CONTRIBUTING.md) · [Discussions](https://github.com/velloo-design/velloo/discussions) · [velloo.design](https://velloo.design)
24
22
 
25
23
  </div>
26
24
 
27
25
  <p align="center">
28
- <picture>
29
- <source media="(prefers-color-scheme: dark)" srcset="./.github/assets/walkthrough-dark.gif">
30
- <img src="./.github/assets/walkthrough.gif" alt="A coding agent designs an approval inbox in Velloo: three directions, a refinement, canvas and Velloo Cloud comments it resolves, and the implemented screen" width="100%">
31
- </picture>
26
+ <a href="https://velloo.design/#walkthrough">
27
+ <picture>
28
+ <source media="(prefers-color-scheme: dark)" srcset="./.github/assets/walkthrough-dark.gif">
29
+ <img src="./.github/assets/walkthrough.gif" alt="One real run of a coding agent driving Velloo: three directions for a booking flow from one prompt, notes pinned on the canvas and resolved, the board published to Velloo Cloud, a founder's comments answered in the thread, and the app shipped to match the design" width="100%">
30
+ </picture>
31
+ </a>
32
32
  </p>
33
33
 
34
- ---
35
-
36
- ## What is Velloo?
37
-
38
- Velloo adds a visual design loop to your coding agent. The agent works with your
39
- actual component system, explores and verifies directions on the canvas, and
40
- implements the direction you choose using your application's conventions.
41
-
42
- Designs are readable JSON that can live in your repo or outside it. The complete
43
- solo workflow is local and account-free; Velloo Cloud is optional when you want
44
- published boards, review links, and comments that return to the canvas.
45
-
46
- **No Figma seats. No paste-ready JSX you babysit. No translation tax.**
34
+ <p align="center">
35
+ <a href="https://velloo.design/#walkthrough"><b>▶ Watch the 79-second film, with sound</b></a>
36
+ ·
37
+ <a href="https://share.velloo.dev/s/db87dafb3d/">Open the board it published</a>
38
+ <br>
39
+ <sub>One real run, nothing mocked: Claude Code driving Velloo 0.6 from a blank folder to a running app.</sub>
40
+ </p>
47
41
 
48
- > **Status:** early and moving fast. The design-folder format is versioned and
49
- > migrated by `velloo upgrade`, but expect rough edges and breaking changes
50
- > before 1.0. Bug reports and design feedback are very welcome.
42
+ ---
51
43
 
52
44
  ## Quickstart
53
45
 
54
- Install the CLI. The npm package pulls an exact official Bun platform binary
55
- with no install scripts — you don't install or manage Bun yourself:
56
-
57
- ```bash
58
- npm install -g velloo # or: pnpm add -g velloo
59
- ```
60
-
61
- Prefer a standalone install (macOS and Linux)?
62
-
63
46
  ```bash
64
- curl -fsSL https://get.velloo.design/install.sh | bash
47
+ npm install -g velloo # or: pnpm add -g velloo
48
+ cd your-app # or an empty folder, to start something new
49
+ velloo init # wizard: reads your routes, components and theme, connects your agent
50
+ velloo run # starts the canvas on http://localhost:7300
65
51
  ```
66
52
 
67
- Then, from inside your app:
53
+ Restart your agent so it picks up the MCP config `init` wrote. In an app that
54
+ already exists, the first thing to ask for is setup — once:
68
55
 
69
- ```bash
70
- cd ~/code/my-shadcn-app
71
- velloo init # interactive wizard
72
- velloo run velloo # the design folder it just created
73
- ```
56
+ > "Set up Velloo for this app." (`/velloo:setup` in Claude Code)
74
57
 
75
- - **Canvas** → http://localhost:7300 (the next free port if that one is busy)
76
- - **MCP server** → your agent starts `velloo mcp` over stdio; `init` already
77
- wrote that into its config. HTTP-only clients can run `velloo mcp --http`,
78
- which prints the URL to use.
58
+ The agent imports your theme and real fonts, gets your own components
59
+ rendering on the canvas and checks every one of them, then proposes your
60
+ design language for you to review there. After that, ask for what you came for:
79
61
 
80
- Restart your agent so it picks up the new MCP config, then point it at a real
81
- screen:
62
+ > "Use Velloo to explore three genuinely different directions for the billing
63
+ > page. Put them side by side on one board, and show me the canvas before you
64
+ > change any application code."
82
65
 
83
- > "Use `velloo` to recreate the design for the billing page,
84
- > then show me three takes on the plan-comparison section."
66
+ The agent builds on the canvas and you react to pixels instead of to a diff.
67
+ For the agent to see its own work, install the optional headless browser once
68
+ with `velloo browser install`.
85
69
 
86
- That's the loop. The agent builds on the canvas, screenshots its own work, and
87
- you react to pixels instead of to a diff.
70
+ `init` only creates a design folder and agent configuration; it never changes
71
+ your app's source. The [quickstart guide](https://velloo.design/docs/quickstart/)
72
+ covers the standalone installer, the wizard's choices, and what to do next;
73
+ [Connect an agent](https://velloo.design/docs/agent/connect/) covers every
74
+ supported agent and manual MCP setup.
88
75
 
89
- ### What `init` does
90
-
91
- The wizard creates a design folder (default `velloo/`), detects your routes,
92
- component library, and theme, and connects supported coding agents through their
93
- native MCP configuration and guidance format. It never changes your app source;
94
- it only creates the design folder and agent configuration.
76
+ > **Status:** early and moving fast. The design-folder format is versioned and
77
+ > migrated by `velloo upgrade`, but expect rough edges and breaking changes
78
+ > before 1.0. Bug reports and design feedback are very welcome.
95
79
 
96
- ### Ways to use Velloo
80
+ ## Why Velloo
97
81
 
98
- - **Redesign an existing screen.** Recreate a route as a faithful baseline,
99
- explore alternatives beside it, and compare the result with the running app.
100
- - **Start from scratch.** Choose your component library, then begin with the
101
- sample board or a blank canvas for a new screen or product idea.
102
- - **Work from a live page.** Capture a public or authenticated page when the
103
- useful starting point is a browser rather than a route in the current app.
82
+ **Making things got cheap. Deciding what to make did not.**
104
83
 
105
- For better results, give the agent a concrete outcome and review bar: name the
106
- screen, ask for genuinely different directions, say which components or tokens
107
- must be preserved, and ask to see the canvas before application code changes.
84
+ Exploring alternatives and refining them with feedback is how good design has
85
+ always worked. What changed is where screens start: in a code editor, with an
86
+ agent, often before anyone has talked about the design. When the first working
87
+ interface arrives looking finished, that conversation is easy to skip.
108
88
 
109
- ### Velloo Cloud and `velloo publish`
89
+ Velloo brings it to the repository and the agent you already use, so it can
90
+ happen before the code lands.
110
91
 
111
- Velloo Cloud is the optional collaboration layer; the local design remains the
112
- source of truth. When you want feedback from someone else, sign in and publish a
113
- board from the canvas or the CLI:
92
+ ## How it works
114
93
 
115
- ```bash
116
- velloo login
117
- velloo publish velloo
118
- ```
94
+ The loop the film shows:
119
95
 
120
- Choose the boards, destination, and access level when prompted. Velloo uploads
121
- the material needed to render the review and prints a share link; comments on
122
- that link sync back to the local canvas for you or your agent to resolve. A later
123
- publish can update the same link and preserve its review context.
124
-
125
- Use `velloo publish list` to see existing publications and
126
- `velloo publish remove <share-url>` to take one down. Velloo Cloud is not
127
- required to design, export, or implement a screen.
128
-
129
- ## Features
130
-
131
- - **Existing-screen redesign.** Start from a React or HTML route, or a captured
132
- authenticated page, recreate a faithful baseline, explore alternatives, and
133
- compare against the running product at the same viewport.
134
- - **Real components, not approximations.** Components come from a
135
- `ComponentProvider`, so the design folder stays pure data. For shadcn,
136
- client-safe files from your app mount directly in the canvas; portal- and
137
- state-heavy families are explicitly adapted; compile failures fall back per
138
- component with diagnostics.
139
- - **React and HTML/htmx adapters.** shadcn + Tailwind, Material UI, Ant Design,
140
- Chakra UI, and no-library React render through their own adapters. The HTML
141
- adapter previews live server fragments and emits native HTML.
142
- - **Visual verification.** The agent inspects rendered nodes, takes screenshots,
143
- diffs against a live URL, and fixes what it sees instead of guessing from code.
144
- - **Board → Screen → Frame.** One design folder holds many boards; frames that
145
- share a screen stay in sync, so a mobile and a desktop frame are one edit.
146
- - **A real MCP surface.** Discovery, focused tree mutations, themes, screenshots,
147
- comparison, comments, and agent-consumed implementation IR — plus bundled
148
- skills for brand, design systems, logos, and design-to-code.
149
- - **Optional collaboration.** Create a team, publish a board, share externally,
150
- and pull review comments back into the local canvas.
151
-
152
- ## Requirements
153
-
154
- | | |
155
- |---|---|
156
- | **OS** | macOS (arm64, x64), Linux (arm64, x64; glibc and musl), and Windows (x64, arm64) through npm. The standalone installer is macOS and Linux only. |
157
- | **Your app** | React (shadcn + Tailwind, MUI, Ant Design, Chakra, or no-library) or a server-rendered HTML/htmx app. |
158
- | **Screenshots** | Optional headless Chromium, one command away (below). |
96
+ 1. **Explore.** One prompt, several directions, composed on the canvas from
97
+ real components and checked by the agent against its own screenshots.
98
+ 2. **Refine.** Pin comments on the one you like. The agent addresses them and
99
+ replies in the thread, or you tune props and styles yourself.
100
+ 3. **Publish and review** *(optional)*. Send a board to Velloo Cloud. Anyone
101
+ with the link comments in a browser, and their notes return to your canvas.
102
+ 4. **Ship.** The agent reads the chosen screen as framework-native output,
103
+ writes real application code, and compares the running app to the design.
159
104
 
160
- ### Screenshots — the one optional extra
105
+ Under the canvas, each screen is a readable JSON tree of components, props, and
106
+ styles in a folder you own. You see the interface; your agent reads the same
107
+ structure, which is how it makes precise changes and carries a design into
108
+ code. [Concepts →](https://velloo.design/docs/concepts/)
161
109
 
162
- A headless Chromium is used for exactly two things: your agent's `screenshot`
163
- tool (so it can *see* a design) and `velloo render <screen> --to=out.png`. The
164
- canvas, editing, `publish`, `emit`, and everything else work without it. Install
165
- it anytime (one-time, ~150 MB):
110
+ ## Ways to use Velloo
166
111
 
167
- ```bash
168
- velloo browser install
169
- ```
170
-
171
- If a screenshot ever fails, run exactly that command and retry.
112
+ - **Start from scratch.** No app required. Pick a component library, then
113
+ design a new product from the sample board or a blank canvas, as the film
114
+ does. [Design a screen →](https://velloo.design/docs/guides/design-a-screen/)
115
+ - **Redesign an existing screen.** Recreate a route as a faithful baseline,
116
+ explore alternatives beside it, and compare with the running app.
117
+ [Port an existing page →](https://velloo.design/docs/guides/port-a-page/)
118
+ - **Work from a live page.** Capture a public or signed-in page with
119
+ `velloo capture` when the starting point is a browser, not a route.
120
+ - **Act on feedback.** Hand the agent the open comments, local or from a
121
+ published link. [Velloo Cloud →](https://velloo.design/docs/cloud/)
122
+ - **Implement the chosen design.** Turn a screen into code in your app's
123
+ conventions. [From design to code →](https://velloo.design/docs/guides/emit/)
172
124
 
173
- ## CLI essentials
125
+ For the thinking behind this way of working, read
126
+ [Why I created Velloo](https://velloo.design/blog/why-i-created-velloo/).
174
127
 
175
- A **design** is a folder with a `.design/config.json`, which holds its name. A
176
- repo-root **`velloo.json`** lists where the repo's designs are (several can
177
- coexist in a monorepo). Every design-taking command accepts a design name or a
178
- path, and resolves through `velloo.json` when you pass nothing. With several
179
- designs, a connected agent is told which one it is on and can switch between them.
180
- Commands that take something else as their argument, like `emit <screen>`, take
181
- the design as `--design`.
128
+ ## Works with your stack
182
129
 
183
- | Command | What it does |
130
+ | Your app | How it's styled and emitted |
184
131
  |---|---|
185
- | `velloo init` | Create a design folder and wire up your agent |
186
- | `velloo run [design]` | Start the canvas + MCP daemon (`--port` to pick the canvas port) |
187
- | `velloo design list\|add\|remove\|move\|rename\|upgrade` | Manage the repo's designs |
188
- | `velloo emit` / `velloo render` | Implementation IR (native HTML for an HTML screen) / a PNG of a screen |
189
- | `velloo publish [design]` | Publish a board for review (`publish list\|remove` manage what you've published) |
190
- | `velloo upgrade` | Update the install *and* migrate the design format (`--check` to preview) |
191
-
192
- `Ctrl-C` stops the server.
193
-
194
- **Keeping designs out of the app repo** is a first-class option — pick "Default
195
- out of repo" in the wizard, give a path outside the repo, or run
196
- `velloo init --external --name web`. The design is recorded
197
- only on your machine: nothing is written into the repo, the files live under
198
- `~/.velloo/designs/` (or where you chose) outside version control, and agents are
199
- wired through global configs. See
200
- [Local designs outside the repository](./docs/external-local-design-folders.md).
201
-
202
- **Choosing an MCP surface.** Velloo defaults to a compact progressive-disclosure
203
- surface: the agent sees `call_velloo`, `run_velloo_plan`, and `operation_schema`
204
- and pays for a native schema only when it needs one. Clients that do better with
205
- conventional function schemas can use `velloo mcp --surface full`. Both surfaces
206
- carry the whole operation catalogue. See [docs/mcp.md](./docs/mcp.md).
207
-
208
- ### HTML and htmx apps
209
-
210
- Run `velloo init --library html --initial-content scan` from a server-rendered
211
- app (Flask, FastAPI, Django, Rails, Laravel, …), or choose **HTML + htmx** in the
212
- wizard; `init` picks it on its own for an app with templates and no React.
213
- Velloo scans its routes into placeholder screens and copies the stylesheets its
214
- templates link (`hostApp.stylesheets`) from the app's source into the design's
215
- `assets/host/`. A design never contacts the running app: it is a fixed picture
216
- that looks the same to everyone who opens it, with or without the app. To
217
- reproduce a page, capture it from the running app with a capture session (you
218
- sign in in a separate browser if it needs it) and have the agent rebuild it
219
- from the capture. CSS that only exists once the app is built comes from the
220
- capture too (`store_host_files`).
221
-
222
- Use `Html` nodes with semantic `as` tags, native attributes, and `hx-*` props.
223
- The canvas never fires the `hx-*` attributes; `emit_code` keeps them and
224
- returns HTML with the classes and routes it relies on, `velloo emit <screen> --to
225
- page.html` writes native markup for a template, and `emit_theme` writes the CSS
226
- custom properties that inline styles reference. Integrate the markup with your
227
- server's template language and handlers; Velloo does not generate server routes.
228
-
229
- ## Local-first by default
230
-
231
- The local tool is free, complete, account-free, and telemetry-free.
232
-
233
- The CLI makes exactly one anonymous request outside the solo loop: at most daily,
234
- a detached check reads the public npm release version and caches it locally. It
235
- sends no project or account data, and `VELLOO_DISABLE_UPDATE_CHECK=1` turns it
236
- off. Everything else that touches the network is opt-in and gated behind an
237
- explicit `velloo login`:
238
-
239
- - `velloo login` / `velloo publish` — publish boards to a personal or team
240
- workspace and create external review links
241
- - comment tools — read and resolve team and external-review feedback
242
- - `generate_asset` — hosted image/SVG generation, metered against your credits
243
- - `send_feedback` — agent-side product feedback, only when enabled in the folder
244
- config
245
-
246
- You choose when — and whether — to use any of them.
132
+ | **shadcn/ui + Tailwind** | Your own component files, Tailwind `className` |
133
+ | **Material UI** | Real `@mui/material`, the `sx` prop |
134
+ | **Ant Design** | Real antd components, inline `style` |
135
+ | **Chakra UI** | Real Chakra v2 components, `sx` |
136
+ | **No-library React** | Plain HTML primitives, Tailwind or inline `style` |
137
+ | **HTML + htmx** | Your app's CSS, native markup with `hx-*` ([guide](https://velloo.design/docs/guides/html/)) |
138
+ | **Anything else your app renders** | Mantine, a private design system, your own `components/` ([how](https://velloo.design/docs/concepts/repository-components/)) |
139
+
140
+ It connects over MCP to Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI,
141
+ OpenCode, Windsurf, and other MCP clients, and runs on macOS, Linux, and
142
+ Windows. [Framework-native, in depth →](https://velloo.design/docs/concepts/frameworks/)
143
+
144
+ ## Local-first, cloud optional
145
+
146
+ The local tool is free, complete, account-free, and telemetry-free. The only
147
+ request it makes on its own is an anonymous, at-most-daily check of the public
148
+ npm release version (`VELLOO_DISABLE_UPDATE_CHECK=1` turns it off).
149
+
150
+ [Velloo Cloud](https://velloo.design/docs/cloud/) is the opt-in half, behind an
151
+ explicit `velloo login`: published boards, review links, comments that return
152
+ to your canvas, and hosted asset generation. `velloo publish` uploads what your
153
+ machine rendered; the cloud never executes your app code. Reviewers need no
154
+ install, repo access, or paid seat. Plans are on the
155
+ [pricing page](https://velloo.design/pricing/).
247
156
 
248
157
  ## Documentation
249
158
 
250
- | | |
251
- |---|---|
252
- | [docs/architecture.md](./docs/architecture.md) | Design-folder format, providers, renderer, codegen, canvas daemon |
253
- | [docs/mcp.md](./docs/mcp.md) | The MCP tool surface agents talk to |
254
- | [docs/providers.md](./docs/providers.md) | Adding a framework adapter |
255
- | [docs/css-class-channel.md](./docs/css-class-channel.md) | How styling is routed per framework |
256
- | [docs/external-local-design-folders.md](./docs/external-local-design-folders.md) | Local designs outside the repo: storage, agents, relocation, binding |
159
+ **[velloo.design/docs](https://velloo.design/docs/)** has the guides, concepts,
160
+ and reference:
161
+ [CLI](https://velloo.design/docs/reference/cli/) ·
162
+ [MCP tools](https://velloo.design/docs/reference/mcp/) ·
163
+ [Design folder](https://velloo.design/docs/concepts/design-folder/) ·
164
+ [Themes](https://velloo.design/docs/guides/theme/) ·
165
+ [What's new](https://velloo.design/docs/whats-new/) ·
166
+ [FAQ](https://velloo.design/#faq)
167
+
168
+ For how Velloo itself is built, see [`docs/`](./docs): the
169
+ [architecture](./docs/architecture.md), the [MCP surface](./docs/mcp.md),
170
+ [writing a framework adapter](./docs/providers.md), and
171
+ [designs kept outside the repo](./docs/external-local-design-folders.md).
257
172
 
258
173
  ## Contributing
259
174
 
260
175
  Contributions are welcome — bug reports, adapters, docs, and design feedback
261
176
  alike. [`CONTRIBUTING.md`](./CONTRIBUTING.md) covers setup and the checks we
262
- expect to be green; [`AGENTS.md`](./AGENTS.md) explains the repo's architecture
263
- invariants before you change anything load-bearing.
264
-
265
- The short version:
177
+ expect to be green; [`AGENTS.md`](./AGENTS.md) explains the package layout and
178
+ the architecture invariants before you change anything foundational.
266
179
 
267
180
  ```bash
268
181
  bun install # also builds the snapshot manifest
@@ -275,23 +188,6 @@ bun run verify # typecheck + lint + knip + tests
275
188
  Good first issues are labelled
276
189
  [`good first issue`](https://github.com/velloo-design/velloo/labels/good%20first%20issue).
277
190
 
278
- ### Repo layout
279
-
280
- Velloo is a Bun-workspaces monorepo with one-way dependencies:
281
-
282
- | Package | Responsibility |
283
- |---|---|
284
- | `packages/schema` | Zod schemas + TS types for the on-disk design-folder format |
285
- | `packages/protocol` | The wire contract: mutation arguments, typed errors, watch events |
286
- | `packages/provider` | The `ComponentProvider` / `FrameworkAdapter` interface |
287
- | `packages/provider-*` | shadcn, MUI, Ant Design, Chakra, no-library, and HTML/htmx adapters |
288
- | `packages/shadcn-snapshot` | Pinned canvas-safe shadcn fallback, embedded in the binary |
289
- | `packages/renderer` | Design JSON → HTML (and PNG via Playwright) |
290
- | `packages/codegen` | Agent-consumed IR + theme emitters |
291
- | `packages/server` | HTTP + MCP + mutations + theme + watcher |
292
- | `packages/canvas` | Vite/React canvas UI |
293
- | `packages/cli` | The `velloo` binary |
294
-
295
191
  ## Community and support
296
192
 
297
193
  - **Questions, ideas, show-and-tell** →
@@ -200,7 +200,7 @@ archives.
200
200
  | `framer-motion` | 12.42.2 | bundled | © 2018 Framer B.V | https://github.com/motiondivision/motion/ |
201
201
  | `framesync` | 6.1.2 | bundled | © 2019 Framer BV | https://github.com/Popmotion/popmotion |
202
202
  | `get-nonce` | 1.0.1 | bundled | © 2020 Anton Korzunov | https://github.com/theKashey/get-nonce |
203
- | `hono` | 4.13.5 | bundled | © 2021 - present, Yusuke Wada and Hono contributors | https://github.com/honojs/hono |
203
+ | `hono` | 4.13.7 | bundled | © 2021 - present, Yusuke Wada and Hono contributors | https://github.com/honojs/hono |
204
204
  | `html-tokenize` | 2.0.1 | bundled | © James Halliday | https://github.com/substack/html-tokenize |
205
205
  | `isarray` | 0.0.1 | bundled | © 2013 Julian Gruber | https://github.com/juliangruber/isarray |
206
206
  | `isarray` | 1.0.0 | bundled | © 2013 Julian Gruber | https://github.com/juliangruber/isarray |
@@ -297,10 +297,10 @@ archives.
297
297
  |---|---|---|---|---|
298
298
  | `diff` | 9.0.0 | bundled | © 2009-2015, Kevin Decker | https://github.com/kpdecker/jsdiff |
299
299
  | `duplexer2` | 0.1.4 | bundled | © 2013, Deoxxa Development | https://github.com/deoxxa/duplexer2 |
300
- | `fast-uri` | 3.1.7 | bundled | © 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae; © 2021-present The Fastify team | https://github.com/fastify/fast-uri |
300
+ | `fast-uri` | 3.1.8 | bundled | © 2011-2021, Gary Court until https://github.com/garycourt/uri-js/commit/a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae; © 2021-present The Fastify team | https://github.com/fastify/fast-uri |
301
301
  | `hoist-non-react-statics` | 3.3.2 | bundled | © 2015, Yahoo! Inc | https://github.com/mridgway/hoist-non-react-statics |
302
302
  | `react-transition-group` | 4.4.5 | bundled | © 2018, React Community; © 2013-present, Facebook, Inc | https://github.com/reactjs/react-transition-group |
303
- | `source-map-js` | 1.2.1 | installed | © 2009-2011, Mozilla Foundation and contributors | https://github.com/7rulnik/source-map-js |
303
+ | `source-map-js` | 1.2.2 | installed | © 2009-2011, Mozilla Foundation and contributors | https://github.com/7rulnik/source-map-js |
304
304
  | `zrender` | 6.1.0 | bundled | © 2017, Baidu Inc | https://github.com/ecomfe/zrender |
305
305
 
306
306
  ### ISC