framery
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@framerydesign the sign-in flow and connect it to the home screen"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Framery
A local-first, agentic design board for solo developers.
You describe what to design. Your coding agent lays it out on a canvas: screens, flows, a design system, a plan. You look at it in the browser, think out loud, and ask for changes. Everything is plain files in your repo, there is no account, no cloud and no build step, and there are no dependencies to install.

Why
Solo developers design in their head, in a chat with an agent, or in a design tool the agent cannot touch. Framery gives the agent a board it can read and edit through tools, and gives you a Figma-like surface to review it.
The agent edits, you review. Every screen is an HTML file. Placement, grouping, arrows and descriptions are tools your agent calls (MCP, HTTP or CLI). The browser is where you look, pan and zoom.
Local-first. Your design lives in
framery/inside your project, next to your code, in git. Nothing leaves your machine.Safe to let an agent loose. Every prompt's changes are one entry in an undo trail: go back from the History panel, or tell the agent to undo.
Made for agents to read, too. A flow is a small JSON file with descriptions for whoever builds the screen.
outlineprints a page as text in reading order, so an agent understands a flow without opening an image.Light. Plain Node, no dependencies. Previews are drawn by the Chrome or Edge you already have. The canvas draws only what is on screen.
Related MCP server: Sheet
What you get
Free canvas | Dotted, full-page, light and dark. Pan, pinch and zoom. Frames of any size (phone, tablet, desktop, custom), groups like Figma sections, flowchart nodes (diamonds for branches), and thin labelled arrows in green, red or grey. |
Arrows that mean something | An arrow starts on the control that causes it ("tap Save") and ends on the screen it opens. Straight, curved or elbow lines. Arrows that cross, overlap or cut through a screen glow, with a count on the zoom bar. |
Details on click | Click a screen, a group, a component or an arrow to read its description. Layers on the left, one row per component instance. |
Components | A button used in forty screens is one definition. Change it once and every frame follows. Repeated markup is detected and can be promoted. |
Play the flow | "Play from here" on a screen (or |
Design system and plan | Pages are just boards. A design system page shows components alone; a plan page is a table (flows against phases) that agents update one cell at a time. |
Export | Any frame, flow or table as png, webp, svg or pdf, from the detail panel. |
History | Undo trail with restore. Each prompt is one step. |
Keys |
|
Install
Requires Node 22 or newer. Previews, measured anchors and export use Chrome or Edge if one is installed; without it everything else still works.
In your project's root folder:
cd my-project
npm install --save-dev github:rafimaliki/framery#v0.6.0
npx framery init
npx frameryThen open http://127.0.0.1:4173 (if that port is busy, the studio takes the next free one and prints it).
init does four things, and is safe to run again:
Copies the framery skill into the folders of the agents you use, and only those (table below), so your agent already knows how to operate the board.
Registers the MCP server for them (existing entries are kept). Restart your agent once so it connects.
Adds the generated folders (
.cache,exports,.history) to.gitignore.Creates
framery/<your-project>/with an empty project, if there is none.
It prints what it wrote and which agents it skipped. It never writes a CLAUDE.md.
Choosing agents
npx framery init --agents claude,codex # only these
npx framery init # no flag: the agents already in this folder or on your PATH, else claude
| Skill folder | MCP server | Instructions |
|
|
|
|
|
|
|
|
|
|
|
|
The choice is saved in framery/config.json, so a bare npx framery init repeats it and doctor checks those agents.
The skill folders are generated copies: refresh them with init, do not edit them.
A design repo with no agent files in it
npx framery init --global --agents claude,codexThis puts the skill and the MCP server in your own home folder (~/.claude/skills and ~/.claude.json,
~/.agents/skills and ~/.codex/config.toml, ~/.omp/agent/skills) and leaves the repo alone. The server is
npx framery mcp --data <absolute path>, so it does not depend on the repo's node_modules. omp has no user-level
MCP file we know of: init prints the line to add by hand. Check it with npx framery doctor --global --agents claude.
Put one line in the repo's AGENTS.md for the next person: the framery skill is installed per user, run
npx framery init --global.
From then on, ask your agent: "Design the sign-in flow in framery", "connect these screens", "add a plan page and mark home as built", "undo that".
No MCP? The same tools run from a shell: npx framery cmd outline '{"page":"flows"}', and
npx framery tools lists them all.
Updating
Nothing updates by itself, and framery never calls the network. Updating is a choice you make:
npx framery doctor # what is installed, and is this project in step?
npm install --save-dev github:rafimaliki/framery#v0.6.0 # pick a release (see CHANGELOG.md, or the tags)
npx framery init # refresh the skill and the MCP entry
npx framery doctor # confirmReleases are git tags. Pin the one you want; the install line above is the whole upgrade.
npm ls frameryshows what you have.Restart a running studio after installing: it keeps running the version it started with. Cached previews are measured again once, by themselves; new files (comments, chat) appear only when first used.
Your design is yours. An upgrade replaces the app in
node_modulesand, withinit, the skill copy. It does not rewriteframery/. A release that changes the data format says so in the changelog and ships its migration; a project saved by a newer version than the one installed is refused with a clear message, never half-read.doctorexits non-zero when the skill or MCP entry is out of date or a project needs a newer version, so you can run it in CI or a hook.
Using it day to day
npx framery start the studio on http://127.0.0.1:4173 or the next free port (--port N: that port or fail; --no-render)
npx framery mcp the stdio MCP server (registered for you by init)
npx framery init wire a project; safe to repeat (--agents claude,codex,omp; --global for your home folder)
npx framery doctor check versions and wiring (the chosen agents only)
npx framery watch print each comment and chat message from the studio as it arrives (an agent runs this under its background monitor; --once prints what is waiting, then exits)
npx framery stop end the studio (and a watcher) properly; safe when nothing runs
npx framery tools every tool and what it does
npx framery cmd <tool> '{}' run a tool from a shell
npx framery render previews, anchor boxes, autoHeight heightsEdit anything on disk (an HTML frame, a CSS file, a page) and open pages update without a refresh. Frames are
ordinary HTML, drawn at their own size with your project's CSS. Give an element id="…" or data-anchor="…" and an
arrow can start or end on it.
The tools an agent gets
outline, get_page, add_item, update_item, rename_item, move_items, move_to_page, move_page, layout_flow, arrange, group_items, connect, check_arrows, check_design,
batch, list_anchors, set_cell (and add_row, add_column, …), set_token, render_frames, export_item, link;
components: create_component, update_component, use_component, promote_component, find_candidates, …;
and history, checkpoint, undo, restore. The skill tells an agent which to reach for.
A project folder
my-project/
framery/
<project>/
project.json title, pages, tokens file, data format
pages/<id>.json items (frame, group, node, table) and arrows; a plan is a page with a table
tokens.css design tokens the frames use
library.json optional: components, with library/<id>.html (fragments with {{props}})
*.html, *.css your frames, any layout
.cache/ previews and measurements (generated, safe to delete)
exports/ files written by export_item
.history/ the undo trailA frame is an HTML file built from your own CSS. Edit pages through the tools, not by hand: they keep arrows valid and groups fitted. The data format and decisions behind it are in docs/design-studio.md.
Status
Early (0.x). Solid for one person designing with one agent. Not built for real-time collaboration, and the canvas is read-only by hand on purpose: placement comes from the agent. Node is the only supported runtime for now.
git clone https://github.com/rafimaliki/framery && cd framery
npm test # node --test, no install step
npm run dev # restart on changeLicense
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-Native design tool - create and edit visual designs with agent assistance
Intelligent product canvas: iterate on your product's design with your coding agent, synced to code.
A design agent in your coding agent's loop: briefs each screen, reviews UX and visual quality.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI coding agents to plan, build, and review websites and product interfaces with a persistent, user-led process, including design direction, component contracts, and implementation review.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to build and edit real HTML/CSS designs on a live canvas through 35 MCP tools, letting them inspect screenshots, computed styles and layout, then export production-ready React or Tailwind code. Humans can refine the same layers visually in a macOS editor.6,734 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides an editable, locally persisted design canvas inside the Codex desktop app, letting an agent create and modify frames, text, vectors, groups, and layouts through MCP tools. Humans can review, drag, pan, zoom, and undo alongside the agent, with edits autosaved to disk and exportable as images, SVG, design JSX, or .fig backups.7 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables coding agents to generate and modify real frontend source code while users inspect, compare, and interact with the result on an infinite canvas.121 npmAGPL 3.0