velloo 0.1.0 → 0.3.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 +67 -41
  2. package/canvas/assets/index-CqXW6xA_.js +29 -0
  3. package/canvas/assets/index-gB0StCrx.css +2 -0
  4. package/canvas/assets/lucide-all-C_CNpsMs.js +1 -0
  5. package/canvas/assets/{radix-C3HaOB-d.js → radix-gmpYzWRH.js} +1 -1
  6. package/canvas/index.html +3 -3
  7. package/chunk-0zen7bzb.js +3 -0
  8. package/{chunk-h0c36khx.js → chunk-1jzhw3p4.js} +1 -1
  9. package/chunk-1n5kmsxb.js +2 -0
  10. package/{chunk-k6ferbam.js → chunk-2fgfex9b.js} +1 -1
  11. package/{chunk-t2ttkxe9.js → chunk-3g3dqej3.js} +1 -1
  12. package/chunk-3tmsrvaj.js +2 -0
  13. package/chunk-49cgk5s2.js +2 -0
  14. package/{chunk-e2ag33vd.js → chunk-4nqr089t.js} +2 -2
  15. package/chunk-52hxv18g.js +6 -0
  16. package/chunk-5ezzc1h2.js +688 -0
  17. package/{chunk-74skmg76.js → chunk-5wv5a52y.js} +1 -1
  18. package/chunk-6nzqhfqq.js +5 -0
  19. package/{chunk-fgw3hp2v.js → chunk-6zz9kfbd.js} +1 -1
  20. package/chunk-788t8y5x.js +2 -0
  21. package/chunk-7bvvbsqy.js +26 -0
  22. package/{chunk-cep3ktr3.js → chunk-7k7dpj5y.js} +1 -1
  23. package/{chunk-hs2j6s1v.js → chunk-7njj1qmq.js} +8 -31
  24. package/{chunk-8ssr8a8w.js → chunk-80fjfyha.js} +3 -6
  25. package/chunk-94vx1yb0.js +3 -0
  26. package/{chunk-n5007jcz.js → chunk-9f22qnge.js} +1 -1
  27. package/chunk-9g4tr0r6.js +2 -0
  28. package/{chunk-1gx45384.js → chunk-9nhw49vv.js} +7 -8
  29. package/{chunk-2z0k59hz.js → chunk-as08hzp3.js} +1 -1
  30. package/chunk-bhx8k09w.js +3 -0
  31. package/chunk-bpeezw7w.js +3 -0
  32. package/{chunk-b2ebm1t3.js → chunk-bvmtq0vn.js} +2 -2
  33. package/{chunk-w5rzk6ms.js → chunk-c4fym47a.js} +64 -20
  34. package/{chunk-d385435m.js → chunk-c6hywdvq.js} +1 -1
  35. package/{chunk-jnsfgtn9.js → chunk-cvn689d5.js} +1 -1
  36. package/chunk-cxzkkn12.js +2 -0
  37. package/{chunk-56vqqr8s.js → chunk-d9p6s05n.js} +1 -1
  38. package/{chunk-5js0qw32.js → chunk-dsks52m7.js} +1 -1
  39. package/{chunk-b7j86xq7.js → chunk-hfzg98c8.js} +1 -1
  40. package/{chunk-7e39xe21.js → chunk-js6mz7h1.js} +1 -1
  41. package/chunk-jx11jvq8.js +7 -0
  42. package/{chunk-2vx420g2.js → chunk-k6n249vb.js} +2 -2
  43. package/chunk-k7sehkm8.js +3 -0
  44. package/{chunk-k784090q.js → chunk-k9219kmj.js} +1 -1
  45. package/{chunk-65wb0g7d.js → chunk-kz4423th.js} +1 -1
  46. package/{chunk-g02nd9hn.js → chunk-m3czg1tt.js} +1 -1
  47. package/chunk-maz6z7tz.js +5 -0
  48. package/{chunk-rksq3w72.js → chunk-n9kcxaj7.js} +2 -2
  49. package/chunk-n9t36h0q.js +2 -0
  50. package/chunk-nr3ej3qf.js +5 -0
  51. package/{chunk-bk8b7f9a.js → chunk-nte0t7v3.js} +4 -3
  52. package/{chunk-kxk5x7g6.js → chunk-nycs0z7h.js} +1 -1
  53. package/{chunk-79ykzywe.js → chunk-pjtg3wnm.js} +1 -1
  54. package/chunk-qdnb2t6a.js +3 -0
  55. package/chunk-qgwhd4n6.js +86 -0
  56. package/chunk-sn9vg42q.js +2 -0
  57. package/{chunk-7p7ha0qk.js → chunk-t5bb30zy.js} +1 -1
  58. package/chunk-tbmkq7wy.js +6 -0
  59. package/chunk-tc4mzzfw.js +2 -0
  60. package/chunk-td5z2sm4.js +6 -0
  61. package/chunk-wa6qamwh.js +3 -0
  62. package/chunk-wcqqx6tz.js +2 -0
  63. package/chunk-wzngjjeb.js +10 -0
  64. package/chunk-xyfed1j0.js +2 -0
  65. package/chunk-y5r2w2z3.js +2 -0
  66. package/chunk-yeh9gb5w.js +3 -0
  67. package/cli.js +1 -1
  68. package/launcher.cjs +1 -1
  69. package/package.json +3 -3
  70. package/pkgs/helpers/src/descriptors.ts +7 -1
  71. package/pkgs/provider-antd/src/index.ts +1 -0
  72. package/pkgs/provider-chakra/src/index.ts +1 -0
  73. package/pkgs/provider-mui/src/index.ts +1 -0
  74. package/pkgs/provider-none/src/index.ts +42 -1
  75. package/pkgs/provider-none/src/intro.ts +2 -2
  76. package/pkgs/schema/src/config.ts +27 -1
  77. package/pkgs/schema/src/extension.ts +26 -0
  78. package/pkgs/schema/src/index.ts +18 -0
  79. package/pkgs/schema/src/migrate.ts +57 -4
  80. package/pkgs/schema/src/node.ts +99 -0
  81. package/pkgs/schema/src/repo.ts +98 -16
  82. package/pkgs/schema/src/screen.ts +7 -0
  83. package/pkgs/schema/src/svg-sanitize.ts +472 -59
  84. package/pkgs/shadcn-snapshot/dist/manifest.json +9 -1
  85. package/skills/velloo-setup/SKILL.md +70 -48
  86. package/canvas/assets/index-BCvDZiBo.css +0 -2
  87. package/canvas/assets/index-BcBJ11d2.js +0 -28
  88. package/canvas/assets/lucide-all-BdEyryfF.js +0 -1
  89. package/chunk-1bywxgc5.js +0 -4
  90. package/chunk-1y50g9vp.js +0 -2
  91. package/chunk-1yhc252b.js +0 -3
  92. package/chunk-2mv65qxs.js +0 -5
  93. package/chunk-329e3phg.js +0 -451
  94. package/chunk-40657ggd.js +0 -10
  95. package/chunk-582y60bv.js +0 -2
  96. package/chunk-5x173xay.js +0 -2
  97. package/chunk-75wbh438.js +0 -2
  98. package/chunk-7dggmqwq.js +0 -53
  99. package/chunk-946pcnt5.js +0 -5
  100. package/chunk-9vg3yafz.js +0 -3
  101. package/chunk-aapybh30.js +0 -6
  102. package/chunk-bjnhhsak.js +0 -2
  103. package/chunk-dt03awr1.js +0 -2
  104. package/chunk-erwfk47h.js +0 -3
  105. package/chunk-mq4znqv2.js +0 -2
  106. package/chunk-nfr3q7mg.js +0 -5
  107. package/chunk-nsqs1bqf.js +0 -2
  108. package/chunk-pphgrsxa.js +0 -2
  109. package/chunk-qpvj6kzq.js +0 -6
  110. package/chunk-qwv7xkms.js +0 -2
  111. package/chunk-tmtzxcs5.js +0 -2
  112. package/chunk-xr6f94rj.js +0 -2
  113. package/chunk-y0zxzefg.js +0 -5
  114. package/chunk-zf3xc1wz.js +0 -2
