leglas-mcp 0.4.1 → 0.6.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 +38 -13
- package/dist/tools.js +4 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
17
|
<p align="center">
|
|
18
|
-
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/
|
|
18
|
+
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/main/.github/assets/screenshots/rail-single.jpg" width="900" alt="The Leglas interface: a rail of three design directions on the left, and the selected one running as the real app filling the rest of the window" />
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
<p align="center"><i>Every direction in the rail, the selected one running as your actual app. Arrow keys flip between them.</i></p>
|
|
@@ -46,7 +46,7 @@ and sessions that clean up after themselves.
|
|
|
46
46
|
## What you can do with Leglas
|
|
47
47
|
|
|
48
48
|
<p align="center">
|
|
49
|
-
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/
|
|
49
|
+
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/main/.github/assets/screenshots/compare-artboards.jpg" width="900" alt="The Leglas interface: a rail of three design directions on the left, and two of them running side by side as the real app, each labelled with its name." />
|
|
50
50
|
</p>
|
|
51
51
|
|
|
52
52
|
<p align="center"><i>Two directions for the same page, running side by side as the actual app.</i></p>
|
|
@@ -66,12 +66,15 @@ and sessions that clean up after themselves.
|
|
|
66
66
|
precise request for your agent, file path included. The composer
|
|
67
67
|
carries its own agent picker, the way every chat you already use
|
|
68
68
|
carries a model picker: the CLIs found on your machine (Claude Code,
|
|
69
|
-
Codex, Cursor) are one click away next to the send button
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
the
|
|
69
|
+
Codex, Cursor) are one click away next to the send button. Leglas checks
|
|
70
|
+
your shell path and the conventional per-user install locations, then asks
|
|
71
|
+
each CLI for its login status so a signed-out agent says so before a run
|
|
72
|
+
instead of failing one. Claude Code and Codex can optionally override effort
|
|
73
|
+
for this project, remembered separately for each agent; `Agent default`
|
|
74
|
+
leaves the CLI's own setting untouched. To
|
|
75
|
+
work from an IDE panel or chat host, choose
|
|
76
|
+
"Connect agent via MCP" for the exact setup and a live confirmation
|
|
77
|
+
once the agent uses a Leglas tool. Each run
|
|
75
78
|
reports in a card above the field: who is working, what file they
|
|
76
79
|
are touching, how long it has been, a stop button while it runs and
|
|
77
80
|
retry when it fails. Your agent, your subscription, no keys.
|
|
@@ -177,13 +180,26 @@ directly above the field. Your agent drains the queue with `npx leglas requests
|
|
|
177
180
|
it with `--clear`. Leglas runs no model of its own; your agent already
|
|
178
181
|
knows your conventions and your taste.
|
|
179
182
|
|
|
183
|
+
Most of what you would type into that field is the part describing where
|
|
184
|
+
the problem is, so you can point at it instead. Press `A` and the preview
|
|
185
|
+
becomes a picker: hovering outlines the element under the pointer,
|
|
186
|
+
clicking drops a numbered pin that takes a note, and dragging marks an
|
|
187
|
+
area and names every element inside it. The page still scrolls, so the
|
|
188
|
+
thing three screens down is as easy to mark as the headline. Annotations
|
|
189
|
+
are a request on their own, so the field can stay empty; leave three and
|
|
190
|
+
send once. Each one carries the element's own words, its tag and classes,
|
|
191
|
+
a path and the box it filled, and the request tells your agent which of
|
|
192
|
+
those to trust first, because the design moves under them by design. One
|
|
193
|
+
whose element has since gone turns amber rather than pointing confidently
|
|
194
|
+
at the wrong thing.
|
|
195
|
+
|
|
180
196
|
The line under the field is the whole status: whether anything is
|
|
181
197
|
listening, what you have queued, and when it has been picked up.
|
|
182
198
|
|
|
183
199
|
<p align="center">
|
|
184
|
-
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/
|
|
185
|
-
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/
|
|
186
|
-
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/
|
|
200
|
+
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/main/.github/assets/screenshots/field-idle.png" width="290" alt="The change field reading: Enter queues it for npx leglas requests" />
|
|
201
|
+
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/main/.github/assets/screenshots/field-queued.png" width="290" alt="The change field reading: one change queued for your agent" />
|
|
202
|
+
<img src="https://raw.githubusercontent.com/FredAmartey/leglas/main/.github/assets/screenshots/field-pickedup.png" width="290" alt="The change field reading: Your agent is on it" />
|
|
187
203
|
</p>
|
|
188
204
|
|
|
189
205
|
<p align="center"><i>Nothing waiting, then a request queued, then an agent that has taken it.</i></p>
|
|
@@ -194,6 +210,13 @@ wrong. `npx leglas watch` in another terminal is the same loop with the
|
|
|
194
210
|
agent's own output in view, and it needs no flag once an agent has been
|
|
195
211
|
picked in the interface.
|
|
196
212
|
|
|
213
|
+
To use a CLI that is not in the picker, keep the custom command explicit
|
|
214
|
+
in the terminal:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
npx leglas watch --run "my-agent {prompt}"
|
|
218
|
+
```
|
|
219
|
+
|
|
197
220
|
### MCP server
|
|
198
221
|
|
|
199
222
|
For agent hosts that cannot run shell commands, `leglas-mcp` exposes the
|
|
@@ -308,8 +331,9 @@ drawn at and the scale it is shown at. If you want the narrow rendering,
|
|
|
308
331
|
that is what the tools popover's "Scale each side to fit" switch is for.
|
|
309
332
|
|
|
310
333
|
Arrows move between directions, `1` to `9` jump straight to one, `R` asks
|
|
311
|
-
for a change to the one you are on, `
|
|
312
|
-
and `B` collapses the rail. Press `?`
|
|
334
|
+
for a change to the one you are on, `A` annotates the design itself,
|
|
335
|
+
`Cmd K` (`Ctrl K` elsewhere) searches and `B` collapses the rail. Press `?`
|
|
336
|
+
for the whole keymap.
|
|
313
337
|
|
|
314
338
|
A small tools widget floats over the stage and can be dragged to any
|
|
315
339
|
corner, because a floating control has a habit of sitting exactly where
|
|
@@ -346,6 +370,7 @@ leglas keep <title> Keep a winner and end the exploration
|
|
|
346
370
|
--count <n> (explore) How many directions, default 3
|
|
347
371
|
--based-on <title> (explore) Variants of an existing direction instead of new ones
|
|
348
372
|
--based-on <title> (add) The direction this preview is a variant of; groups the family
|
|
373
|
+
--asked-for <text> (add) The change that was asked for, in the words that were typed
|
|
349
374
|
--change <path> (classify) A file the direction creates or wires up
|
|
350
375
|
--rewrite <path> (classify) An existing file whose behaviour must change
|
|
351
376
|
--note <text> (add) Second line under the title
|
package/dist/tools.js
CHANGED
|
@@ -90,8 +90,11 @@ export function registerLeglasTools(server, options) {
|
|
|
90
90
|
.describe("Project-relative HTML file for Leglas to serve itself; no dev server needed."),
|
|
91
91
|
basedOn: z.string().optional()
|
|
92
92
|
.describe("Title of the direction this is a variant of; the rail groups the family."),
|
|
93
|
+
askedFor: z.string().optional()
|
|
94
|
+
.describe("The change this direction was asked for, in the words that were typed. " +
|
|
95
|
+
"Pass it verbatim when building a variant someone requested; the rail shows it."),
|
|
93
96
|
},
|
|
94
|
-
}, async ({ title, url, note, tags, branch, file, basedOn }) => inProject(project, (cwd, deps) => runAdd({ preview: { title, url, note, tags, branch, file, basedOn }, json: true, cwd }, deps)));
|
|
97
|
+
}, async ({ title, url, note, tags, branch, file, basedOn, askedFor }) => inProject(project, (cwd, deps) => runAdd({ preview: { title, url, note, tags, branch, file, basedOn, askedFor }, json: true, cwd }, deps)));
|
|
95
98
|
server.registerTool("list", {
|
|
96
99
|
title: "List previews",
|
|
97
100
|
description: "Every preview, shared and local, with its URL and backing branch if any.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "leglas-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Stdio MCP server exposing Leglas to agent hosts that cannot run a shell.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
17
17
|
"zod": "^3.25.76",
|
|
18
|
-
"leglas": "^0.
|
|
18
|
+
"leglas": "^0.6.0"
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"repository": {
|