nexu-io/open-design

GitHub: nexu-io/open-design

Open Design 是 Anthropic Claude Design 的开源替代方案,通过本地守护进程桥接用户已有的编程 Agent,配合 71 套设计系统和 19 种技能,以「产物优先」的方式生成高质量设计原型与演示文稿。

Stars: 1164 | Forks: 130

# 开放设计

Open Design — editorial cover: design with the agent on your laptop

License Agents Design systems Skills Quickstart

English · 简体中文

## 为什么会有这个项目 Anthropic 的 [Claude Design][cd](发布于 2026-04-17,Opus 4.7)向我们展示了当 LLM 停止写长篇大论,转而直接输出设计产物时会发生什么。它迅速走红——但始终保持闭源、仅限付费、仅限云端,并被锁定在 Anthropic 的模型与技能体系中。用户无法进行结账、无法自托管、无法部署到 Vercel,也无法替换成你自己的 Agent。 **Open Design (OD) 就是那个开源的替代方案。** 同样的闭环,同样的“产物优先”心智模型,但没有任何锁定。我们不提供 Agent——最强大的编程 Agent 已经存在于你的笔记本电脑中。我们将它们接入到一个由技能驱动的设计工作流中,该工作流通过 `pnpm dev` 运行,可部署到 Vercel,并在每一层都保持 BYOK(自带密钥)。 输入 `make me a magazine-style pitch deck for our seed round`。在模型凭空想象出哪怕一个像素之前,一个交互式问题表单会率先弹出。Agent 会从五个精选的视觉方向中选择一个。一个实时的 `TodoWrite` 计划会流式传输到界面中。守护进程会在磁盘上构建一个真实的项目文件夹,其中包含种子模板、布局库和自检清单。Agent 会读取它们——强制执行预检步骤——对其自身的输出运行五维批判,并发出一个单一的 ``,几秒钟后即可在沙盒 iframe 中渲染出来。 这不是“AI 试图随便设计点什么”。这是一个通过 Prompt 堆栈训练出来的 AI,其行为就像一位资深设计师,拥有可用的文件系统、确定性的调色板库和清单文化——这正是 Claude Design 所设定的标准,但它是开源的,属于你自己。 OD 站在四个开源巨人的肩膀上: - [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design) — 设计哲学指南针。初级设计师工作流、5 步品牌资产协议、反 AI 模板化清单、五维自我批判,以及我们方向选择器背后的“5 大流派 × 20 种设计哲学”理念——所有这些都浓缩在 [`src/prompts/discovery.ts`](src/prompts/discovery.ts) 中。 - [**`op7418/guizang-ppt-skill`**](https://github.com/op7418/guizang-ppt-skill) — 演示文稿模式。以原样打包在 [`skills/guizang-ppt/`](skills/guizang-ppt/) 下,并保留了原始 LICENSE;包含杂志风格布局、WebGL 主视觉、P0/P1/P2 检查清单。 - [**`OpenCoworkAI/open-codesign`**](https://github.com/OpenCoworkAI/open-codesign) — UX 领域的北极星,也是我们最接近的同行。它是首个开源的 Claude Design 替代方案。我们借鉴了其流式传输 artifact 循环、沙盒 iframe 预览模式(内置 React 18 + Babel)、实时 Agent 面板(待办事项 + 工具调用 + 可中断生成)以及五格式导出列表(HTML / PDF / PPTX / ZIP / Markdown)。我们在产品形态上刻意与其分道扬镳——他们是一个捆绑了 [`pi-ai`][piai] 的桌面 Electron 应用;而我们是一个 Web 应用 + 本地守护进程,直接委派给你现有的 CLI。 - [**`multica-ai/multica`**](https://github.com/multica-ai/multica) — 守护进程与运行时架构。PATH 扫描 Agent 检测、将本地守护进程作为唯一特权进程,以及“Agent 即队友”的世界观。 ## 一览 | | 你能得到什么 | |---|---| | **支持的编程 Agent** | Claude Code · Codex CLI · Cursor Agent · Gemini CLI · OpenCode · Qwen Code · Anthropic API(BYOK 备用方案) | | **内置设计系统** | **71** 种 — 2 个手工编写的入门模板 + 69 个产品系统(Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Anthropic, Apple, Cursor, Supabase, Figma, …)从 [`awesome-design-md`][acd2] 导入 | | **内置技能** | **19** 个 — 原型、演示文稿、移动端、仪表盘、定价页、文档、博客、SaaS 落地页,外加 10 个文档/工作产出模板(产品经理规范、每周更新、OKR、运维手册、看板等) | | **视觉方向** | 5 个精选流派(Editorial Monocle · Modern Minimal · Tech Utility · Brutalist · Soft Warm) — 每个都提供确定性的 OKLch 调色板和字体栈 | | **设备边框** | iPhone 15 Pro · Pixel · iPad Pro · MacBook · Browser Chrome — 像素级精确,跨屏幕共享 | | **Agent 运行时** | 本地守护进程在你的项目文件夹中启动 CLI — Agent 获得针对真实磁盘环境的 `Read`、`Write`、`Bash`、`WebFetch` 权限 | | **可部署到** | 本地 (`pnpm dev`) · Vercel · 单进程生产环境 (`npm start`) | | **开源许可证** | Apache-2.0 | ## 演示
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_progresscompleted 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.
## 技能 内置了 19 种技能。每种技能都是 [`skills/`](skills/) 下的一个文件夹,遵循 Claude Code 的 [`SKILL.md`][skill] 约定,并带有扩展的 `od:` 前置元数据(`mode`、`platform`、`scenario`、`preview`、`design_system`)。 ### 展示案例 你可能最先尝试的、视觉上最具特色的技能。每个技能都附带一个真实的 `example.html`,你可以直接从仓库中打开它,以准确查看 Agent 会生成什么——无需认证,无需设置。
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.
### 设计界面 | 技能 | 模式 | 默认用于 | 生成内容 | |---|---|---|---| | [`web-prototype`](skills/web-prototype/) | prototype | 桌面端 | 单页 HTML — 落地页、营销页、主视觉页面 | | [`saas-landing`](skills/saas-landing/) | prototype | 桌面端 | 主视觉 / 功能 / 定价 / CTA 营销布局 | | [`dashboard`](skills/dashboard/) | prototype | 桌面端 | 包含侧边栏和数据密集布局的管理后台 / 分析页 | | [`pricing-page`](skills/pricing-page/) | prototype | 桌面端 | 独立的定价页与对比表 | | [`docs-page`](skills/docs-page/) | prototype | 桌面端 | 三栏文档布局 | | [`blog-post`](skills/blog-post/) | prototype | 桌面端 | 社论式长文 | | [`mobile-app`](skills/mobile-app/) | prototype | 移动端 | 带 iPhone 15 Pro / Pixel 边框的应用界面 | | [`simple-deck`](skills/simple-deck/) | deck | 桌面端 | 极简的水平滑动演示文稿 | | [`guizang-ppt`](skills/guizang-ppt/) | deck | 演示文稿的**默认**选项 | 杂志风格网页 PPT — 捆绑自 [op7418/guizang-ppt-skill][guizang] | ### 文档 / 工作产出界面 | 技能 | 模式 | 生成内容 | |---|---|---| | [`pm-spec`](skills/pm-spec/) | template | 带有目录和决策记录的产品经理规范文档 | | [`weekly-update`](skills/weekly-update/) | template | 包含进展 / 阻碍 / 下一步计划的团队周报 | | [`meeting-notes`](skills/meeting-notes/) | template | 会议决策记录 | | [`eng-runbook`](skills/eng-runbook/) | template | 故障事件运维手册 | | [`finance-report`](skills/finance-report/) | template | 高管财务摘要 | | [`hr-onboarding`](skills/hr-onboarding/) | template | 岗位入职计划 | | [`invoice`](skills/invoice/) | template | 单页发票 | | [`kanban-board`](skills/kanban-board/) | template | 看板快照 | | [`team-okrs`](skills/team-okrs/) | template | OKR 评分表 | 添加一项技能只需要一个文件夹。请阅读 [`docs/skills-protocol.md`](docs/skills-protocol.md) 了解扩展的前置元数据,复制一个现有的技能,重启守护进程,它就会出现在选择器中。 ## 六大核心支柱理念 ### 1 · 我们不提供 Agent。你自己的就足够好了。 守护进程在启动时会扫描你的 `PATH`,查找 [`claude`](https://docs.anthropic.com/en/docs/claude-code)、[`codex`](https://github.com/openai/codex)、[`cursor-agent`](https://www.cursor.com/cli)、[`gemini`](https://github.com/google-gemini/gemini-cli)、[`opencode`](https://opencode.ai/) 和 [`qwen`](https://github.com/QwenLM/qwen-code)。无论找到哪一个,它都会成为设计引擎——通过 stdio 驱动,每个 CLI 都有一个对应的适配器。灵感来源于 [`multica`](https://github.com/multica-ai/multica) 和 [`cc-switch`](https://github.com/farion1231/cc-switch)。没有找到 CLI?`Anthropic API · BYOK` 是同一条流水线,只是少了生成子进程的步骤。 ### 2 · 技能是文件,不是插件。 遵循 Claude Code 的 [`SKILL.md` 约定](https://docs.anthropic.com/en/docs/claude-code/skills),每个技能都是 `SKILL.md` + `assets/` + `references/` 的组合。将一个文件夹放入 [`skills/`](skills/),重启守护进程,它就会出现在选择器中。内置的 `magazine-web-ppt` 就是原封不动提交的 [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) —— 保留了原始许可证和署名。 ### 3 · 设计系统是可移植的 Markdown,而不是主题 JSON。 来自 [`VoltAgent/awesome-design-md`][acd2] 的 9 段式 `DESIGN.md` 模式 —— 包含颜色、排版、间距、布局、组件、动效、语气、品牌和反面模式。每个 artifact 都会从当前激活的系统中读取。切换系统 → 下次渲染就会使用新的 token。下拉菜单中内置了 **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 种。 ### 4 · 交互式问题表单避免了 80% 的返工。 OD 的 Prompt 堆栈硬编码了一条 `RULE 1`:每一份全新的设计需求都以 `` 开始,而不是直接写代码。涵盖界面 · 受众 · 调性 · 品牌背景 · 规模 · 约束条件。一段长长的需求简报仍可能留下未定的设计决策——视觉基调、色彩倾向、规模——这些正是表单能在 30 秒内敲定的事情。选错方向的代价仅仅是一轮对话,而不是一整个做完的演示文稿。 这就是从 [`huashu-design`](https://github.com/alchaincyf/huashu-design) 中提炼出的**初级设计师模式**:预先批量提出问题,尽早展示可见的内容(哪怕是带灰色色块的线框图),让用户以极低的成本改变方向。结合品牌资产协议(定位 · 下载 · `grep` 提取十六进制色值 · 写入 `brand-spec.md` · 口头确认),这是输出内容不再像 AI 随性发挥,而更像是一位在下笔前做足功课的设计师的最重要原因。 ### 5 · 守护进程让 Agent 感觉就像在你的笔记本电脑上一样,因为它确实如此。 守护进程在启动 CLI 时,会将 `cwd` 设置为项目的 artifact 文件夹,位于 `.od/projects//` 下。Agent 拥有 `Read`、`Write`、`Bash`、`WebFetch` —— 这些都是针对真实文件系统的真实工具。它可以 `Read` 读取技能的 `assets/template.html`,`grep` 提取你 CSS 中的十六进制色值,编写 `brand-spec.md`,放入生成的图片,并生成 `.pptx` / `.zip` / `.pdf` 文件,当这一轮对话结束时,这些文件会以下载标签的形式出现在文件工作区中。会话、对话、消息和标签页都持久化保存在本地的 SQLite 数据库中 —— 明天重新打开项目,Agent 的待办卡片还在你昨天离开时的位置。 ### 6 · Prompt 堆栈就是产品本身。 你在发送时所组合的内容并不是简单的“系统指令 + 用户输入”,而是 ``` 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) ``` 每一层都是可组合的。每一层都是一个你可以编辑的文件。阅读 [`src/prompts/system.ts`](src/prompts/system.ts) 和 [`src/prompts/discovery.ts`](src/prompts/discovery.ts) 以查看实际的契约。 ## 架构 ``` ┌────────────────────────── 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/ }) ▼ ┌──────────────────────────────────────────────────────────┐ │ claude · codex · cursor-agent · gemini · opencode · qwen│ │ reads SKILL.md + DESIGN.md, writes artifacts to disk │ └──────────────────────────────────────────────────────────┘ ``` | 层级 | 技术栈 | |---|---| | 前端 | Vite 5 + React 18 + TypeScript | | 守护进程 | Node 18+ · Express · SSE 流式传输 · 使用 `better-sqlite3` 管理 projects/conversations/messages/tabs | | Agent 传输 | 带有针对 Claude Code 的 `claude-stream-json` 解析器的 `child_process.spawn`,其余采用行缓冲的纯文本 stdout | | 存储 | `.od/projects//` 中的普通文件 + 位于 `.od/db.sqlite` 的 SQLite(已加入 gitignore) | | 预览 | 通过 `srcsrcdoc` 的沙盒 iframe + 每个技能对应的 `` 解析器 | | 导出 | HTML(内联资源) · PDF(浏览器打印) · PPTX(技能定义) · ZIP(压缩包) | ## 快速开始 ``` 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 ``` 首次加载: 1. 检测你的 `PATH` 上有哪些 Agent CLI,并自动选择一个。 2. 加载 19 种技能 + 71 个设计系统。 3. 弹出欢迎对话框,以便你可以粘贴 Anthropic 密钥(仅在 BYOK 备用路径中需要)。 4. **自动创建 `./.od/`** —— 用于存放 SQLite 项目数据库、每个项目的 artifact 和已保存渲染结果的本地运行时文件夹。不需要 `od init` 步骤;守护进程在启动时会 `mkdir` 它所需的一切。 输入一段提示词,点击 **Send**,看着问题表单出现,填写它,看着待办事项卡片流式呈现,看着 artifact 渲染出来。点击 **Save to disk** 或将其下载为项目 ZIP 压缩包。 ### 首次运行状态 (`./.od/`) 守护进程拥有仓库根目录下的一个隐藏文件夹。其中的所有内容都被加入了 gitignore 并且仅限本机使用 —— 永远不要提交它。 ``` .od/ ├── app.sqlite ← projects · conversations · messages · open tabs ├── artifacts/ ← one-off "Save to disk" renders (timestamped) └── projects// ← per-project working dir, also the agent's cwd ``` | 想要… | 执行此操作 | |---|---| | 检查里面的内容 | `ls -la .od && sqlite3 .od/app.sqlite '.tables'` | | 重置到干净状态 | 停止守护进程,`rm -rf .od`,再次运行 `pnpm dev:all` | | 将其移至别处 | 暂不支持 —— 该路径是相对于仓库硬编码的 | 完整的文件映射、脚本和故障排除 → [`QUICKSTART.md`](QUICKSTART.md)。 ## 仓库结构 ``` 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 tag extractor │ │ └── question-form.ts ← 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// ← per-project working folder (agent's cwd) └── artifacts/ ← saved one-off renders ``` ## 设计系统

