Caret / Guides

A visual editor for Cursor, and what changed in 2026

Cursor has had two kinds of visual editing. One let you drag a slider and change a colour yourself. That panel has been removed. The one left is Design Mode, where you point at the page and the agent makes the change. Here is what each does, and what to use if you want to edit directly.

Updated 6 October 2026 · 7 min read · Caret is not affiliated with Cursor or Anysphere.

The Cursor logo on a phone screen

The short history

WhenWhat changed
10 Dec 2025Cursor 2.2 adds a layout and style editor to the built-in browser: a sidebar and component tree, drag to rearrange, sliders and colour pickers for styles, React props you can flip. Pressing Apply hands the changes to the agent, which rewrites the code (announcement).
2 Apr 2026Cursor 3.0 introduces the Agents window and Design Mode, for annotating and targeting UI elements in the browser.
Mid 2026The CSS inspector panel for tweaking padding, colours and tokens is removed. A Cursor staff member confirmed on the forum on 20 July 2026 that it “was intentionally removed,” and pointed people to Design Mode.

Dates are from Cursor’s changelog and forum as of 6 October 2026. Cursor ships often; check the changelog for anything newer.

What Design Mode does today

Design Mode lives in the browser inside Cursor’s Agents window, not in the code editor. Open a browser tab, load your dev server, and toggle it with ⌘⇧D. Then, per Cursor’s docs, you can:

The agent receives the element’s xpath, its React component, attributes, computed styles, props from the fiber tree and a screenshot, then edits your source. It works on your real running app, which is its big advantage: there is nothing to sync, because the thing you point at is the thing you ship.

Every change is a prompt, though. Making the heading 4 pixels smaller is a round trip through a model, with the cost and variance that comes with it.

What people are missing

The forum threads that rank for this search are mostly people asking for the direct editor back. From the thread about the inspector:

And on 27 September 2026 a Cursor staff member wrote that “designers and front-end developers regularly ask to bring back direct visual editing in Design Mode.” There has been no announcement that it is coming back.

The underlying point is fair. Some changes are judgement calls and an agent is the right tool. Others are a value: this colour, that size, these words. Sending a value through a model adds cost and a chance of getting something slightly different back.

Editing directly, beside Cursor

Caret is a free, open-source (Apache-2.0) desktop app that keeps your project’s design in the repo as real React, in a .caret/ folder next to your app. It is a separate app, not a Cursor extension, and it opens the same folder Cursor does.

caret · index.tsx
Right-click text, a colour or an image and change it. The edit is written into the page’s file.

The split is the one the forum keeps asking for:

The trade-off is honest to state: Caret edits the design layer, not your app. Your src/ is untouched until you sync, at which point Caret works out which design files changed and an agent makes the app match, in whatever framework the app uses. If you want to point at your live app and have it changed in place, that is what Design Mode is for. If you want a place to get the design right first, with every change as a reviewable diff, that is what Caret is for. They work together.

Using Caret with Cursor

Your tokens, in Cursor’s rules

Caret writes a rule file at .cursor/rules/caret-design-layer.mdc with alwaysApply: true in its frontmatter. Cursor applies always-apply rules to every chat session, so when you ask Cursor to build something, it already has your colours, type scale, spacing and radius. Caret rewrites that file whenever a token changes. It also keeps the same block in AGENTS.md, which Cursor reads too.

Cursor talking to Caret over MCP

Caret runs a local MCP server per open project, so an agent can read your pages and tokens and run the design-to-app sync. Caret generates the config for you (open a project, then Backend → Connect your own agent), because the port and token change every launch. For Cursor it goes in .cursor/mcp.json:

{
  "mcpServers": {
    "caret": {
      "type": "http",
      "url": "<URL from Caret>",
      "headers": { "Authorization": "Bearer <TOKEN from Caret>" }
    }
  }
}

To be straight about it: the Claude Code and Codex connections have been tested end to end. The Cursor snippet follows Cursor’s documented format but has not been tested yet. If it does not work for you, open an issue.

MCP runs one way here. Cursor can call into Caret, but Caret cannot push work out to Cursor, so designing itself happens in Caret’s window, on Caret’s own backend. You sign that backend in with a provider you already have, such as a ChatGPT plan, GitHub Copilot, or an API key. The sync is the part you can hand to Cursor.

Questions

Click to change it. Let Cursor keep the code.

Caret is a free, open-source desktop app that opens the same folder as Cursor. Edits on its canvas land in files in .caret/, your tokens land in .cursor/rules, and your app changes when you sync.

All platforms

Free, Apache-2.0, no account. macOS, Windows and Linux. Needs Node.js for the live canvas.