velloo 0.1.0 → 0.2.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.
- package/README.md +66 -40
- package/canvas/assets/index-ClaBqcaS.js +28 -0
- package/canvas/assets/lucide-all-iIF-pmzN.js +1 -0
- package/canvas/index.html +1 -1
- package/{chunk-k6ferbam.js → chunk-08sv3k41.js} +1 -1
- package/{chunk-74skmg76.js → chunk-0fe83yzt.js} +1 -1
- package/{chunk-n5007jcz.js → chunk-1h55s5he.js} +1 -1
- package/{chunk-5js0qw32.js → chunk-2c7jbx46.js} +1 -1
- package/chunk-308ynsxd.js +2 -0
- package/{chunk-w5rzk6ms.js → chunk-3e8vez4d.js} +2 -2
- package/{chunk-bk8b7f9a.js → chunk-40xgcth8.js} +4 -3
- package/chunk-4dn75m6t.js +3 -0
- package/chunk-4fj5tahv.js +3 -0
- package/chunk-6nqghjda.js +3 -0
- package/chunk-6w6ch4ce.js +2 -0
- package/chunk-735ezz23.js +86 -0
- package/chunk-7eq7nx37.js +7 -0
- package/chunk-7eyb8yrf.js +6 -0
- package/{chunk-8ssr8a8w.js → chunk-80fjfyha.js} +3 -6
- package/{chunk-b7j86xq7.js → chunk-80r93t2e.js} +1 -1
- package/chunk-94vx1yb0.js +3 -0
- package/{chunk-g02nd9hn.js → chunk-a84n72m2.js} +1 -1
- package/chunk-ampmdzz4.js +10 -0
- package/chunk-avns4dbf.js +2 -0
- package/{chunk-kxk5x7g6.js → chunk-ayrb3qnm.js} +1 -1
- package/{chunk-fgw3hp2v.js → chunk-bwnvcncx.js} +1 -1
- package/chunk-ccszg02q.js +5 -0
- package/{chunk-jnsfgtn9.js → chunk-cvn689d5.js} +1 -1
- package/{chunk-65wb0g7d.js → chunk-dg6z4vdd.js} +1 -1
- package/chunk-dgwjpbp9.js +3 -0
- package/{chunk-hs2j6s1v.js → chunk-dy41n60j.js} +8 -31
- package/{chunk-e2ag33vd.js → chunk-ek71z2fv.js} +2 -2
- package/{chunk-h0c36khx.js → chunk-er1fxb7d.js} +1 -1
- package/{chunk-xr6f94rj.js → chunk-eyr8hrzf.js} +1 -1
- package/{chunk-56vqqr8s.js → chunk-fsbsksga.js} +1 -1
- package/{chunk-t2ttkxe9.js → chunk-hcb68zt7.js} +1 -1
- package/chunk-j11fyeqh.js +2 -0
- package/{chunk-d385435m.js → chunk-jb21jkp1.js} +1 -1
- package/{chunk-7e39xe21.js → chunk-jfx9xjmr.js} +1 -1
- package/{chunk-b2ebm1t3.js → chunk-jr0ss0mm.js} +1 -1
- package/chunk-jv0xggh0.js +2 -0
- package/chunk-k17gfwq3.js +2 -0
- package/chunk-mh2pr7cq.js +5 -0
- package/chunk-mnapdp1y.js +2 -0
- package/chunk-n9gs6yx9.js +2 -0
- package/chunk-ngnymg2q.js +3 -0
- package/{chunk-79ykzywe.js → chunk-pjtg3wnm.js} +1 -1
- package/{chunk-2z0k59hz.js → chunk-pp86v6m6.js} +1 -1
- package/chunk-r22epxz2.js +3 -0
- package/chunk-rgasy862.js +5 -0
- package/{chunk-7p7ha0qk.js → chunk-rpwpeph5.js} +1 -1
- package/{chunk-k784090q.js → chunk-sjgqnykd.js} +1 -1
- package/chunk-sn3x2m0m.js +6 -0
- package/{chunk-mq4znqv2.js → chunk-t448rrfr.js} +1 -1
- package/{chunk-329e3phg.js → chunk-tdsk5wxa.js} +25 -25
- package/{chunk-2vx420g2.js → chunk-v40fn08f.js} +1 -1
- package/chunk-vdkrbzh1.js +2 -0
- package/{chunk-1gx45384.js → chunk-vgmr98cv.js} +7 -8
- package/chunk-vsv8z729.js +6 -0
- package/chunk-x4f4k9pp.js +26 -0
- package/{chunk-cep3ktr3.js → chunk-xt5ayg7g.js} +1 -1
- package/{chunk-rksq3w72.js → chunk-ydhwv29b.js} +1 -1
- package/chunk-zb6hc1y0.js +2 -0
- package/cli.js +1 -1
- package/launcher.cjs +1 -1
- package/package.json +3 -3
- package/pkgs/schema/src/config.ts +8 -1
- package/pkgs/schema/src/index.ts +8 -0
- package/pkgs/schema/src/migrate.ts +57 -4
- package/pkgs/schema/src/repo.ts +98 -16
- package/pkgs/schema/src/svg-sanitize.ts +472 -59
- package/skills/velloo-setup/SKILL.md +1 -1
- package/canvas/assets/index-BcBJ11d2.js +0 -28
- package/canvas/assets/lucide-all-BdEyryfF.js +0 -1
- package/chunk-1bywxgc5.js +0 -4
- package/chunk-1y50g9vp.js +0 -2
- package/chunk-1yhc252b.js +0 -3
- package/chunk-2mv65qxs.js +0 -5
- package/chunk-40657ggd.js +0 -10
- package/chunk-582y60bv.js +0 -2
- package/chunk-5x173xay.js +0 -2
- package/chunk-75wbh438.js +0 -2
- package/chunk-7dggmqwq.js +0 -53
- package/chunk-946pcnt5.js +0 -5
- package/chunk-aapybh30.js +0 -6
- package/chunk-bjnhhsak.js +0 -2
- package/chunk-dt03awr1.js +0 -2
- package/chunk-erwfk47h.js +0 -3
- package/chunk-nfr3q7mg.js +0 -5
- package/chunk-nsqs1bqf.js +0 -2
- package/chunk-pphgrsxa.js +0 -2
- package/chunk-qpvj6kzq.js +0 -6
- package/chunk-qwv7xkms.js +0 -2
- package/chunk-tmtzxcs5.js +0 -2
- package/chunk-y0zxzefg.js +0 -5
- 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
|
-
|
|
13
|
-
|
|
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
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
16
19
|
[](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
|
-
|
|
36
|
-
|
|
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.
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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**
|
|
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
|
-
> "
|
|
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
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
`
|
|
102
|
-
|
|
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
|
|
|
@@ -128,8 +153,7 @@ and the agent config.
|
|
|
128
153
|
| | |
|
|
129
154
|
|---|---|
|
|
130
155
|
| **OS** | macOS (arm64, x64) and Linux (arm64, x64; glibc and musl). Windows via WSL. |
|
|
131
|
-
| **
|
|
132
|
-
| **Your app** | React. shadcn + Tailwind gets the deepest integration; MUI, Ant Design, Chakra, and no-library folders are supported. |
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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 [
|
|
160
|
-
| `velloo
|
|
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 (
|
|
163
|
-
| `velloo upgrade` | Update the install *and* migrate the
|
|
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 --
|
|
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
|
|
249
|
+
bun run velloo run /tmp/velloo-smoke # canvas on :7300
|
|
224
250
|
bun run verify # typecheck + lint + knip + tests
|
|
225
251
|
```
|
|
226
252
|
|