open-design

agent
Security Audit
Fail
Health Pass
  • License รขโ‚ฌโ€ License: Apache-2.0
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Community trust รขโ‚ฌโ€ 316 GitHub stars
Code Fail
  • process.env รขโ‚ฌโ€ Environment variable access in daemon/agents.js
  • process.env รขโ‚ฌโ€ Environment variable access in daemon/cli.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/db.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/design-system-preview.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/design-system-showcase.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/design-systems.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/frontmatter.js
  • exec() รขโ‚ฌโ€ Shell command execution in daemon/lint-artifact.js
  • process.env รขโ‚ฌโ€ Environment variable access in daemon/server.js
Permissions Pass
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested
Purpose
This tool is an open-source, local-first alternative to Anthropic's Claude Design. It transforms existing coding agents into design engines, using composable skills and design systems to generate, preview, and export brand-grade design artifacts.

Security Assessment
The overall risk is Medium. The tool heavily relies on shell command execution across multiple core filesโ€”including database handling, design system previews, and artifact linting. While this is likely necessary to run local commands and manage files, executing arbitrary shell commands always introduces a risk of injection, especially if the agent handles external or user-provided inputs. Additionally, it accesses environment variables in several areas (such as the server, CLI, and agent modules), which means it could potentially interact with sensitive data like API keys if they are stored locally. No hardcoded secrets or dangerous broad permissions were detected.

Quality Assessment
The project appears to be actively maintained, with repository updates occurring as recently as today. It uses the permissive Apache-2.0 license, which is excellent for open-source adoption and modification. Community trust is currently moderate but steadily growing, indicated by over 300 GitHub stars.

Verdict
Use with cautionโ€”while the project is active and transparent, the extensive shell execution requires trusting the local agent's outputs to prevent unintended system actions.
SUMMARY

๐ŸŽจ Local-first open replica of Anthropic's Claude Design. โšก 19 Skills ยท โœจ 71 brand-grade Design Systems ยท ๐Ÿ–ผ๏ธ sandboxed preview ยท ๐Ÿ“ฆ HTML/PDF/PPTX export. ๐Ÿค– Runs on Claude Code / Codex / Cursor / Gemini CLI / OpenCode / Qwen.

README.md

Open Design

The open-source alternative to Claude Design. Local-first, web-deployable, BYOK at every layer โ€” your existing coding agent (Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Qwen) becomes the design engine, driven by 19 composable Skills and 71 brand-grade Design Systems.

Open Design โ€” editorial cover: design with the agent on your laptop

License Agents Design systems Skills Quickstart

English ยท ็ฎ€ไฝ“ไธญๆ–‡


Why this exists

Anthropic's Claude Design (released 2026-04-17, Opus 4.7) showed what happens when an LLM stops writing prose and starts shipping design artifacts. It went viral โ€” and stayed closed-source, paid-only, cloud-only, locked to Anthropic's model and Anthropic's skills. There is no checkout, no self-host, no Vercel deploy, no swap-in-your-own-agent.

Open Design (OD) is the open-source alternative. Same loop, same artifact-first mental model, none of the lock-in. We don't ship an agent โ€” the strongest coding agents already live on your laptop. We wire them into a skill-driven design workflow that runs on pnpm dev, deploys to Vercel, and stays BYOK at every layer.

Type make me a magazine-style pitch deck for our seed round. The interactive question form pops up before the model improvises a single pixel. The agent picks one of five curated visual directions. A live TodoWrite plan streams into the UI. The daemon builds a real on-disk project folder with a seed template, layout library, and self-check checklist. The agent reads them โ€” pre-flight enforced โ€” runs a five-dimensional critique against its own output, and emits a single <artifact> that renders in a sandboxed iframe seconds later.

That's not "AI tries to design something". That's an AI that has been trained, by the prompt stack, to behave like a senior designer with a working filesystem, a deterministic palette library, and a checklist culture โ€” exactly the bar Claude Design set, but open and yours.

OD stands on four open-source shoulders:

  • alchaincyf/huashu-design โ€” the design-philosophy compass. Junior-Designer workflow, the 5-step brand-asset protocol, the anti-AI-slop checklist, the 5-dimensional self-critique, and the "5 schools ร— 20 design philosophies" idea behind our direction picker โ€” all distilled into src/prompts/discovery.ts.
  • op7418/guizang-ppt-skill โ€” the deck mode. Bundled verbatim under skills/guizang-ppt/ with original LICENSE preserved; magazine-style layouts, WebGL hero, P0/P1/P2 checklists.
  • OpenCoworkAI/open-codesign โ€” the UX north star and our closest peer. The first open-source Claude-Design alternative. We borrow its streaming-artifact loop, its sandboxed-iframe preview pattern (vendored React 18 + Babel), its live agent panel (todos + tool calls + interruptible generation), and its five-format export list (HTML / PDF / PPTX / ZIP / Markdown). We deliberately diverge on form factor โ€” they are a desktop Electron app bundling pi-ai; we are a web app + local daemon that delegates to your existing CLI.
  • multica-ai/multica โ€” the daemon-and-runtime architecture. PATH-scan agent detection, the local daemon as the only privileged process, the agent-as-teammate worldview.

