penna
Enables designs to use Google Fonts when rendering HTML/CSS screens.
Enables designs to use Lucide icons when rendering screens.
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., "@pennaBuild a pricing page with three plan cards and a FAQ section."
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.
penna
An agent-first design canvas that lives in your repo, like Storybook does.
Designs live in
.penna/at your project root, one JSON file per page, so they diff and merge in git.Agents edit them through one tool,
execute, that runs a JavaScript snippet. One call can build a whole screen.Designs render as real HTML and CSS (flexbox, grid, Tailwind v4, Google Fonts, Lucide icons), so agents use what they already know.
A component on any page can be used on every page, so a design-system page feeds all your screens.
pennaopens a light, view-only canvas on localhost: pan, zoom, pages, layers, and live updates while the agent works.
Quick start
Requires Node 22.18 or later. Screenshots use your installed Google Chrome.
cd your-project
npx @marcoazzurrini/penna init # creates .penna/
claude mcp add penna -- npx -y @marcoazzurrini/penna mcp # gives Claude Code the execute tool
npx @marcoazzurrini/penna # opens the viewer at http://localhost:6060Install it globally if you prefer a short command: npm i -g @marcoazzurrini/penna, then run penna.
Other MCP clients: run npx -y @marcoazzurrini/penna mcp from the project folder over stdio. Agents without MCP can use the CLI: penna exec -f design 'Print(Tree())'.
Related MCP server: lucius
Viewer
Drag or scroll to pan. Pinch, or Cmd/Ctrl + scroll, to zoom.
Click to select a node. The agent can read it with
Selection(). Esc selects the parent.Shift+1 fits everything. Shift+2 zooms to the selection.
Cmd/Ctrl+Z undoes the agent's last change. Shift+Cmd/Ctrl+Z redoes it.
"Follow agent" jumps to the page the agent is editing.
Agent API
See skill/SKILL.md, an Agent Skill. Agents read it through the read_skill MCP tool, or with penna skill.
How it works
penna devruns a small Node server. It owns the documents, writes.penna/*.json, and pushes changes to the viewer over a WebSocket.executesnippets run against a copy of the document. A failed call changes nothing and can be fixed with small find/replace edits instead of resending it.Screenshots and layout checks use a headless Chrome (via
playwright-core) that runs the same renderer as the viewer.The viewer moves the whole canvas with one CSS transform, skips off-screen screens with
content-visibility, and only re-renders screens whose JSON changed.
Security
Snippets run with your user's permissions, so only connect agents you would trust with a shell. The local server is protected against websites and DNS rebinding. See SECURITY.md.
Development
npm install
npm run build # client bundle and CLI
npm test # node:test suite
npm run dev # run the CLI from source (node src/cli.ts dev)
npm link # use your local build as `penna` everywhereReleasing
Releases use Changesets and npm trusted publishing.
Add a changeset to each pull request:
npx changeset.When it merges, the Release workflow opens a "chore: version packages" pull request with the version bump and
CHANGELOG.md.Merging that pull request publishes to npm with provenance.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent-Native design tool - create and edit visual designs with agent assistance
A design agent in your coding agent's loop: briefs each screen, reviews UX and visual quality.
Let your AI agent build, preview and update web apps, download source and publish when you allow it.
Your AI agent designs editable, clickable UI prototypes on a live canvas.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read and manipulate visual UI designs drawn on a canvas, translating them into precise JSON specs for production code generation.11,972 npm4ISC
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to render and interact with rich HTML one-pagers on a local canvas, with tools for rendering, commenting, selection, and status queries.07MIT
- 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 gradedqualityBmaintenanceEnables AI agents to write AI-generated designs into design-tool canvases (MasterGo, Penpot) as native editable layers, and to read canvas selections back out as HTML + Tailwind, design tokens, and SVG assets. Runs locally with progressive tool disclosure and structurally truncated results so large design files stay within an agent's context budget.Apache 2.0