package/README.md CHANGED
@@ -9,8 +9,11 @@
9
9
 
10
10
  **Design like a developer. Build like a designer.**
11
11
 
12
- A local, agent-driven design canvas for React apps. Your coding agent redesigns
13
- a real screen; you direct the work visually; the result goes back into your app.
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.
14
17
 
15
18
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-FFAB1F.svg)](https://www.apache.org/licenses/LICENSE-2.0)
16
19
  [![npm](https://img.shields.io/npm/v/velloo.svg?color=FFAB1F)](https://www.npmjs.com/package/velloo)
@@ -32,20 +35,13 @@ a real screen; you direct the work visually; the result goes back into your app.
32
35
 
33
36
  ## What is Velloo?
34
37
 
35
- You have a React screen that works and looks wrong. Redesigning it today means
36
- rebuilding it somewhere it isn't — a Figma file, a throwaway prototype, a chat
37
- window full of JSX you paste and repair.
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.
38
41
 
39
- Velloo puts the canvas next to your code instead. Your AI agent recreates the
40
- screen as real components, explores alternatives, and checks its work visually
41
- against the running app. You steer from the canvas: pick a direction, comment on
42
- a frame, reject a variant. When a direction wins, the agent carries it back into
43
- your application in your conventions.
44
-
45
- Designs live beside your code as readable JSON, in your repo or in a separate
46
- one. The whole loop is local and needs no account. When a review benefits from
47
- other people, publish a board to a team workspace or send an external link;
48
- comments come back to the local canvas for the agent to resolve.
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.
49
45
 
50
46
  **No Figma seats. No paste-ready JSX you babysit. No translation tax.**
51
47
 
@@ -76,13 +72,15 @@ velloo init # interactive wizard
76
72
  velloo run velloo # the design folder it just created
77
73
  ```
78
74
 
79
- - **Canvas** → http://localhost:7300
80
- - **MCP server** (for your agent) → http://localhost:7301/mcp
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.
81
79
 
82
80
  Restart your agent so it picks up the new MCP config, then point it at a real
83
81
  screen:
84
82
 
85
- > "Open the `velloo` design folder, recreate `/settings/billing` on a new board,
83
+ > "Use `velloo` to recreate the design for the billing page,
86
84
  > then show me three takes on the plan-comparison section."
87
85
 
88
86
  That's the loop. The agent builds on the canvas, screenshots its own work, and
@@ -90,16 +88,43 @@ you react to pixels instead of to a diff.
90
88
 
91
89
  ### What `init` does
92
90
 
93
- The wizard creates the design folder (default `velloo/`) and wires up your agent
94
- — Claude Code, Cursor, Codex, Continue, opencode, Droid, Cline, Gemini CLI,
95
- Windsurf, and VS Code/Copilot, each through its native MCP configuration and
96
- guidance format. You can **start from scratch** (component library + a sample or
97
- blank board) or **scan what you have**: scanning detects your shadcn and Tailwind
98
- versions, imports your real theme from `globals.css`, and builds one screen per
99
- route, so the canvas opens in your brand colors.
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.
95
+
96
+ ### Ways to use Velloo
97
+
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.
104
+
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.
108
+
109
+ ### Velloo Cloud and `velloo publish`
110
+
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:
114
+
115
+ ```bash
116
+ velloo login
117
+ velloo publish velloo
118
+ ```
119
+
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.
100
124
 
101
- `init` never writes into your app's source. It only creates the design folder
102
- and the agent config.
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.
103
128
 
104
129
  ## Features
105
130
 
@@ -127,9 +152,8 @@ and the agent config.
127
152
 
128
153
  | | |
129
154
  |---|---|
130
- | **OS** | macOS (arm64, x64) and Linux (arm64, x64; glibc and musl). Windows via WSL. |
131
- | **Runtime** | None to install — the CLI ships its own Bun. |
132
- | **Your app** | React. shadcn + Tailwind gets the deepest integration; MUI, Ant Design, Chakra, and no-library folders are supported. |
155
+ | **OS** | macOS (arm64, x64), Linux (arm64, x64; glibc and musl), and Windows (x64, arm64) through npm. The standalone installer is macOS and Linux only. |
156
+ | **Your app** | React. shadcn + Tailwind, MUI, Ant Design, Chakra, and no-library folders are supported. |
133
157
  | **Screenshots** | Optional headless Chromium, one command away (below). |
134
158
 
135
159
  ### Screenshots — the one optional extra
@@ -147,26 +171,28 @@ If a screenshot ever fails, run exactly that command and retry.
147
171
 
148
172
  ## CLI essentials
149
173
 
150
- Two files define the model: a repo-root **`velloo.json`** names each design
151
- folder as a project (several can coexist in a monorepo), and
152
- **`.design/config.json`** marks a directory as a design folder. Every
153
- folder-taking command accepts a project name or a path, and resolves through
154
- `velloo.json` when you pass nothing.
174
+ A **design** is a folder with a `.design/config.json`, which holds its name. A
175
+ repo-root **`velloo.json`** lists where the repo's designs are (several can
176
+ coexist in a monorepo). Every design-taking command accepts a design name or a
177
+ path, and resolves through `velloo.json` when you pass nothing. With several
178
+ designs, a connected agent is told which one it is on and can switch between them.
179
+ Commands that take something else as their argument, like `emit <screen>`, take
180
+ the design as `--design`.
155
181
 
156
182
  | Command | What it does |
157
183
  |---|---|
158
184
  | `velloo init` | Create a design folder and wire up your agent |
159
- | `velloo run [folder]` | Start the canvas + MCP daemon (`--port` / `--mcp-port` if 7300/7301 are busy) |
160
- | `velloo folder list\|add\|remove` | Manage the repo's design folders |
185
+ | `velloo run [design]` | Start the canvas + MCP daemon (`--port` to pick the canvas port) |
186
+ | `velloo design list\|add\|remove\|move\|rename\|upgrade` | Manage the repo's designs |
161
187
  | `velloo emit` / `velloo render` | Implementation IR for your agent / a PNG of a screen |
162
- | `velloo publish` | Publish a board for review (`--list`, `--remove`) |
163
- | `velloo upgrade` | Update the install *and* migrate the folder format (`--check` to preview) |
188
+ | `velloo publish [design]` | Publish a board for review (`publish list\|remove` manage what you've published) |
189
+ | `velloo upgrade` | Update the install *and* migrate the design format (`--check` to preview) |
164
190
 
165
191
  `Ctrl-C` stops the server.
166
192
 
167
193
  **Keeping designs out of the app repo** is a first-class option — pick "Default
168
194
  out of repo" in the wizard, give a path outside the repo, or run
169
- `velloo init --external --project web --non-interactive`. The design is recorded
195
+ `velloo init --external --name web`. The design is recorded
170
196
  only on your machine: nothing is written into the repo, the files live under
171
197
  `~/.velloo/designs/` (or where you chose) outside version control, and agents are
172
198
  wired through global configs. See
@@ -220,7 +246,7 @@ The short version:
220
246
  bun install # also builds the snapshot manifest
221
247
  bun run --cwd packages/canvas build # build the canvas SPA
222
248
  bun run velloo init /tmp/velloo-smoke
223
- bun run velloo run /tmp/velloo-smoke # canvas :7300, MCP :7301
249
+ bun run velloo run /tmp/velloo-smoke # canvas on :7300
224
250
  bun run verify # typecheck + lint + knip + tests
225
251
  ```
226
252