At a glance

What you get
Coding agents supported Claude Code ยท Codex CLI ยท Cursor Agent ยท Gemini CLI ยท OpenCode ยท Qwen Code ยท Anthropic API (BYOK fallback)
Design systems built-in 71 โ€” 2 hand-authored starters + 69 product systems (Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Anthropic, Apple, Cursor, Supabase, Figma, โ€ฆ) imported from awesome-design-md
Skills built-in 19 โ€” prototype, deck, mobile, dashboard, pricing, docs, blog, SaaS landing, plus 10 document/work-product templates (PM spec, weekly update, OKRs, runbook, kanban, โ€ฆ)
Visual directions 5 curated schools (Editorial Monocle ยท Modern Minimal ยท Tech Utility ยท Brutalist ยท Soft Warm) โ€” each ships a deterministic OKLch palette + font stack
Device frames iPhone 15 Pro ยท Pixel ยท iPad Pro ยท MacBook ยท Browser Chrome โ€” pixel-accurate, shared across screens
Agent runtime Local daemon spawns the CLI in your project folder โ€” agent gets real Read, Write, Bash, WebFetch against a real on-disk environment
Deployable to Local (pnpm dev) ยท Vercel ยท Single-process prod (npm start)
License Apache-2.0

Demo

01 ยท Entry view
Entry view โ€” pick a skill, pick a design system, type the brief. The same surface for prototypes, decks, mobile apps, dashboards, and editorial pages.
02 ยท Turn-1 discovery form
Turn-1 discovery form โ€” before the model writes a pixel, OD locks the brief: surface, audience, tone, brand context, scale. 30 seconds of radios beats 30 minutes of redirects.
03 ยท Direction picker
Direction picker โ€” when the user has no brand, the agent emits a second form with 5 curated directions (Monocle / Modern Minimal / Tech Utility / Brutalist / Soft Warm). One radio click โ†’ a deterministic palette + font stack, no model freestyle.
04 ยท Live todo progress
Live todo progress โ€” the agent's plan streams as a live card. in_progress โ†’ completed updates land in real time. The user can redirect cheaply, mid-flight.
05 ยท Sandboxed preview
Sandboxed preview โ€” every <artifact> renders in a clean srcdoc iframe. Editable in place via the file workspace; downloadable as HTML, PDF, ZIP.
06 ยท 71-system library
71-system library โ€” every product system shows its 4-color signature. Click for the full DESIGN.md, swatch grid, and live showcase.
07 ยท Magazine deck
Deck mode (guizang-ppt) โ€” the bundled guizang-ppt-skill drops in unchanged. Magazine layouts, WebGL hero backgrounds, single-file HTML output, PDF export.
08 ยท Mobile prototype
Mobile prototype โ€” pixel-accurate iPhone 15 Pro chrome (Dynamic Island, status bar SVGs, home indicator). Multi-screen prototypes use the shared /frames/ assets so the agent never re-draws a phone.

Skills

19 skills ship in the box. Each is a folder under skills/ following the Claude Code SKILL.md convention with an extended od: frontmatter (mode, platform, scenario, preview, design_system).

Showcase examples

The visually distinctive skills you'll most likely run first. Each ships a real example.html you can open straight from the repo to see exactly what the agent will produce โ€” no auth, no setup.

dating-web
dating-web ยท prototype
Consumer dating / matchmaking dashboard โ€” left rail nav, ticker bar, KPIs, 30-day mutual-matches chart, editorial typography.
digital-eguide
digital-eguide ยท template
Two-spread digital e-guide โ€” cover (title, author, TOC teaser) + lesson spread with pull-quote and step list. Creator / lifestyle tone.
email-marketing
email-marketing ยท prototype
Brand product-launch HTML email โ€” masthead, hero image, headline lockup, CTA, specs grid. Centered single-column, table-fallback safe.
gamified-app
gamified-app ยท prototype
Three-frame gamified mobile-app prototype on a dark showcase stage โ€” cover, today's quests with XP ribbons + level bar, quest detail.
mobile-onboarding
mobile-onboarding ยท prototype
Three-frame mobile onboarding flow โ€” splash, value-prop, sign-in. Status bar, swipe dots, primary CTA.
motion-frames
motion-frames ยท prototype
Single-frame motion-design hero with looping CSS animations โ€” rotating type ring, animated globe, ticking timer. Hand-off ready for HyperFrames.
social-carousel
social-carousel ยท prototype
Three-card 1080ร—1080 social-media carousel โ€” cinematic panels with display headlines that connect across the series, brand mark, loop affordance.
sprite-animation
sprite-animation ยท prototype
Pixel / 8-bit animated explainer slide โ€” full-bleed cream stage, animated pixel mascot, kinetic Japanese display type, looping CSS keyframes.

