Everything Ilse does.
Point, adjust it in the panel, or describe it — in the real app. What can be applied without AI, Ilse applies; the rest goes to your agent.
Point and say
Click an element, select some text or draw an area, and write what should change. Ilse finds the file and line in the code and hands the request to your agent.
An area drawn over empty space becomes a create request: say what should go there.
Property panel
Adjust it yourself: position (with X/Y), size (Fixed · Hug · Fill), flow, alignment, gap, padding and margin per side, typography and text alignment, colors, stroke, radius, opacity and effects (shadow and blur). Values come from your project's scale and tokens, and you see the change right away.
Lists start with None (zero). In Stroke, + adds one and − takes it away.
Only this one or all
When the element belongs to a component repeated on the page, choose: only this one, or All · N — and the preview shows the change on every instance at once.
Components in the panel
Select a component and the panel shows its props and variants, read from your code (types, cva(), how it's used) or from a library's types. Pick another variant and Ilse rewrites that prop where this instance is written, without AI.
An edit on one instance stays on it. To change them all, choose All.
Duplicate
Duplicate a list row and the agent adds a new item to its data; duplicate any other block and it writes a copy of the JSX. Drag the copy wherever you want and restyle it in the panel: it lands there, with that style, and the original stays as it was.
Move for real
Drag to reorder, or into and out of containers. The drag moves what is selected, not its parent. The page re-flows live, and the agent changes the order at the source — in the JSX or in the array behind the list.
Resize
Drag the handles, with snap-to-grid, and the page reacts as you drag. The ↰ button moves the selection up to the parent — in a chart, from the <svg> to the box around it.
Inside an SVG, a click takes the whole <svg>; ⌘-click (Ctrl) takes the exact element, such as one path of an icon.
Edit text
Text elements get a Text field at the top of the panel. Text written right in the JSX changes without AI; text from a variable, prop or translation goes to the agent, which changes it at the source.
Remove an element
Remove element at the bottom of the panel, or the Delete key while the note is empty. From a .map list, only that item goes — unless Apply to says all.
Pencil
Sketch on the page: circle, strike, point. The strokes are read and sent along with the note.
Reference images
Paste a screenshot from Figma or another screen, or upload one. Images become a visual reference for the agent; SVGs are copied into the project as assets.
Pause animations
Freeze tooltips, toasts and dropdowns to annotate what disappears too fast.
Component library
Your project's components in one tab. Search by name or by what a component is for, see where each one is on the page, and open its Component section.
Dragging components onto the page, and their copies, come with Ilse Pro.
Create design system
One click (or ilse ds) and Ilse writes .ilse/ds/DESIGN.md from your code: your components with their props and variants, and your tokens (colors, spacing, radius, type, shadows). No AI, done in seconds.
Add to AGENTS.md (or CLAUDE.md) points any agent at it, so your agent uses your components and tokens even with Ilse closed.
The cheapest step that works
One Run sends everything together. Panel edits that map to a Tailwind class are applied by Ilse itself, instantly and without AI. Small requests go to your agent's fast model; bigger changes, to the full agent.
You watch each fix land on the page, and you can stop the agent at any time.
Undo
⌘Z steps back while you adjust. Once applied, it restores the files of the last change; ⇧⌘Z redoes it. No need to ask the AI to revert, and the history is still there after you restart Ilse.
No reload
What you saw in preview stays on screen until the page shows the real change. If it doesn't appear on its own, Ilse asks the framework to render again, keeping the state. Asking you to reload is the last resort.
The page doesn't break
After a change, a new error on the page (a duplicate React key, an unhandled exception) shows up with Ask for a fix, Undo and Ignore. And if the agent touches another screen, the toolbar tells you.
CI stays green
After each change, Ilse runs your project's typecheck and the tests that cover what changed. What the change broke, the agent fixes before calling it done. Failures that were already there don't count against it.
Project memory
In Settings → Project memory: the design changes Ilse made here, with your note, and what isn't committed yet.
Your agent, your account
Ilse runs the Claude Code, Codex, Cursor CLI or Gemini CLI you already use, on your account — or your agent pulls the annotations over MCP. Ilse has no account, key or server of its own, and nothing leaves your machine.
Before calling your agent, Ilse does the searching for it. Every request arrives with:
- ▸The element's file and line, with only the lines that matter
- ▸The component that wrote the JSX, where it's defined and where it's used
- ▸Styles filtered by intent ("wrong color" sends only color)
- ▸Your project's design tokens and DESIGN.md, when there is one
- ▸Ilse's latest changes to that file, so a new fix doesn't undo an earlier one
- ▸Your note and the commands from the panel, drags and resizes
- ▸Pasted references and the scope: only this one or all