The 71 design systems library — style guide spread

开箱即用的 71 个系统,每一个都是一个单独的 [`DESIGN.md`](design-systems/README.md):
完整目录(点击展开) **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`
该库通过 [`scripts/sync-design-systems.mjs`](scripts/sync-design-systems.mjs) 从 [`VoltAgent/awesome-design-md`][acd2] 导入。重新运行以刷新。 ## 视觉方向 当用户没有品牌规范时,Agent 会发出包含五个精选方向的第二个表单——这是对 [`huashu-design` 的“5 大流派 × 20 种设计哲学”备用方案](https://github.com/alchaincyf/huashu-design#%E8%AE%BE%E8%AE%A1%E6%96%B9%E5%90%91%E9%A1%BE%E9%97%AE-fallback)的 OD 适配。每个方向都是一个确定性的规范——包括 OKLch 中的调色板、字体栈、布局姿态提示和参考——Agent 会将其逐字绑定到种子模板的 `:root` 中。一次单选点击 → 一个完全明确的视觉系统。没有即兴发挥,没有 AI 模板化。 | 方向 | 氛围 | 参考 | |---|---|---| | Editorial — Monocle / FT | 印刷杂志,墨水 + 米色 + 暖铁锈色 | Monocle · FT Weekend · NYT Magazine | | Modern minimal — Linear / Vercel | 冷峻、结构化、极简的强调色 | Linear · Vercel · Stripe | | Tech utility | 信息密度高、等宽字体、终端感 | Bloomberg · Bauhaus tools | | Brutalist | 原始、超大字体、无阴影、刺眼的强调色 | Bloomberg Businessweek · Achtung | | Soft warm | 宽松、低对比度、桃色系中性色 | Notion marketing · Apple Health | 完整规范 → [`src/prompts/directions.ts`](src/prompts/directions.ts)。 ## 反 AI 模板化机制 下面的整套机制是 [`huashu-design`](https://github.com/alchaincyf/huashu-design) 的实战策略,被移植到了 OD 的 Prompt 堆栈中,并通过附属文件预检步骤在每个技能中强制执行。阅读 [`src/prompts/discovery.ts`](src/prompts/discovery.ts) 以了解具体的措辞: - **问题表单优先。** 第 1 轮只包含 `` —— 没有思考,没有工具,没有叙述。用户以单选按钮的速度选择默认值。 - **品牌规范提取。** 当用户附上屏幕截图或 URL 时,Agent 会在编写 CSS 之前运行一个五步协议(定位 · 下载 · grep 提取十六进制色值 · 编写 `brand-spec.md` · 口头确认)。**绝不凭记忆猜测品牌颜色。** - **五维批判。** 在发出 `` 之前,Agent 会在理念 / 层级 / 执行 / 特异性 / 克制这五个维度上对其输出进行 1-5 分的静默打分。任何低于 3/5 的项目都被视为退步 —— 必须修复并重新打分。两次迭代是常态。 - **P0/P1/P2 检查清单。** 每个技能都附带一个 `references/checklist.md`,其中包含硬性的 P0 门控要求。Agent 必须在通过 P0 后才能发出产物。 - **模板化黑名单。** 刺眼的紫色渐变、通用的 emoji 图标、左侧带边框强调色的圆角卡片、手绘风格的 SVG 人物、将 Inter 用作 *展示* 字体、虚构的指标 —— 这些在 Prompt 中被明确禁止。 - **诚实的占位符 > 伪造的数据。** 当 Agent 没有真实的数字时,它会写 `—` 或一个带标签的灰色色块,而不是“10倍速提升”。 ## 对比 | 维度 | [Claude Design][cd] (Anthropic) | [Open CoDesign][ocod] | **Open Design** | |---|---|---|---| | 开源许可证 | 闭源 | MIT | **Apache-2.0** | | 产品形态 | Web (claude.ai) | 桌面端 | **Web 应用 + 本地守护进程** | | 可部署在 Vercel | ❌ | ❌ | **✅** | | Agent 运行时 | 内置 | 内置 ([`pi-ai`][piai]) | **委派给用户现有的 CLI** | | 技能 | 专有 | 12 个自定义 TS 模块 + `SKILL.md` | **19 个基于文件的 [`SKILL.md`][skill] 捆绑包,可直接放入** | | 设计系统 | 专有 | `DESIGN.md`(v0.2 路线图) | **`DESIGN.md` × 71 个内置系统** | | 供应商灵活性 | 仅限 Anthropic | 7+ 通过 [`pi-ai`][piai] | **受你的 Agent 支持的任何提供商** | | 初始化问题表单 | ❌ | ❌ | **✅ 硬性规则,第 1 轮** | | 方向选择器 | ❌ | ❌ | **✅ 5 个确定性方向** | | 实时待办进度 + 工具流 | ❌ | ✅ | **✅** (UX 模式源自 open-codesign) | | 沙盒 iframe 预览 | ❌ | ✅ | **✅** (模式源自 open-codesign) | | 评论模式精准编辑 | ❌ | ✅ | 🚧 路线图(借鉴自 open-codesign) | | AI 发出的调整面板 | ❌ | ✅ | 🚧 路线图(借鉴自 open-codesign) | | 文件系统级别的工作区 | ❌ | 部分 | **✅ 真实的 cwd、真实的工具、持久化的 SQLite** | | 五维自我批判 | ❌ | ❌ | **✅ 发出产物前的门控** | | 导出格式 | 有限 | HTML / PDF / PPTX / ZIP / Markdown | **HTML / PDF / PPTX / ZIP / Markdown** | | PPT 技能复用 | N/A | 内置 | **[`guizang-ppt-skill`][guizang] 可直接放入** | | 最低计费 | Pro / Max / Team | BYOK | **BYOK** | ## 支持的编程 Agent 在守护进程启动时从 `PATH` 自动检测。无需配置。 | Agent | 二进制文件 | 流式传输 | 备注 | |---|---|---|---| | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | `claude` | `--output-format stream-json`(类型化事件) | 一等公民 —— 保真度最高 | | [Codex CLI](https://github.com/openai/codex) | `codex` | 行缓冲 | `codex exec ` | | [Cursor Agent](https://www.cursor.com/cli) | `cursor-agent` | 行缓冲 | `cursor-agent -p` | | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | 行缓冲 | `gemini -p` | | [OpenCode](https://opencode.ai/) | `opencode` | 行缓冲 | `opencode run` | | [Qwen Code](https://github.com/QwenLM/qwen-code) | `qwen` | 行缓冲 | `qwen -p` | | Anthropic API · BYOK | n/a | 直接 SSE | 当 PATH 上没有 CLI 时的浏览器备用方案 | 添加新的 CLI 只需在 [`daemon/agents.js`](daemon/agents.js) 中增加一条记录。流式传输格式为 `claude-stream-json`(类型化事件)或 `plain`(原始文本)中的任意一种。 ## 参考资料与渊源 本仓库借鉴的每一个外部项目。每个链接都指向源码,以便你验证出处。 | 项目 | 在此扮演的角色 | |---|---| | [`Claude Design`][cd] | 本仓库作为其开源替代方案所对标的那款闭源产品。 | | [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design) | 设计哲学核心。初级设计师工作流、5 步品牌资产协议、反 AI 模板化清单、五维自我批判,以及我们方向选择器背后的“5 大流派 × 20 种设计哲学”库 —— 全部被浓缩到 [`src/prompts/discovery.ts`](src/prompts/discovery.ts) 和 [`src/prompts/directions.ts`](src/prompts/directions.ts) 中。 | | [**`op7418/guizang-ppt-skill`**][guizang] | 杂志风格网页 PPT 技,以原样打包在 [`skills/guizang-ppt/`](skills/guizang-ppt/) 下并保留了原始 LICENSE。作为演示文稿模式的默认选项。其 P0/P1/P2 检查清单文化被借鉴到了其他所有技能中。 | | [**`multica-ai/multica`**](https://github.com/multica-ai/multica) | 守护进程 + 适配器架构。PATH 扫描 Agent 检测、将本地守护进程作为唯一特权进程、“Agent 即队友”的世界观。我们采纳了该模型,但没有将其代码直接打包进仓库。 | | [**`OpenCoworkAI/open-codesign`**][ocod] | 首个开源的 Claude Design 替代方案,也是我们最接近的同行。采纳的 UX 模式:流式 artifact 循环、沙盒 iframe 预览(内置 React 18 + Babel)、实时 Agent 面板(待办事项 + 工具调用 + 可中断)、五格式导出列表(HTML/PDF/PPTX/ZIP/Markdown)、本地优先的存储中心、`SKILL.md` 品味注入。已列入我们路线图的 UX 模式:评论模式精准编辑、AI 发出的调整面板。**我们刻意没有将 [`pi-ai`][piai] 打包进仓库** —— open-codesign 将其作为 Agent 运行时捆绑;我们则委派给用户已有的 CLI。 | | [`VoltAgent/awesome-claude-design`][acd] / [`awesome-design-md`][acd2] | 9 段式 `DESIGN.md` 模式的来源以及通过 [`scripts/sync-design-systems.mjs`](scripts/sync-design-systems.mjs) 导入的 69 个产品系统。 | | [`farion1231/cc-switch`](https://github.com/farion1231/cc-switch) | 为跨多个 Agent CLI 的基于符号链接的技能分发提供了灵感。 | | [Claude Code 技能][skill] | 原样采纳的 `SKILL.md` 约定 —— 任何 Claude Code 技能放入 `skills/` 后都会被守护进程识别。 | 详细出处说明——我们借鉴了什么,刻意没有借鉴什么——存放在 [`docs/references.md`](docs/references.md)。 ## 路线图 - [x] 守护进程 + Agent 检测 + 技能注册表 + 设计系统目录 - [x] Web 应用 + 聊天 + 问题表单 + 待办进度 + 沙盒预览 - [x] 19 个技能 + 71 个设计系统 + 5 个视觉方向 + 5 个设备边框 - [x] 基于 SQLite 的 projects · conversations · messages · tabs · templates - [ ] 评论模式精准编辑(点击元素 → 输入指令 → 应用补丁) —— 模式源自 [`open-codesign`][ocod] - [ ] AI 发出的调整面板(模型展示值得调整的参数) —— 模式源自 [`open-codesign`][ocod] - [ ] Vercel + 隧道部署方案(拓扑 B) - [ ] 一键 `npx od init` 命令,用于搭建一个带有 `DESIGN.md` 的项目 - [ ] 技能市场(`od skills install `) 分阶段交付计划 → [`docs/roadmap.md`](docs/roadmap.md)。 ## 当前状态 这是一个早期的实现 —— 完整闭环(检测 → 选择技能 + 设计系统 → 聊天 → 解析 `` → 预览 → 保存)已经可以端到端地运行。Prompt 堆栈和技能库是项目核心价值所在,且已趋于稳定。组件级别的 UI 正在以每天一个版本的速度迭代发布。 ## 贡献 欢迎提交 Issue、PR、新技能和新设计系统。最高杠杆的贡献通常只需要一个文件夹、一个 Markdown 文件或一个 PR 级别的适配器: - **添加一项技能** —— 按照 [`SKILL.md`][skill] 约定将一个文件夹放入 [`skills/`](skills/)。 - **添加一个设计系统** —— 使用 9 段式模式将一个 `DESIGN.md` 放入 [`design-systems//`](design-systems/)。 - **接入一个新的编程 Agent CLI** —— 在 [`daemon/agents.js`](daemon/agents.js) 中添加一条记录。 完整的演练、合并标准、代码风格以及我们不接受的内容 → [`CONTRIBUTING.md`](CONTRIBUTING.md)([简体中文](CONTRIBUTING.zh-CN.md))。 ## 开源许可证 Apache-2.0。捆绑的 `skills/guizang-ppt/` 保留了其原始的 [LICENSE](skills/guizang-ppt/LICENSE)(MIT)以及对 [op7418](https://github.com/op7418) 的作者署名。
标签:AI设计, Claude Code, Cursor, Gemini CLI, GNU通用公共许可证, HTML导出, LLM Agent, Local-first, MITM代理, Node.js, PDF导出, pnpm, PPTX导出, UI设计, Vercel部署, 交互设计, 品牌设计, 大语言模型应用, 开源替代方案, 开源设计工具, 提示词工程, 本地优先, 沙盒预览, 策略决策点, 组件库, 自动化攻击, 设计系统