Design surfaces

Skill Mode Default for What it produces
web-prototype prototype desktop Single-page HTML โ€” landings, marketing, hero pages
saas-landing prototype desktop Hero / features / pricing / CTA marketing layout
dashboard prototype desktop Admin / analytics with sidebar + data dense layout
pricing-page prototype desktop Standalone pricing + comparison tables
docs-page prototype desktop 3-column documentation layout
blog-post prototype desktop Editorial long-form
mobile-app prototype mobile iPhone 15 Pro / Pixel framed app screen(s)
simple-deck deck desktop Minimal horizontal-swipe deck
guizang-ppt deck default for deck Magazine-style web PPT โ€” bundled from op7418/guizang-ppt-skill

Document / work-product surfaces

Skill Mode What it produces
pm-spec template PM specification doc with TOC + decision log
weekly-update template Team weekly with progress / blockers / next
meeting-notes template Meeting decision log
eng-runbook template Incident runbook
finance-report template Exec finance summary
hr-onboarding template Role onboarding plan
invoice template Single-page invoice
kanban-board template Board snapshot
team-okrs template OKR scoresheet

Adding a skill takes one folder. Read docs/skills-protocol.md for the extended frontmatter, fork an existing skill, restart the daemon, it appears in the picker.

Six load-bearing ideas

1 ยท We don't ship an agent. Yours is good enough.

The daemon scans your PATH for claude, codex, cursor-agent, gemini, opencode, and qwen on startup. Whichever it finds becomes the design engine โ€” driven via stdio, with one adapter per CLI. Inspired by multica and cc-switch. No CLI? Anthropic API ยท BYOK is the same pipeline minus the spawn.

2 ยท Skills are files, not plugins.

Following Claude Code's SKILL.md convention, each skill is SKILL.md + assets/ + references/. Drop a folder into skills/, restart the daemon, it appears in the picker. The bundled magazine-web-ppt is op7418/guizang-ppt-skill committed verbatim โ€” original license preserved, attribution preserved.

3 ยท Design Systems are portable Markdown, not theme JSON.

The 9-section DESIGN.md schema from VoltAgent/awesome-design-md โ€” color, typography, spacing, layout, components, motion, voice, brand, anti-patterns. Every artifact reads from the active system. Switch system โ†’ next render uses the new tokens. The dropdown ships with Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Apple, Anthropic, Cursor, Supabase, Figma, Resend, Raycast, Lovable, Cohere, Mistral, ElevenLabs, X.AI, Spotify, Webflow, Sanity, PostHog, Sentry, MongoDB, ClickHouse, Cal, Replicate, Clay, Composioโ€ฆ โ€” 71 in total.

4 ยท The interactive question form prevents 80% of redirects.

OD's prompt stack hard-codes a RULE 1: every fresh design brief begins with a <question-form id="discovery"> instead of code. Surface ยท audience ยท tone ยท brand context ยท scale ยท constraints. A long brief still leaves design decisions open โ€” visual tone, color stance, scale โ€” exactly the things the form locks down in 30 seconds. The cost of a wrong direction is one chat round, not one finished deck.

This is the Junior-Designer mode distilled from huashu-design: batch the questions up front, show something visible early (even a wireframe with grey blocks), let the user redirect cheaply. Combined with the brand-asset protocol (locate ยท download ยท grep hex ยท write brand-spec.md ยท vocalise), it's the single biggest reason output stops feeling like AI freestyle and starts feeling like a designer who paid attention before painting.

5 ยท The daemon makes the agent feel like it's on your laptop, because it is.

The daemon spawns the CLI with cwd set to the project's artifact folder under .od/projects/<id>/. The agent gets Read, Write, Bash, WebFetch โ€” real tools against a real filesystem. It can Read the skill's assets/template.html, grep your CSS for hex values, write a brand-spec.md, drop generated images, and produce .pptx / .zip / .pdf files that show up in the file workspace as download chips when the turn ends. Sessions, conversations, messages, tabs persist in a local SQLite DB โ€” pop the project open tomorrow and the agent's todo card is right where you left it.

6 ยท The prompt stack is the product.

What you compose at send time isn't "system + user". It's:

DISCOVERY directives  (turn-1 form, turn-2 brand branch, TodoWrite, 5-dim critique)
  + identity charter   (OFFICIAL_DESIGNER_PROMPT, anti-AI-slop, junior-pass)
  + active DESIGN.md   (71 systems available)
  + active SKILL.md    (19 skills available)
  + project metadata   (kind, fidelity, speakerNotes, animations, inspiration ids)
  + skill side files   (auto-injected pre-flight: read assets/template.html + references/*.md)
  + (deck kind, no skill seed) DECK_FRAMEWORK_DIRECTIVE   (nav / counter / scroll / print)

Every layer is composable. Every layer is a file you can edit. Read src/prompts/system.ts and src/prompts/discovery.ts to see the actual contract.

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ browser โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                                                                โ”‚
โ”‚   Vite + React SPA  (chat ยท file workspace ยท iframe preview)   โ”‚
โ”‚                                                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚ /api/* (proxied in dev)           โ”‚ direct (BYOK)
               โ–ผ                                   โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚   Local daemon       โ”‚              โ”‚   Anthropic SDK      โ”‚
   โ”‚   (Express + SQLite) โ”‚              โ”‚   (browser fallback) โ”‚
   โ”‚                      โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   โ”‚   /api/agents        โ”‚
   โ”‚   /api/skills        โ”‚
   โ”‚   /api/design-systemsโ”‚
   โ”‚   /api/projects/...  โ”‚
   โ”‚   /api/chat (SSE)    โ”‚
   โ”‚                      โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
             โ”‚ spawn(cli, [...], { cwd: .od/projects/<id> })
             โ–ผ
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚  claude ยท codex ยท cursor-agent ยท gemini ยท opencode ยท qwenโ”‚
   โ”‚  reads SKILL.md + DESIGN.md, writes artifacts to disk    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Layer Stack
Frontend Vite 5 + React 18 + TypeScript
Daemon Node 18+ ยท Express ยท SSE streaming ยท better-sqlite3 for projects/conversations/messages/tabs
Agent transport child_process.spawn with claude-stream-json parser for Claude Code, line-buffered plain stdout for the rest
Storage Plain files in .od/projects/<id>/ + SQLite at .od/db.sqlite (gitignored)
Preview Sandboxed iframe via srcdoc + per-skill <artifact> parser
Export HTML (inline assets) ยท PDF (browser print) ยท PPTX (skill-defined) ยท ZIP (archiver)

Quickstart

git clone https://github.com/nexu-io/open-design.git
cd open-design
pnpm install         # or npm install
pnpm dev:all         # daemon (:7456) + Vite (:5173)
open http://localhost:5173

The first load:

  1. Detects which agent CLIs you have on PATH and picks one automatically.
  2. Loads 19 skills + 71 design systems.
  3. Pops the welcome dialog so you can paste an Anthropic key (only needed for the BYOK fallback path).
  4. Auto-creates ./.od/ โ€” the local runtime folder for the SQLite project DB, per-project artifacts, and saved renders. There is no od init step; the daemon mkdirs everything it needs on boot.

Type a prompt, hit Send, watch the question form arrive, fill it, watch the todo card stream, watch the artifact render. Click Save to disk or download as a project ZIP.

First-run state (./.od/)

The daemon owns one hidden folder at the repo root. Everything in it is gitignored and machine-local โ€” never commit it.

.od/
โ”œโ”€โ”€ app.sqlite                 โ† projects ยท conversations ยท messages ยท open tabs
โ”œโ”€โ”€ artifacts/                 โ† one-off "Save to disk" renders (timestamped)
โ””โ”€โ”€ projects/<id>/             โ† per-project working dir, also the agent's cwd
Want toโ€ฆ Do this
Inspect what's in there ls -la .od && sqlite3 .od/app.sqlite '.tables'
Reset to a clean slate stop the daemon, rm -rf .od, run pnpm dev:all again
Move it elsewhere not supported yet โ€” the path is hard-coded relative to the repo

Full file map, scripts, and troubleshooting โ†’ QUICKSTART.md.

Repository structure

open-design/
โ”œโ”€โ”€ README.md                      โ† this file
โ”œโ”€โ”€ README.zh-CN.md                โ† ็ฎ€ไฝ“ไธญๆ–‡
โ”œโ”€โ”€ QUICKSTART.md                  โ† run / build / deploy guide
โ”œโ”€โ”€ package.json                   โ† pnpm workspace, single bin: od
โ”‚
โ”œโ”€โ”€ daemon/                        โ† Node + Express, the only server
โ”‚   โ”œโ”€โ”€ cli.js                     โ† `od` bin entry point
โ”‚   โ”œโ”€โ”€ server.js                  โ† /api/* routes (projects, chat, files, exports)
โ”‚   โ”œโ”€โ”€ agents.js                  โ† PATH scanner + per-CLI argv builders
โ”‚   โ”œโ”€โ”€ claude-stream.js           โ† streaming JSON parser for Claude Code stdout
โ”‚   โ”œโ”€โ”€ skills.js                  โ† SKILL.md frontmatter loader
โ”‚   โ”œโ”€โ”€ design-systems.js          โ† DESIGN.md loader + swatch extractor
โ”‚   โ”œโ”€โ”€ design-system-preview.js   โ† live one-shot showcase per system
โ”‚   โ”œโ”€โ”€ design-system-showcase.js  โ† multi-section gallery render
โ”‚   โ”œโ”€โ”€ lint-artifact.js           โ† P0/P1 self-check on agent output
โ”‚   โ”œโ”€โ”€ projects.js                โ† per-project filesystem helpers
โ”‚   โ”œโ”€โ”€ db.js                      โ† SQLite schema (projects/messages/templates/tabs)
โ”‚   โ””โ”€โ”€ frontmatter.js             โ† zero-dep YAML-subset parser
โ”‚
โ”œโ”€โ”€ src/                           โ† Vite + React + TS frontend
โ”‚   โ”œโ”€โ”€ App.tsx                    โ† routing, bootstrap, settings
โ”‚   โ”œโ”€โ”€ components/                โ† 27 components (chat, composer, picker, preview, sketch, โ€ฆ)
โ”‚   โ”œโ”€โ”€ prompts/
โ”‚   โ”‚   โ”œโ”€โ”€ system.ts              โ† composeSystemPrompt(base, skill, DS, metadata)
โ”‚   โ”‚   โ”œโ”€โ”€ official-system.ts     โ† identity charter
โ”‚   โ”‚   โ”œโ”€โ”€ discovery.ts           โ† turn-1 form + turn-2 branch + 5-dim critique
โ”‚   โ”‚   โ”œโ”€โ”€ directions.ts          โ† 5 visual directions ร— OKLch palette + font stack
โ”‚   โ”‚   โ””โ”€โ”€ deck-framework.ts      โ† deck nav / counter / print stylesheet
โ”‚   โ”œโ”€โ”€ artifacts/
โ”‚   โ”‚   โ”œโ”€โ”€ parser.ts              โ† streaming <artifact> tag extractor
โ”‚   โ”‚   โ””โ”€โ”€ question-form.ts       โ† <question-form> JSON schema + replay
โ”‚   โ”œโ”€โ”€ runtime/
โ”‚   โ”‚   โ”œโ”€โ”€ srcdoc.ts              โ† iframe sandbox wrapper
โ”‚   โ”‚   โ”œโ”€โ”€ markdown.tsx           โ† assistant message renderer
โ”‚   โ”‚   โ”œโ”€โ”€ exports.ts             โ† HTML / PDF / ZIP export helpers
โ”‚   โ”‚   โ””โ”€โ”€ zip.ts                 โ† project archive
โ”‚   โ”œโ”€โ”€ providers/
โ”‚   โ”‚   โ”œโ”€โ”€ daemon.ts              โ† /api/chat SSE stream consumer
โ”‚   โ”‚   โ”œโ”€โ”€ anthropic.ts           โ† BYOK Anthropic SDK path
โ”‚   โ”‚   โ””โ”€โ”€ registry.ts            โ† /api/agents, /api/skills, /api/design-systems
โ”‚   โ””โ”€โ”€ state/                     โ† config + projects (localStorage + daemon-backed)
โ”‚
โ”œโ”€โ”€ skills/                        โ† 19 SKILL.md skill bundles
โ”‚   โ”œโ”€โ”€ web-prototype/             โ† default for prototype mode
โ”‚   โ”œโ”€โ”€ saas-landing/              โ† marketing page (hero / features / pricing / CTA)
โ”‚   โ”œโ”€โ”€ dashboard/                 โ† admin / analytics
โ”‚   โ”œโ”€โ”€ pricing-page/              โ† standalone pricing + comparison
โ”‚   โ”œโ”€โ”€ docs-page/                 โ† 3-column documentation
โ”‚   โ”œโ”€โ”€ blog-post/                 โ† editorial long-form
โ”‚   โ”œโ”€โ”€ mobile-app/                โ† phone-frame screen(s)
โ”‚   โ”œโ”€โ”€ simple-deck/               โ† horizontal-swipe minimal
โ”‚   โ”œโ”€โ”€ guizang-ppt/               โ† bundled magazine-web-ppt (default for deck)
โ”‚   โ”‚   โ”œโ”€โ”€ SKILL.md
โ”‚   โ”‚   โ”œโ”€โ”€ assets/template.html   โ† seed
โ”‚   โ”‚   โ””โ”€โ”€ references/{themes,layouts,components,checklist}.md
โ”‚   โ”œโ”€โ”€ pm-spec/                   โ† PM specification doc
โ”‚   โ”œโ”€โ”€ weekly-update/             โ† team weekly
โ”‚   โ”œโ”€โ”€ meeting-notes/             โ† decision log
โ”‚   โ”œโ”€โ”€ eng-runbook/               โ† incident / runbook
โ”‚   โ”œโ”€โ”€ finance-report/            โ† exec summary
โ”‚   โ”œโ”€โ”€ hr-onboarding/             โ† role onboarding
โ”‚   โ”œโ”€โ”€ invoice/                   โ† single-page invoice
โ”‚   โ”œโ”€โ”€ kanban-board/              โ† board snapshot
โ”‚   โ”œโ”€โ”€ mobile-onboarding/         โ† multi-screen mobile flow
โ”‚   โ””โ”€โ”€ team-okrs/                 โ† OKR scoresheet
โ”‚
โ”œโ”€โ”€ design-systems/                โ† 71 DESIGN.md systems
โ”‚   โ”œโ”€โ”€ default/                   โ† Neutral Modern (starter)
โ”‚   โ”œโ”€โ”€ warm-editorial/            โ† Warm Editorial (starter)
โ”‚   โ”œโ”€โ”€ linear-app/  vercel/  stripe/  airbnb/  notion/  cursor/  apple/  โ€ฆ
โ”‚   โ””โ”€โ”€ README.md                  โ† catalog overview
โ”‚
โ”œโ”€โ”€ assets/
โ”‚   โ””โ”€โ”€ frames/                    โ† shared device frames (used cross-skill)
โ”‚       โ”œโ”€โ”€ iphone-15-pro.html
โ”‚       โ”œโ”€โ”€ android-pixel.html
โ”‚       โ”œโ”€โ”€ ipad-pro.html
โ”‚       โ”œโ”€โ”€ macbook.html
โ”‚       โ””โ”€โ”€ browser-chrome.html
โ”‚
โ”œโ”€โ”€ templates/
โ”‚   โ””โ”€โ”€ deck-framework.html        โ† deck baseline (nav / counter / print)
โ”‚
โ”œโ”€โ”€ scripts/
โ”‚   โ””โ”€โ”€ sync-design-systems.mjs    โ† re-import upstream awesome-design-md tarball
โ”‚
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ spec.md                    โ† product spec, scenarios, differentiation
โ”‚   โ”œโ”€โ”€ architecture.md            โ† topologies, data flow, components
โ”‚   โ”œโ”€โ”€ skills-protocol.md         โ† extended SKILL.md od: frontmatter
โ”‚   โ”œโ”€โ”€ agent-adapters.md          โ† per-CLI detection + dispatch
โ”‚   โ”œโ”€โ”€ modes.md                   โ† prototype / deck / template / design-system
โ”‚   โ”œโ”€โ”€ references.md              โ† long-form provenance
โ”‚   โ”œโ”€โ”€ roadmap.md                 โ† phased delivery
โ”‚   โ”œโ”€โ”€ schemas/                   โ† JSON schemas
โ”‚   โ””โ”€โ”€ examples/                  โ† canonical artifact examples
โ”‚
โ””โ”€โ”€ .od/                           โ† runtime data, gitignored, auto-created
    โ”œโ”€โ”€ app.sqlite                 โ† projects / conversations / messages / tabs
    โ”œโ”€โ”€ projects/<id>/             โ† per-project working folder (agent's cwd)
    โ””โ”€โ”€ artifacts/                 โ† saved one-off renders

Design Systems

The 71 design systems library โ€” style guide spread

71 systems out of the box, each as a single DESIGN.md:

Full catalog (click to expand)

AI & LLM โ€” claude ยท cohere ยท mistral-ai ยท minimax ยท together-ai ยท replicate ยท runwayml ยท elevenlabs ยท ollama ยท x-ai

Developer Tools โ€” cursor ยท vercel ยท linear-app ยท framer ยท expo ยท clickhouse ยท mongodb ยท supabase ยท hashicorp ยท posthog ยท sentry ยท warp ยท webflow ยท sanity ยท mintlify ยท lovable ยท composio ยท opencode-ai ยท voltagent

Productivity โ€” notion ยท figma ยท miro ยท airtable ยท superhuman ยท intercom ยท zapier ยท cal ยท clay ยท raycast

Fintech โ€” stripe ยท coinbase ยท binance ยท kraken ยท mastercard ยท revolut ยท wise

E-Commerce โ€” shopify ยท airbnb ยท uber ยท nike ยท starbucks ยท pinterest

Media โ€” spotify ยท playstation ยท wired ยท theverge ยท meta

Automotive โ€” tesla ยท bmw ยท ferrari ยท lamborghini ยท bugatti ยท renault

Other โ€” apple ยท ibm ยท nvidia ยท vodafone ยท sentry ยท resend ยท spacex

Starters โ€” default (Neutral Modern) ยท warm-editorial

The library is imported via scripts/sync-design-systems.mjs from VoltAgent/awesome-design-md. Re-run to refresh.

Visual directions

When the user has no brand spec, the agent emits a second form with five curated directions โ€” the OD adaptation of huashu-design's "5 schools ร— 20 design philosophies" fallback. Each direction is a deterministic spec โ€” palette in OKLch, font stack, layout posture cues, references โ€” that the agent binds verbatim into the seed template's :root. One radio click โ†’ a fully specified visual system. No improvisation, no AI-slop.

Direction Mood Refs
Editorial โ€” Monocle / FT Print magazine, ink + cream + warm rust Monocle ยท FT Weekend ยท NYT Magazine
Modern minimal โ€” Linear / Vercel Cool, structured, minimal accent Linear ยท Vercel ยท Stripe
Tech utility Information density, monospace, terminal Bloomberg ยท Bauhaus tools
Brutalist Raw, oversized type, no shadows, harsh accents Bloomberg Businessweek ยท Achtung
Soft warm Generous, low contrast, peachy neutrals Notion marketing ยท Apple Health

Full spec โ†’ src/prompts/directions.ts.

Anti-AI-slop machinery

The whole machinery below is the huashu-design playbook, ported into OD's prompt-stack and made enforceable per-skill via the side-file pre-flight. Read src/prompts/discovery.ts for the live wording:

  • Question form first. Turn 1 is <question-form> only โ€” no thinking, no tools, no narration. The user chooses defaults at radio speed.
  • Brand-spec extraction. When the user attaches a screenshot or URL, the agent runs a five-step protocol (locate ยท download ยท grep hex ยท codify brand-spec.md ยท vocalise) before writing CSS. Never guesses brand colors from memory.
  • Five-dim critique. Before emitting <artifact>, the agent silently scores its output 1โ€“5 across philosophy / hierarchy / execution / specificity / restraint. Anything under 3/5 is a regression โ€” fix and rescore. Two passes is normal.
  • P0/P1/P2 checklist. Every skill ships a references/checklist.md with hard P0 gates. The agent must pass P0 before emitting.
  • Slop blacklist. Aggressive purple gradients, generic emoji icons, rounded card with left-border accent, hand-drawn SVG humans, Inter as a display face, invented metrics โ€” explicitly forbidden in the prompt.
  • Honest placeholders > fake stats. When the agent doesn't have a real number, it writes โ€” or a labelled grey block, not "10ร— faster".

Comparison

Axis Claude Design (Anthropic) Open CoDesign Open Design
License Closed MIT Apache-2.0
Form factor Web (claude.ai) Desktop (Electron) Web app + local daemon
Deployable on Vercel โŒ โŒ โœ…
Agent runtime Bundled (Opus 4.7) Bundled (pi-ai) Delegated to user's existing CLI
Skills Proprietary 12 custom TS modules + SKILL.md 19 file-based SKILL.md bundles, droppable
Design system Proprietary DESIGN.md (v0.2 roadmap) DESIGN.md ร— 71 systems shipped
Provider flexibility Anthropic only 7+ via pi-ai Whatever your agent supports
Init question form โŒ โŒ โœ… Hard rule, turn 1
Direction picker โŒ โŒ โœ… 5 deterministic directions
Live todo progress + tool stream โŒ โœ… โœ… (UX pattern from open-codesign)
Sandboxed iframe preview โŒ โœ… โœ… (pattern from open-codesign)
Comment-mode surgical edits โŒ โœ… ๐Ÿšง roadmap (lift from open-codesign)
AI-emitted tweaks panel โŒ โœ… ๐Ÿšง roadmap (lift from open-codesign)
Filesystem-grade workspace โŒ partial (Electron sandbox) โœ… Real cwd, real tools, persisted SQLite
5-dim self-critique โŒ โŒ โœ… Pre-emit gate
Export formats Limited HTML / PDF / PPTX / ZIP / Markdown HTML / PDF / PPTX / ZIP / Markdown
PPT skill reuse N/A Built-in guizang-ppt-skill drops in
Minimum billing Pro / Max / Team BYOK BYOK

Supported coding agents

Auto-detected from PATH on daemon boot. No config required.

Agent Bin Streaming Notes
Claude Code claude --output-format stream-json (typed events) First-class โ€” best fidelity
Codex CLI codex line-buffered codex exec <prompt>
Cursor Agent cursor-agent line-buffered cursor-agent -p
Gemini CLI gemini line-buffered gemini -p
OpenCode opencode line-buffered opencode run
Qwen Code qwen line-buffered qwen -p
Anthropic API ยท BYOK n/a SSE direct Browser fallback when no CLI is on PATH

Adding a new CLI is one entry in daemon/agents.js. Streaming format is one of claude-stream-json (typed events) or plain (raw text).

References & lineage

Every external project this repo borrows from. Each link goes to the source so you can verify the provenance.

Project Role here
Claude Design The closed-source product this repo is the open-source alternative to.
alchaincyf/huashu-design The design-philosophy core. Junior-Designer workflow, the 5-step brand-asset protocol, anti-AI-slop checklist, 5-dimensional self-critique, and the "5 schools ร— 20 design philosophies" library behind our direction picker โ€” all distilled into src/prompts/discovery.ts and src/prompts/directions.ts.
op7418/guizang-ppt-skill Magazine-web-PPT skill bundled verbatim under skills/guizang-ppt/ with original LICENSE preserved. Default for deck mode. P0/P1/P2 checklist culture borrowed for every other skill.
multica-ai/multica The daemon + adapter architecture. PATH-scan agent detection, local daemon as the only privileged process, agent-as-teammate worldview. We adopt the model; we do not vendor the code.
OpenCoworkAI/open-codesign The first open-source Claude-Design alternative and our closest peer. UX patterns adopted: streaming-artifact loop, sandboxed-iframe preview (vendored React 18 + Babel), live agent panel (todos + tool calls + interruptible), five-format export list (HTML/PDF/PPTX/ZIP/Markdown), local-first storage hub, SKILL.md taste-injection. UX patterns on our roadmap: comment-mode surgical edits, AI-emitted tweaks panel. We deliberately do not vendor pi-ai โ€” open-codesign bundles it as the agent runtime; we delegate to whichever CLI the user already has.
VoltAgent/awesome-claude-design / awesome-design-md Source of the 9-section DESIGN.md schema and 69 product systems imported via scripts/sync-design-systems.mjs.
farion1231/cc-switch Inspiration for symlink-based skill distribution across multiple agent CLIs.
Claude Code skills The SKILL.md convention adopted verbatim โ€” any Claude Code skill drops into skills/ and is picked up by the daemon.

Long-form provenance write-up โ€” what we take from each, what we deliberately don't โ€” lives at docs/references.md.

Roadmap

  • Daemon + agent detection + skill registry + design-system catalog
  • Web app + chat + question form + todo progress + sandboxed preview
  • 19 skills + 71 design systems + 5 visual directions + 5 device frames
  • SQLite-backed projects ยท conversations ยท messages ยท tabs ยท templates
  • Comment-mode surgical edits (click element โ†’ instruction โ†’ patch) โ€” pattern from open-codesign
  • AI-emitted tweaks panel (model surfaces the parameters worth tweaking) โ€” pattern from open-codesign
  • Vercel + tunnel deployment recipe (Topology B)
  • One-command npx od init to scaffold a project with DESIGN.md
  • Skill marketplace (od skills install <github-repo>)

Phased delivery โ†’ docs/roadmap.md.

Status

This is an early implementation โ€” the closed loop (detect โ†’ pick skill + design system โ†’ chat โ†’ parse <artifact> โ†’ preview โ†’ save) runs end-to-end. The prompt stack and skill library are where most of the value lives, and they're stable. The component-level UI is shipping daily.

Contributing

Issues, PRs, new skills, and new design systems are all welcome. The highest-leverage contributions are usually one folder, one Markdown file, or one PR-sized adapter:

Full walkthrough, bar-for-merging, code style, and what we don't accept โ†’ CONTRIBUTING.md (็ฎ€ไฝ“ไธญๆ–‡).

License

Apache-2.0. The bundled skills/guizang-ppt/ retains its original LICENSE (MIT) and authorship attribution to op7418.

Reviews (0)

No results found