{"id":49492471,"url":"https://github.com/nexu-io/open-design","last_synced_at":"2026-05-06T12:01:32.545Z","repository":{"id":354439001,"uuid":"1223170290","full_name":"nexu-io/open-design","owner":"nexu-io","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","archived":false,"fork":false,"pushed_at":"2026-05-04T09:57:52.000Z","size":101978,"stargazers_count":21319,"open_issues_count":130,"forks_count":2344,"subscribers_count":81,"default_branch":"main","last_synced_at":"2026-05-04T10:03:02.643Z","etag":null,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"latest_commit_sha":null,"homepage":"https://open-design.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nexu-io.png","metadata":{"files":{"readme":"README.de.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.de.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-28T04:25:20.000Z","updated_at":"2026-05-04T10:02:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"5a1330ce-d6f6-446f-9809-b57624081607","html_url":"https://github.com/nexu-io/open-design","commit_stats":null,"previous_names":["nexu-io/open-design"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/nexu-io/open-design","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexu-io%2Fopen-design","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexu-io%2Fopen-design/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexu-io%2Fopen-design/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexu-io%2Fopen-design/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nexu-io","download_url":"https://codeload.github.com/nexu-io/open-design/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexu-io%2Fopen-design/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32692774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"created_at":"2026-05-01T07:05:08.363Z","updated_at":"2026-05-06T12:01:32.523Z","avatar_url":"https://github.com/nexu-io.png","language":"TypeScript","funding_links":[],"categories":["Marketing \u0026 Content","TypeScript","CLIs","\u003ca name=\"TypeScript\"\u003e\u003c/a\u003eTypeScript","AI Agent Frameworks \u0026 SDKs"],"sub_categories":["Compliance \u0026 Auditing","Orchestration Frameworks"],"readme":"# Open Design\n\n\u003e **Die Open-Source-Alternative zu [Claude Design][cd].** Local-first, web-deploybar, BYOK auf jeder Ebene: **10 coding-agent CLIs** werden automatisch in Ihrem `PATH` erkannt (Claude Code, Codex, Cursor Agent, Gemini CLI, OpenCode, Qwen, GitHub Copilot CLI, Hermes, Kimi, Pi) und werden zur Design-Engine, gesteuert von **31 kombinierbaren Skills** und **72 brandreifen Design Systems**. Keine CLI? Ein OpenAI-kompatibler BYOK-Proxy ist dieselbe Schleife ohne Spawn.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/banner.png\" alt=\"Open Design — editorial cover: design with the agent on your laptop\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/stargazers\"\u003e\u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=ffd700\u0026logo=github\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/network/members\"\u003e\u003cimg alt=\"Forks\" src=\"https://img.shields.io/github/forks/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=2ecc71\u0026logo=github\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/issues\"\u003e\u003cimg alt=\"Issues\" src=\"https://img.shields.io/github/issues/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=ff6b6b\u0026logo=github\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/pulls\"\u003e\u003cimg alt=\"Pull Requests\" src=\"https://img.shields.io/github/issues-pr/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=9b59b6\u0026logo=github\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/graphs/contributors\"\u003e\u003cimg alt=\"Contributors\" src=\"https://img.shields.io/github/contributors/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=3498db\u0026logo=github\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/commits/main\"\u003e\u003cimg alt=\"Commit activity\" src=\"https://img.shields.io/github/commit-activity/m/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=e67e22\u0026logo=git\u0026logoColor=white\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/commits/main\"\u003e\u003cimg alt=\"Last commit\" src=\"https://img.shields.io/github/last-commit/nexu-io/open-design?style=for-the-badge\u0026labelColor=0d1117\u0026color=8e44ad\u0026logo=git\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design/releases/latest\"\u003e\u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/nexu-io/open-design?style=flat-square\u0026color=blueviolet\u0026label=release\u0026include_prereleases\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#supported-coding-agents\"\u003e\u003cimg alt=\"Agents\" src=\"https://img.shields.io/badge/agents-10%20CLIs%20%2B%20BYOK%20proxy-black?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#design-systems\"\u003e\u003cimg alt=\"Design systems\" src=\"https://img.shields.io/badge/design%20systems-72-orange?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#skills\"\u003e\u003cimg alt=\"Skills\" src=\"https://img.shields.io/badge/skills-31-teal?style=flat-square\" /\u003e\u003c/a\u003e\n  \u003ca href=\"QUICKSTART.md\"\u003e\u003cimg alt=\"Quickstart\" src=\"https://img.shields.io/badge/quickstart-3%20commands-green?style=flat-square\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e · \u003cb\u003eDeutsch\u003c/b\u003e · \u003ca href=\"README.zh-CN.md\"\u003e简体中文\u003c/a\u003e · \u003ca href=\"README.zh-TW.md\"\u003e繁體中文\u003c/a\u003e · \u003ca href=\"README.ko.md\"\u003e한국어\u003c/a\u003e · \u003ca href=\"README.ja-JP.md\"\u003e日本語\u003c/a\u003e\u003c/p\u003e\n\n---\n\n## Warum es existiert\n\nAnthropics [Claude Design][cd] (veröffentlicht am 2026-04-17, Opus 4.7) hat gezeigt, was passiert, wenn ein LLM aufhört, Prosa zu schreiben, und anfängt, Design-Artefakte zu liefern. Es ging viral und blieb closed-source, nur bezahlt, nur Cloud, fest an Anthropics Modell und Anthropics Skills gebunden. Kein Checkout, kein Self-Hosting, kein Vercel-Deploy, kein Austausch gegen Ihren eigenen Agent.\n\n**Open Design (OD) ist die Open-Source-Alternative.** Dieselbe Schleife, dasselbe artifact-first Denkmodell, aber ohne Lock-in. Wir liefern keinen Agent: Die stärksten coding agents laufen bereits auf Ihrem Laptop. Wir verbinden sie mit einem skillgesteuerten Design-Workflow, der lokal mit `pnpm tools-dev` läuft, die Web-Schicht zu Vercel deployen kann und auf jeder Ebene BYOK bleibt.\n\nGeben Sie `make me a magazine-style pitch deck for our seed round` ein. Das interaktive Fragenformular erscheint, bevor das Modell auch nur ein Pixel improvisiert. Der Agent wählt eine von fünf kuratierten visuellen Richtungen. Ein live `TodoWrite` Plan streamt in die UI. Der daemon baut einen echten Projektordner auf der Festplatte mit Seed-Template, Layout-Bibliothek und Self-Check-Checklist. Der Agent liest sie, der Pre-Flight ist erzwungen, bewertet seine eigene Ausgabe mit einer fünfdimensionalen Kritik und gibt ein einzelnes `\u003cartifact\u003e` aus, das Sekunden später in einem sandboxed iframe rendert.\n\nDas ist nicht \"AI versucht, etwas zu designen\". Das ist eine AI, die durch den Prompt Stack darauf trainiert wurde, sich wie ein Senior Designer mit funktionierendem Dateisystem, deterministischer Palettenbibliothek und Checklist-Kultur zu verhalten: genau die Messlatte, die Claude Design gesetzt hat, aber offen und unter Ihrer Kontrolle.\n\nOD steht auf den Schultern von vier Open-Source-Projekten:\n\n- [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design) — der Design-Philosophie-Kompass. Junior-Designer Workflow, das 5-step brand-asset protocol, die anti-AI-slop checklist, die fünfdimensionale Self-Critique und die Idee \"5 schools × 20 design philosophies\" hinter unserem Direction Picker, alles verdichtet in [`apps/web/src/prompts/discovery.ts`](apps/web/src/prompts/discovery.ts).\n- [**`op7418/guizang-ppt-skill`**](https://github.com/op7418/guizang-ppt-skill) — der Deck-Modus. Unverändert unter [`skills/guizang-ppt/`](skills/guizang-ppt/) gebündelt, mit ursprünglicher LICENSE; magazinartige Layouts, WebGL-Hero, P0/P1/P2-Checklists.\n- [**`OpenCoworkAI/open-codesign`**](https://github.com/OpenCoworkAI/open-codesign) — UX North Star und nächster Peer. Die erste Open-Source-Alternative zu Claude Design. Wir übernehmen den Streaming-Artifact-Loop, das sandboxed-iframe Preview Pattern (vendored React 18 + Babel), das Live-Agent-Panel (todos + tool calls + unterbrechbare Generierung) und die fünf Exportformate (HTML / PDF / PPTX / ZIP / Markdown). Wir unterscheiden uns bewusst im Formfaktor: Sie sind eine Desktop-Electron-App mit gebündeltem [`pi-ai`][piai]; wir sind eine Web-App + lokaler daemon, die an Ihre vorhandene CLI delegiert.\n- [**`multica-ai/multica`**](https://github.com/multica-ai/multica) — die daemon- und runtime-Architektur. PATH-Scan-Agent-Erkennung, der lokale daemon als einziger privilegierter Prozess, die Agent-as-teammate Sichtweise.\n\n## Auf einen Blick\n\n| | Was Sie bekommen |\n|---|---|\n| **Code-Agent-CLIs (10)** | Claude Code · Codex CLI · Cursor Agent · Gemini CLI · OpenCode · Qwen Code · GitHub Copilot CLI · Hermes (ACP) · Kimi CLI (ACP) · Pi (RPC) — automatisch im `PATH` erkannt, mit einem Klick wechselbar |\n| **BYOK-Fallback** | OpenAI-kompatibler Proxy unter `/api/proxy/stream` — fügen Sie `baseUrl` + `apiKey` + `model` ein und jeder Anbieter (Anthropic-via-OpenAI, DeepSeek, Groq, MiMo, OpenRouter, Ihr selbst gehostetes vLLM oder jeder andere OpenAI-kompatible Provider) wird zur Engine. Internal-IP/SSRF wird am daemon-Rand blockiert. |\n| **Design Systems integriert** | **72** — 2 handgeschriebene Starter + 70 Produktsysteme (Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Anthropic, Apple, Cursor, Supabase, Figma, Xiaohongshu, …), importiert aus [`awesome-design-md`][acd2] |\n| **Skills integriert** | **31** — 27 im `prototype` mode (web-prototype, saas-landing, dashboard, mobile-app, gamified-app, social-carousel, magazine-poster, dating-web, sprite-animation, motion-frames, critique, tweaks, wireframe-sketch, pm-spec, eng-runbook, finance-report, hr-onboarding, invoice, kanban-board, team-okrs, …) + 4 im `deck` mode (`guizang-ppt` · `simple-deck` · `replit-deck` · `weekly-update`). Im Picker nach `scenario` gruppiert: design / marketing / operation / engineering / product / finance / hr / sale / personal. |\n| **Medienerzeugung** | Image-, Video- und Audio-Surfaces laufen neben dem Design-Loop. **gpt-image-2** (Azure / OpenAI) für Poster, Avatare, Infografiken, illustrierte Karten · **Seedance 2.0** (ByteDance) für 15s-cinematic text-to-video und image-to-video · **HyperFrames** ([heygen-com/hyperframes](https://github.com/heygen-com/hyperframes)) für HTML→MP4 Motion Graphics (Produkt-Reveals, kinetische Typografie, Datendiagramme, Social Overlays, Logo-Outros). **93** sofort reproduzierbare Prompts — 43 gpt-image-2 + 39 Seedance + 11 HyperFrames — unter [`prompt-templates/`](prompt-templates/), mit Vorschau-Thumbnails und Quellenangabe. Gleiche Chat-Oberfläche wie Code; gibt einen echten `.mp4` / `.png` Chip in den Projekt-Workspace aus. |\n| **Visuelle Richtungen** | 5 kuratierte Schulen (Editorial Monocle · Modern Minimal · Warm Soft · Tech Utility · Brutalist Experimental), jeweils mit deterministischer OKLch-Palette + Font Stack ([`apps/web/src/prompts/directions.ts`](apps/web/src/prompts/directions.ts)) |\n| **Device frames** | iPhone 15 Pro · Pixel · iPad Pro · MacBook · Browser Chrome — pixelgenau, skillübergreifend unter [`assets/frames/`](assets/frames/) geteilt |\n| **Agent-Runtime** | Der lokale daemon startet die CLI in Ihrem Projektordner: Der Agent bekommt echte `Read`, `Write`, `Bash`, `WebFetch` gegen eine echte Festplattenumgebung, mit Windows-`ENAMETOOLONG` Fallbacks (stdin / prompt-file) in jedem Adapter |\n| **Imports** | Ziehen Sie einen [Claude Design][cd] Export-ZIP in den Welcome Dialog: `POST /api/import/claude-design` parst ihn zu einem echten Projekt, damit Ihr Agent dort weiterarbeiten kann, wo Anthropic aufgehört hat |\n| **Persistence** | SQLite in `.od/app.sqlite`: projects · conversations · messages · tabs · saved templates. Morgen wieder öffnen, todo card und offene Dateien sind genau dort, wo Sie sie verlassen haben. |\n| **Lebenszyklus** | Ein Einstiegspunkt: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) — startet daemon + web (+ desktop) unter typisierten sidecar stamps |\n| **Desktop** | Optionale Electron Shell mit sandboxed renderer + sidecar IPC (STATUS / EVAL / SCREENSHOT / CONSOLE / CLICK / SHUTDOWN) — treibt `tools-dev inspect desktop screenshot` für E2E |\n| **Bereitstellbar auf** | Lokal (`pnpm tools-dev`) · Vercel Web Layer · packaged Electron (Platzhalter, in Arbeit) |\n| **Lizenz** | Apache-2.0 |\n\n[acd2]: https://github.com/VoltAgent/awesome-design-md\n\n## Demo\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/01-entry-view.png\" alt=\"01 · Entry view\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eEntry view\u003c/b\u003e — Skill wählen, Design System wählen, Brief eingeben. Dieselbe Oberfläche für Prototypen, Decks, mobile Apps, Dashboards und Editorial Pages.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/02-question-form.png\" alt=\"02 · Turn-1 discovery form\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eTurn-1 discovery form\u003c/b\u003e — bevor das Modell ein Pixel schreibt, fixiert OD den Brief: Oberfläche, Zielgruppe, Ton, Brand-Kontext, Umfang. 30 Sekunden Radio Buttons schlagen 30 Minuten Redirects.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/03-direction-picker.png\" alt=\"03 · Direction picker\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eDirection picker\u003c/b\u003e — wenn der Nutzer keine Brand hat, gibt der Agent ein zweites Formular mit 5 kuratierten Richtungen aus (Monocle / Modern Minimal / Tech Utility / Brutalist / Soft Warm). Ein Radio-Klick → deterministische Palette + Font Stack, kein Model-Freestyle.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/04-todo-progress.png\" alt=\"04 · Live todo progress\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eLive todo progress\u003c/b\u003e — der Plan des Agent streamt als Live Card. \u003ccode\u003ein_progress\u003c/code\u003e → \u003ccode\u003ecompleted\u003c/code\u003e Updates landen in Echtzeit. Der Nutzer kann mitten im Flug günstig umleiten.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/05-preview-iframe.png\" alt=\"05 · Sandboxed preview\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eSandboxed preview\u003c/b\u003e — jedes \u003ccode\u003e\u0026lt;artifact\u0026gt;\u003c/code\u003e rendert in einem sauberen srcdoc iframe. Direkt im File Workspace editierbar; als HTML, PDF oder ZIP herunterladbar.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/06-design-systems-library.png\" alt=\"06 · 72-system library\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e72-system library\u003c/b\u003e — jedes Produktsystem zeigt seine 4-Farben-Signatur. Klicken Sie für das vollständige \u003ccode\u003eDESIGN.md\u003c/code\u003e, Swatch Grid und Live Showcase.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/07-magazine-deck.png\" alt=\"07 · Magazine deck\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eDeck mode (guizang-ppt)\u003c/b\u003e — der gebündelte \u003ca href=\"https://github.com/op7418/guizang-ppt-skill\"\u003e\u003ccode\u003eguizang-ppt-skill\u003c/code\u003e\u003c/a\u003e wird unverändert übernommen. Magazinlayouts, WebGL-Hero-Hintergründe, Single-File-HTML-Ausgabe, PDF-Export.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\u003cimg src=\"docs/screenshots/08-mobile-app.png\" alt=\"08 · Mobile prototype\" /\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003eMobile prototype\u003c/b\u003e — pixelgenauer iPhone 15 Pro Chrome (Dynamic Island, Statusbar-SVGs, Home Indicator). Multi-Screen-Prototypen nutzen die gemeinsamen \u003ccode\u003e/frames/\u003c/code\u003e Assets, damit der Agent nie ein Telefon neu zeichnet.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Skills\n\n**31 Skills werden direkt mitgeliefert.** Jeder ist ein Ordner unter [`skills/`](skills/), folgt der Claude Code [`SKILL.md`][skill] Konvention und erweitert sie um ein `od:` Frontmatter, das der daemon unverändert parst: `mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `featured`, `fidelity`, `speaker_notes`, `animations`, `example_prompt` ([`apps/daemon/src/skills.ts`](apps/daemon/src/skills.ts)).\n\nZwei oberste **Modes** tragen den Katalog: **`prototype`** (27 Skills, alles, was als einseitiges Artefakt rendert, von Magazin-Landing bis Phone Screen bis PM Spec Doc) und **`deck`** (4 Skills, horizontale Swipe-Präsentationen mit Deck-Framework-Chrome). Das Feld **`scenario`** gruppiert sie im Picker: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.\n\n### Showcase-Beispiele\n\nDie visuell markanten Skills, die Sie wahrscheinlich zuerst ausführen. Jeder bringt ein echtes `example.html` mit, das Sie direkt aus dem Repo öffnen können, um genau zu sehen, was der Agent erzeugt: keine Authentifizierung, kein Setup.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/dating-web/\"\u003e\u003cimg src=\"docs/screenshots/skills/dating-web.png\" alt=\"dating-web\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/dating-web/\"\u003e\u003ccode\u003edating-web\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eConsumer dating / matchmaking dashboard — linke Navigation, Ticker Bar, KPIs, 30-day mutual-matches chart, Editorial-Typografie.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/digital-eguide/\"\u003e\u003cimg src=\"docs/screenshots/skills/digital-eguide.png\" alt=\"digital-eguide\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/digital-eguide/\"\u003e\u003ccode\u003edigital-eguide\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003etemplate\u003c/i\u003e\u003cbr/\u003eZweiseitiger Digital E-Guide — Cover (Titel, Autor, TOC Teaser) + Lesson Spread mit Pull Quote und Schritteliste. Creator / Lifestyle Tone.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/email-marketing/\"\u003e\u003cimg src=\"docs/screenshots/skills/email-marketing.png\" alt=\"email-marketing\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/email-marketing/\"\u003e\u003ccode\u003eemail-marketing\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eBrand product-launch HTML email — Masthead, Hero Image, Headline Lockup, CTA, Specs Grid. Zentrierte Single Column, table-fallback safe.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/gamified-app/\"\u003e\u003cimg src=\"docs/screenshots/skills/gamified-app.png\" alt=\"gamified-app\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/gamified-app/\"\u003e\u003ccode\u003egamified-app\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eDrei-Frame gamified mobile-app prototype auf dunkler Showcase Stage — Cover, today's quests mit XP Ribbons + Level Bar, Quest Detail.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/mobile-onboarding/\"\u003e\u003cimg src=\"docs/screenshots/skills/mobile-onboarding.png\" alt=\"mobile-onboarding\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/mobile-onboarding/\"\u003e\u003ccode\u003emobile-onboarding\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eDrei-Frame Mobile Onboarding Flow — Splash, Value Prop, Sign-in. Status Bar, Swipe Dots, Primary CTA.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/motion-frames/\"\u003e\u003cimg src=\"docs/screenshots/skills/motion-frames.png\" alt=\"motion-frames\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/motion-frames/\"\u003e\u003ccode\u003emotion-frames\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eSingle-Frame Motion-Design-Hero mit loopenden CSS-Animationen — rotierender Type Ring, animierter Globus, tickender Timer. Bereit für HyperFrames-Handoff.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/social-carousel/\"\u003e\u003cimg src=\"docs/screenshots/skills/social-carousel.png\" alt=\"social-carousel\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/social-carousel/\"\u003e\u003ccode\u003esocial-carousel\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003eDrei Karten im 1080×1080 Social-Media-Carousel — filmische Panels mit Display Headlines, die sich über die Serie verbinden, Brand Mark, Loop Affordance.\u003c/sub\u003e\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\u003ca href=\"skills/sprite-animation/\"\u003e\u003cimg src=\"docs/screenshots/skills/sprite-animation.png\" alt=\"sprite-animation\" /\u003e\u003c/a\u003e\u003cbr/\u003e\n\u003csub\u003e\u003cb\u003e\u003ca href=\"skills/sprite-animation/\"\u003e\u003ccode\u003esprite-animation\u003c/code\u003e\u003c/a\u003e\u003c/b\u003e · \u003ci\u003eprototype\u003c/i\u003e\u003cbr/\u003ePixel / 8-bit Animated Explainer Slide — vollflächige Cream Stage, animiertes Pixel Mascot, kinetische japanische Display Type, loopende CSS Keyframes.\u003c/sub\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### Design- \u0026 Marketing-Oberflächen (Prototyp-Modus)\n\n| Skill | Plattform | Szenario | Was er erzeugt |\n|---|---|---|---|\n| [`web-prototype`](skills/web-prototype/) | desktop | design | Single-page HTML — Landings, Marketing, Hero Pages (default für prototype) |\n| [`saas-landing`](skills/saas-landing/) | desktop | marketing | Hero / Features / Pricing / CTA Marketing Layout |\n| [`dashboard`](skills/dashboard/) | desktop | operation | Admin / Analytics mit Sidebar + dichtem Datenlayout |\n| [`pricing-page`](skills/pricing-page/) | desktop | sale | Eigenständiges Pricing + Vergleichstabellen |\n| [`docs-page`](skills/docs-page/) | desktop | engineering | 3-spaltiges Dokumentationslayout |\n| [`blog-post`](skills/blog-post/) | desktop | marketing | Editorial Long-form |\n| [`mobile-app`](skills/mobile-app/) | mobile | design | iPhone 15 Pro / Pixel gerahmte App-Screen(s) |\n| [`mobile-onboarding`](skills/mobile-onboarding/) | mobile | design | Multi-Screen Mobile Onboarding Flow (splash · value-prop · sign-in) |\n| [`gamified-app`](skills/gamified-app/) | mobile | personal | Drei-Frame gamified mobile-app prototype |\n| [`email-marketing`](skills/email-marketing/) | desktop | marketing | Brand product-launch HTML email (table-fallback safe) |\n| [`social-carousel`](skills/social-carousel/) | desktop | marketing | 3-card 1080×1080 social carousel |\n| [`magazine-poster`](skills/magazine-poster/) | desktop | marketing | Einseitiges Poster im Magazin-Stil |\n| [`motion-frames`](skills/motion-frames/) | desktop | marketing | Motion-design Hero mit loopenden CSS-Animationen |\n| [`sprite-animation`](skills/sprite-animation/) | desktop | marketing | Pixel / 8-bit Animated Explainer Slide |\n| [`dating-web`](skills/dating-web/) | desktop | personal | Consumer dating dashboard mockup |\n| [`digital-eguide`](skills/digital-eguide/) | desktop | marketing | Zweiseitiger Digital E-Guide (cover + lesson) |\n| [`wireframe-sketch`](skills/wireframe-sketch/) | desktop | design | Handgezeichnete Ideenskizze — für den \"show something visible early\" Pass |\n| [`critique`](skills/critique/) | desktop | design | Fünfdimensionales Self-Critique Scoresheet (Philosophy · Hierarchy · Detail · Function · Innovation) |\n| [`tweaks`](skills/tweaks/) | desktop | design | AI-emitted tweaks panel — das Modell zeigt die Parameter, die sich sinnvoll nachjustieren lassen |\n\n### Deck-Oberflächen (Deck-Modus)\n\n| Skill | Default für | Was er erzeugt |\n|---|---|---|\n| [`guizang-ppt`](skills/guizang-ppt/) | **default** für deck | Web-PPT im Magazinstil — unverändert aus [op7418/guizang-ppt-skill][guizang] gebündelt, ursprüngliche LICENSE bewahrt |\n| [`simple-deck`](skills/simple-deck/) | — | Minimaler horizontal-swipe deck |\n| [`replit-deck`](skills/replit-deck/) | — | Product-walkthrough deck (Replit-style) |\n| [`weekly-update`](skills/weekly-update/) | — | Team weekly cadence als swipe deck (progress · blockers · next) |\n\n### Office- \u0026 Operations-Oberflächen (Prototyp-Modus, dokumentartige Szenarien)\n\n| Skill | Szenario | Was er erzeugt |\n|---|---|---|\n| [`pm-spec`](skills/pm-spec/) | product | PM specification doc mit TOC + decision log |\n| [`team-okrs`](skills/team-okrs/) | product | OKR scoresheet |\n| [`meeting-notes`](skills/meeting-notes/) | operation | Meeting decision log |\n| [`kanban-board`](skills/kanban-board/) | operation | Board snapshot |\n| [`eng-runbook`](skills/eng-runbook/) | engineering | Incident runbook |\n| [`finance-report`](skills/finance-report/) | finance | Exec finance summary |\n| [`invoice`](skills/invoice/) | finance | Single-page invoice |\n| [`hr-onboarding`](skills/hr-onboarding/) | hr | Role onboarding plan |\n\nEinen Skill hinzuzufügen bedeutet: ein Ordner. Lesen Sie [`docs/skills-protocol.md`](docs/skills-protocol.md) für das erweiterte Frontmatter, forken Sie einen vorhandenen Skill, starten Sie den daemon neu, und er erscheint im Picker. Der Katalog-Endpunkt ist `GET /api/skills`; die Seed-Zusammenstellung pro Skill (Template + Side-File-Referenzen) liegt in `GET /api/skills/:id/example`.\n\n## Sechs tragende Ideen\n\n### 1 · Wir liefern keinen Agent. Ihrer ist gut genug.\n\nDer daemon durchsucht beim Start Ihren `PATH` nach [`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), [`copilot`](https://github.com/features/copilot/cli), `hermes`, `kimi` und [`pi`](https://github.com/mariozechner/pi-ai). Was er findet, wird zur möglichen Design-Engine: über stdio mit je einem Adapter pro CLI gesteuert und im Model Picker austauschbar. Inspiriert von [`multica`](https://github.com/multica-ai/multica) und [`cc-switch`](https://github.com/farion1231/cc-switch). Keine CLI installiert? `POST /api/proxy/stream` ist dieselbe Pipeline ohne Spawn: Fügen Sie ein beliebiges OpenAI-kompatibles `baseUrl` + `apiKey` ein, und der daemon leitet SSE-Chunks zurück, wobei loopback / link-local / RFC1918 Ziele am Rand abgelehnt werden.\n\n### 2 · Skills sind Dateien, keine Plugins.\n\nNach Claude Codes [`SKILL.md` Konvention](https://docs.anthropic.com/en/docs/claude-code/skills) ist jeder Skill `SKILL.md` + `assets/` + `references/`. Legen Sie einen Ordner in [`skills/`](skills/), starten Sie den daemon neu, und er erscheint im Picker. Das gebündelte `magazine-web-ppt` ist [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill), unverändert eingecheckt: ursprüngliche Lizenz bewahrt, Attribution bewahrt.\n\n### 3 · Design Systems sind portables Markdown, kein Theme JSON.\n\nDas 9-Section `DESIGN.md` Schema aus [`VoltAgent/awesome-design-md`][acd2]: color, typography, spacing, layout, components, motion, voice, brand, anti-patterns. Jedes Artefakt liest aus dem aktiven System. System wechseln → das nächste Render nutzt die neuen Tokens. Das Dropdown bringt **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, Xiaohongshu…** mit, insgesamt 72.\n\n### 4 · Das interaktive Fragenformular verhindert 80% der Redirects.\n\nODs Prompt Stack enthält eine harte `RULE 1`: Jeder frische Design Brief beginnt mit einem `\u003cquestion-form id=\"discovery\"\u003e` statt mit Code. Surface · audience · tone · brand context · scale · constraints. Auch ein langer Brief lässt Designentscheidungen offen: visueller Ton, Farbhaltung, Maßstab. Genau diese Dinge fixiert das Formular in 30 Sekunden. Die Kosten einer falschen Richtung sind eine Chat-Runde, nicht ein fertiges Deck.\n\nDas ist der aus [`huashu-design`](https://github.com/alchaincyf/huashu-design) destillierte **Junior-Designer mode**: Fragen vorne bündeln, früh etwas Sichtbares zeigen (selbst ein Wireframe mit grauen Blöcken), den Nutzer günstig umleiten lassen. Zusammen mit dem Brand-Asset-Protokoll (locate · download · `grep` hex · write `brand-spec.md` · vocalise) ist es der wichtigste Grund, warum Output nicht mehr nach AI-Freestyle wirkt, sondern nach einem Designer, der vor dem Malen aufgepasst hat.\n\n### 5 · Der daemon lässt den Agent fühlen, als wäre er auf Ihrem Laptop, weil er es ist.\n\nDer daemon startet die CLI mit `cwd` auf den Artifact-Ordner des Projekts unter `.od/projects/\u003cid\u003e/`. Der Agent bekommt `Read`, `Write`, `Bash`, `WebFetch`: echte Tools gegen ein echtes Dateisystem. Er kann das `assets/template.html` des Skills lesen, Ihre CSS nach Hex-Werten `grep`en, ein `brand-spec.md` schreiben, generierte Bilder ablegen und `.pptx` / `.zip` / `.pdf` Dateien erzeugen, die am Ende des Turns als Download Chips im File Workspace erscheinen. Sessions, Conversations, Messages und Tabs persistieren in einer lokalen SQLite DB: Öffnen Sie das Projekt morgen wieder, und die Todo Card des Agent ist dort, wo Sie sie verlassen haben.\n\n### 6 · Der Prompt Stack ist das Produkt.\n\nWas beim Senden zusammengesetzt wird, ist nicht \"system + user\". Es ist:\n\n```\nDISCOVERY directives  (turn-1 form, turn-2 brand branch, TodoWrite, 5-dim critique)\n  + identity charter   (OFFICIAL_DESIGNER_PROMPT, anti-AI-slop, junior-pass)\n  + active DESIGN.md   (72 systems available)\n  + active SKILL.md    (31 skills available)\n  + project metadata   (kind, fidelity, speakerNotes, animations, inspiration ids)\n  + skill side files   (auto-injected pre-flight: read assets/template.html + references/*.md)\n  + (deck kind, no skill seed) DECK_FRAMEWORK_DIRECTIVE   (nav / counter / scroll / print)\n```\n\nJede Ebene ist kombinierbar. Jede Ebene ist eine Datei, die Sie editieren können. Lesen Sie [`apps/web/src/prompts/system.ts`](apps/web/src/prompts/system.ts) und [`apps/web/src/prompts/discovery.ts`](apps/web/src/prompts/discovery.ts), um den echten Vertrag zu sehen.\n\n## Architektur\n\n```\n┌────────────────────── browser (Next.js 16) ──────────────────────┐\n│  chat · file workspace · iframe preview · settings · imports     │\n└──────────────┬───────────────────────────────────┬───────────────┘\n               │ /api/* (rewritten in dev)          │\n               ▼                                    ▼\n   ┌──────────────────────────────────┐   /api/proxy/stream (SSE)\n   │  Local daemon (Express + SQLite) │   ─→ any OpenAI-compat\n   │                                  │       endpoint (BYOK)\n   │  /api/agents          /api/skills│       w/ SSRF blocking\n   │  /api/design-systems  /api/projects/…\n   │  /api/chat (SSE)      /api/proxy/stream (SSE)\n   │  /api/templates       /api/import/claude-design\n   │  /api/artifacts/save  /api/artifacts/lint\n   │  /api/upload          /api/projects/:id/files…\n   │  /artifacts (static)  /frames (static)\n   │\n   │  optional: sidecar IPC at /tmp/open-design/ipc/\u003cns\u003e/\u003capp\u003e.sock\n   │  (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN)\n   └─────────┬────────────────────────┘\n             │ spawn(cli, [...], { cwd: .od/projects/\u003cid\u003e })\n             ▼\n   ┌──────────────────────────────────────────────────────────────────┐\n   │  claude · codex · gemini · opencode · cursor-agent · qwen        │\n   │  copilot · hermes (ACP) · kimi (ACP) · pi (RPC)                  │\n   │  reads SKILL.md + DESIGN.md, writes artifacts to disk            │\n   └──────────────────────────────────────────────────────────────────┘\n```\n\n| Layer | Stack |\n|---|---|\n| Frontend | Next.js 16 App Router + React 18 + TypeScript, Vercel-deploybar |\n| Daemon | Node 24 · Express · SSE streaming · `better-sqlite3`; Tabellen: `projects` · `conversations` · `messages` · `tabs` · `templates` |\n| Agent transport | `child_process.spawn`; typisierte Event-Parser für `claude-stream-json` (Claude Code), `copilot-stream-json` (Copilot), `json-event-stream` pro-CLI Parser (Codex / Gemini / OpenCode / Cursor Agent), `acp-json-rpc` (Hermes / Kimi via Agent Client Protocol), `pi-rpc` (Pi via stdio JSON-RPC), `plain` (Qwen Code) |\n| BYOK proxy | `POST /api/proxy/stream` → OpenAI-kompatibles `/v1/chat/completions`, SSE pass-through; lehnt loopback / link-local / RFC1918 Hosts am daemon-Rand ab |\n| Storage | Plain files in `.od/projects/\u003cid\u003e/` + SQLite in `.od/app.sqlite` (gitignored, auto-created). Root mit `OD_DATA_DIR` für Testisolation überschreibbar |\n| Preview | Sandboxed iframe via `srcdoc` + per-Skill `\u003cartifact\u003e` Parser ([`apps/web/src/artifacts/parser.ts`](apps/web/src/artifacts/parser.ts)) |\n| Export | HTML (inline assets) · PDF (browser print, deck-aware) · PPTX (agent-driven via skill) · ZIP (archiver) · Markdown |\n| Lifecycle | `pnpm tools-dev start \\| stop \\| run \\| status \\| logs \\| inspect \\| check`; Ports über `--daemon-port` / `--web-port`, Namespaces über `--namespace` |\n| Desktop (optional) | Electron Shell — entdeckt die Web URL über sidecar IPC, kein Port-Raten; derselbe `STATUS`/`EVAL`/`SCREENSHOT`/`CONSOLE`/`CLICK`/`SHUTDOWN` Kanal treibt `tools-dev inspect desktop …` für E2E |\n\n## Schnellstart\n\n```bash\ngit clone https://github.com/nexu-io/open-design.git\ncd open-design\ncorepack enable\ncorepack pnpm --version   # should print 10.33.2\npnpm install\npnpm tools-dev run web\n# open the web URL printed by tools-dev\n```\n\nUmgebungsanforderungen: Node `~24` und pnpm `10.33.x`. `nvm`/`fnm` sind nur optionale Helfer; wenn Sie eines davon nutzen, führen Sie vor `pnpm install` `nvm install 24 \u0026\u0026 nvm use 24` oder `fnm install 24 \u0026\u0026 fnm use 24` aus.\n\nFür Desktop-/Background-Start, Fixed-Port-Restarts und Media-Generation-Dispatcher-Checks (`OD_BIN`, `OD_DAEMON_URL`, `apps/daemon/dist/cli.js`) siehe [`QUICKSTART.de.md`](QUICKSTART.de.md).\n\nDer erste Load:\n\n1. erkennt, welche Agent-CLIs Sie im `PATH` haben, und wählt automatisch eine aus.\n2. lädt 31 Skills + 72 Design Systems.\n3. öffnet den Welcome Dialog, damit Sie einen Anthropic Key einfügen können (nur für den BYOK-Fallback-Pfad nötig).\n4. **erstellt automatisch `./.od/`** — den lokalen Runtime-Ordner für die SQLite Project DB, per-project artifacts und saved renders. Es gibt keinen `od init` Schritt; der daemon `mkdir`t beim Boot alles, was er braucht.\n\nGeben Sie einen Prompt ein, drücken Sie **Senden**, sehen Sie das Fragenformular erscheinen, füllen Sie es aus, sehen Sie die Todo Card streamen, sehen Sie das Artifact rendern. Klicken Sie **Auf Datenträger speichern** oder laden Sie ein Projekt-ZIP herunter.\n\n### First-run state (`./.od/`)\n\nDer daemon besitzt einen versteckten Ordner am Repo-Root. Alles darin ist gitignored und maschinenlokal: niemals committen.\n\n```\n.od/\n├── app.sqlite                 ← projects · conversations · messages · open tabs\n├── artifacts/                 ← one-off \"Save to disk\" renders (timestamped)\n└── projects/\u003cid\u003e/             ← per-project working dir, also the agent's cwd\n```\n\n| Wenn Sie möchten… | Tun Sie das |\n|---|---|\n| Inhalt prüfen | `ls -la .od \u0026\u0026 sqlite3 .od/app.sqlite '.tables'` |\n| Sauber zurücksetzen | `pnpm tools-dev stop`, `rm -rf .od`, dann erneut `pnpm tools-dev run web` |\n| Woandershin verschieben | noch nicht unterstützt — der Pfad ist relativ zum Repo hart codiert |\n\nVollständige Dateistruktur, Skripte und Fehlerbehebung → [`QUICKSTART.de.md`](QUICKSTART.de.md).\n\n## Repository-Struktur\n\n```\nopen-design/\n├── README.md                      ← English\n├── README.de.md                   ← Deutsch\n├── README.zh-CN.md                ← 简体中文\n├── README.ko.md                   ← 한국어\n├── QUICKSTART.md                  ← run / build / deploy guide\n├── package.json                   ← pnpm workspace, single bin: od\n│\n├── apps/\n│   ├── daemon/                    ← Node + Express, the only server\n│   │   ├── src/                   ← TypeScript daemon source\n│   │   │   ├── cli.ts             ← `od` bin source, compiled to dist/cli.js\n│   │   │   ├── server.ts          ← /api/* routes (projects, chat, files, exports)\n│   │   │   ├── agents.ts          ← PATH scanner + per-CLI argv builders\n│   │   │   ├── claude-stream.ts   ← streaming JSON parser for Claude Code stdout\n│   │   │   ├── skills.ts          ← SKILL.md frontmatter loader\n│   │   │   └── db.ts              ← SQLite schema (projects/messages/templates/tabs)\n│   │   ├── sidecar/               ← tools-dev daemon sidecar wrapper\n│   │   └── tests/                 ← daemon package tests\n│   │\n│   └── web/                       ← Next.js 16 App Router + React client\n│       ├── app/                   ← App Router entrypoints\n│       ├── next.config.ts         ← dev rewrites + prod static export to out/\n│       └── src/                   ← React + TypeScript client modules\n│           ├── App.tsx            ← routing, bootstrap, settings\n│           ├── components/        ← chat, composer, picker, preview, sketch, …\n│           ├── prompts/\n│           │   ├── system.ts      ← composeSystemPrompt(base, skill, DS, metadata)\n│           │   ├── discovery.ts   ← turn-1 form + turn-2 branch + 5-dim critique\n│           │   └── directions.ts  ← 5 visual directions × OKLch palette + font stack\n│           ├── artifacts/         ← streaming \u003cartifact\u003e parser + manifests\n│           ├── runtime/           ← iframe srcdoc, markdown, export helpers\n│           ├── providers/         ← daemon SSE + BYOK API transports\n│           └── state/             ← config + projects (localStorage + daemon-backed)\n│\n├── e2e/                           ← Playwright UI + external integration/Vitest harness\n│\n├── packages/\n│   ├── contracts/                 ← shared web/daemon app contracts\n│   ├── sidecar-proto/             ← Open Design sidecar protocol contract\n│   ├── sidecar/                   ← generic sidecar runtime primitives\n│   └── platform/                  ← generic process/platform primitives\n│\n├── skills/                        ← 31 SKILL.md skill bundles (27 prototype + 4 deck)\n│   ├── web-prototype/             ← default for prototype mode\n│   ├── saas-landing/  dashboard/  pricing-page/  docs-page/  blog-post/\n│   ├── mobile-app/  mobile-onboarding/  gamified-app/\n│   ├── email-marketing/  social-carousel/  magazine-poster/\n│   ├── motion-frames/  sprite-animation/  digital-eguide/  dating-web/\n│   ├── critique/  tweaks/  wireframe-sketch/\n│   ├── pm-spec/  team-okrs/  meeting-notes/  kanban-board/\n│   ├── eng-runbook/  finance-report/  invoice/  hr-onboarding/\n│   ├── simple-deck/  replit-deck/  weekly-update/   ← deck mode\n│   └── guizang-ppt/               ← bundled magazine-web-ppt (default for deck)\n│       ├── SKILL.md\n│       ├── assets/template.html   ← seed\n│       └── references/{themes,layouts,components,checklist}.md\n│\n├── design-systems/                ← 72 DESIGN.md systems\n│   ├── default/                   ← Neutral Modern (starter)\n│   ├── warm-editorial/            ← Warm Editorial (starter)\n│   ├── linear-app/  vercel/  stripe/  airbnb/  notion/  cursor/  apple/  …\n│   └── README.md                  ← catalog overview\n│\n├── assets/\n│   └── frames/                    ← shared device frames (used cross-skill)\n│       ├── iphone-15-pro.html\n│       ├── android-pixel.html\n│       ├── ipad-pro.html\n│       ├── macbook.html\n│       └── browser-chrome.html\n│\n├── templates/\n│   └── deck-framework.html        ← deck baseline (nav / counter / print)\n│\n├── scripts/\n│   └── sync-design-systems.ts     ← re-import upstream awesome-design-md tarball\n│\n├── docs/\n│   ├── spec.md                    ← product spec, scenarios, differentiation\n│   ├── architecture.md            ← topologies, data flow, components\n│   ├── skills-protocol.md         ← extended SKILL.md od: frontmatter\n│   ├── agent-adapters.md          ← per-CLI detection + dispatch\n│   ├── modes.md                   ← prototype / deck / template / design-system\n│   ├── references.md              ← long-form provenance\n│   ├── roadmap.md                 ← phased delivery\n│   ├── schemas/                   ← JSON schemas\n│   └── examples/                  ← canonical artifact examples\n│\n└── .od/                           ← runtime data, gitignored, auto-created\n    ├── app.sqlite                 ← projects / conversations / messages / tabs\n    ├── projects/\u003cid\u003e/             ← per-project working folder (agent's cwd)\n    └── artifacts/                 ← saved one-off renders\n```\n\n## Designsysteme\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/design-systems-library.png\" alt=\"The 72 design systems library — style guide spread\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n72 Systeme direkt mitgeliefert, jedes als ein einzelnes [`DESIGN.md`](design-systems/README.md):\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eVollständiger Katalog\u003c/b\u003e (zum Aufklappen klicken)\u003c/summary\u003e\n\n**AI \u0026 LLM** — `claude` · `cohere` · `mistral-ai` · `minimax` · `together-ai` · `replicate` · `runwayml` · `elevenlabs` · `ollama` · `x-ai`\n\n**Developer Tools** — `cursor` · `vercel` · `linear-app` · `framer` · `expo` · `clickhouse` · `mongodb` · `supabase` · `hashicorp` · `posthog` · `sentry` · `warp` · `webflow` · `sanity` · `mintlify` · `lovable` · `composio` · `opencode-ai` · `voltagent`\n\n**Productivity** — `notion` · `figma` · `miro` · `airtable` · `superhuman` · `intercom` · `zapier` · `cal` · `clay` · `raycast`\n\n**Fintech** — `stripe` · `coinbase` · `binance` · `kraken` · `mastercard` · `revolut` · `wise`\n\n**E-Commerce** — `shopify` · `airbnb` · `uber` · `nike` · `starbucks` · `pinterest`\n\n**Media** — `spotify` · `playstation` · `wired` · `theverge` · `meta`\n\n**Automotive** — `tesla` · `bmw` · `ferrari` · `lamborghini` · `bugatti` · `renault`\n\n**Other** — `apple` · `ibm` · `nvidia` · `vodafone` · `sentry` · `resend` · `spacex`\n\n**Starters** — `default` (Neutral Modern) · `warm-editorial`\n\n\u003c/details\u003e\n\nDie Bibliothek wird über [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) aus [`VoltAgent/awesome-design-md`][acd2] importiert. Führen Sie es erneut aus, um zu aktualisieren.\n\n## Visuelle Richtungen\n\nWenn der Nutzer keine Brand Spec hat, gibt der Agent ein zweites Formular mit fünf kuratierten Richtungen aus: die OD-Adaption von [`huashu-design`s \"5 schools × 20 design philosophies\" fallback](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). Jede Richtung ist eine deterministische Spec: Palette in OKLch, Font Stack, Layout-Posture-Cues, Referenzen. Der Agent bindet sie unverändert in das `:root` des Seed Templates. Ein Radio-Klick → ein vollständig spezifiziertes visuelles System. Keine Improvisation, kein AI-slop.\n\n| Richtung | Stimmung | Referenzen |\n|---|---|---|\n| Editorial — Monocle / FT | Printmagazin, Tinte + Cream + warmer Rust | Monocle · FT Weekend · NYT Magazine |\n| Modern minimal — Linear / Vercel | Kühl, strukturiert, minimaler Akzent | Linear · Vercel · Stripe |\n| Tech utility | Informationsdichte, Monospace, Terminal | Bloomberg · Bauhaus tools |\n| Brutalist | Roh, übergroße Type, keine Schatten, harte Akzente | Bloomberg Businessweek · Achtung |\n| Soft warm | Großzügig, niedriger Kontrast, peachy Neutrals | Notion marketing · Apple Health |\n\nVollständige Spec → [`apps/web/src/prompts/directions.ts`](apps/web/src/prompts/directions.ts).\n\n## Medienerzeugung\n\nOD endet nicht beim Code. Dieselbe Chat-Oberfläche, die `\u003cartifact\u003e`-HTML produziert, treibt auch **Image-**, **Video-** und **Audio-**Generierung — die Modell-Adapter sind in der daemon-Media-Pipeline verdrahtet ([`apps/daemon/src/media-models.ts`](apps/daemon/src/media-models.ts), [`apps/web/src/media/models.ts`](apps/web/src/media/models.ts)). Jedes Render landet als echte Datei im Projekt-Workspace — `.png` für Image, `.mp4` für Video — und erscheint als Download-Chip am Ende des Turns.\n\nDrei Modellfamilien tragen heute die Last:\n\n| Surface | Modell | Anbieter | Wofür |\n|---|---|---|---|\n| **Image** | `gpt-image-2` | Azure / OpenAI | Poster, Profil-Avatare, illustrierte Karten, Infografiken, Magazin-Social-Cards, Foto-Restaurierung, exploded-view Produktillustrationen |\n| **Video** | `seedance-2.0` | ByteDance Volcengine | 15s cinematic t2v + i2v mit Audio — narrative Shorts, Charakter-Close-ups, Produktfilme, MV-Choreografie |\n| **Video** | `hyperframes-html` | [HeyGen / OSS](https://github.com/heygen-com/hyperframes) | HTML→MP4 Motion Graphics — Produkt-Reveals, kinetische Typografie, Datendiagramme, Social Overlays, Logo-Outros, TikTok-Verticals mit Karaoke-Captions |\n\nDie wachsende **Prompt-Galerie** unter [`prompt-templates/`](prompt-templates/) liefert **93 sofort reproduzierbare Prompts** — 43 image (`prompt-templates/image/*.json`), 39 Seedance (`prompt-templates/video/*.json` ohne `hyperframes-*`), 11 HyperFrames (`prompt-templates/video/hyperframes-*.json`). Jeder Eintrag trägt ein Vorschau-Thumbnail, den Prompt-Body wortwörtlich, das Zielmodell, die Aspect Ratio und einen `source`-Block für Lizenz + Attribution. Der daemon serviert sie unter `GET /api/prompt-templates`, die Web-App zeigt sie als Card-Grid in den Tabs **Image templates** und **Video templates** der Entry-View; ein Klick legt den Prompt mit dem richtigen vorausgewählten Modell in den Composer.\n\n### gpt-image-2 — Image-Galerie (Auswahl aus 43)\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003cimg src=\"https://cms-assets.youmind.com/media/1776661968404_8a5flm_HGQc_KOaMAA2vt0.jpg\" alt=\"3D Stone Staircase Evolution\" /\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e3D Stone Staircase Evolution Infographic\u003c/b\u003e\u003cbr/\u003e3-stufige Infografik im Stein-Look\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003cimg src=\"https://cms-assets.youmind.com/media/1776662673014_nf0taw_HGRMNDybsAAGG88.jpg\" alt=\"Illustrated City Food Map\" /\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eIllustrated City Food Map\u003c/b\u003e\u003cbr/\u003eEditorial-Reiseposter, handillustriert\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003cimg src=\"https://cms-assets.youmind.com/media/1777453149026_gd2k50_HHCSvymboAAVscc.jpg\" alt=\"Cinematic Elevator Scene\" /\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eCinematic Elevator Scene\u003c/b\u003e\u003cbr/\u003eEditorial Fashion Still als Einzelframe\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003cimg src=\"https://cms-assets.youmind.com/media/1777453164993_mt5b69_HHDoWfeaUAEA6Vt.jpg\" alt=\"Cyberpunk Anime Portrait\" /\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eCyberpunk Anime Portrait\u003c/b\u003e\u003cbr/\u003eProfil-Avatar — Neon-Face-Text\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003cimg src=\"https://cms-assets.youmind.com/media/1777453184257_vb9hvl_HG9tAkOa4AAuRrn.jpg\" alt=\"Glamorous Woman in Black\" /\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eGlamorous Woman in Black Portrait\u003c/b\u003e\u003cbr/\u003eEditorial Studio-Porträt\u003c/sub\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nKomplettes Set → [`prompt-templates/image/`](prompt-templates/image/). Quellen: meist aus [`YouMind-OpenLab/awesome-gpt-image-prompts`](https://github.com/YouMind-OpenLab/awesome-gpt-image-prompts) (CC-BY-4.0), Autor-Attribution pro Template erhalten.\n\n### Seedance 2.0 — Video-Galerie (Auswahl aus 39)\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003ca href=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/c4515f4f328539e1ded2cc32f4ce63e7/downloads/default.mp4\"\u003e\u003cimg src=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/c4515f4f328539e1ded2cc32f4ce63e7/thumbnails/thumbnail.jpg\" alt=\"Music Podcast Guitar\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eMusic Podcast \u0026 Guitar Technique\u003c/b\u003e\u003cbr/\u003e4K cinematic Studio-Film\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003ca href=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/4a47ba646e7cedd79363c861864b8714/downloads/default.mp4\"\u003e\u003cimg src=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/4a47ba646e7cedd79363c861864b8714/thumbnails/thumbnail.jpg\" alt=\"Emotional Face\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eEmotional Face Close-up\u003c/b\u003e\u003cbr/\u003eCinematic Mikroexpression-Studie\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003ca href=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/7e8983364a95fe333f0f88bd1085a0e8/downloads/default.mp4\"\u003e\u003cimg src=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/7e8983364a95fe333f0f88bd1085a0e8/thumbnails/thumbnail.jpg\" alt=\"Luxury Supercar\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eLuxury Supercar Cinematic\u003c/b\u003e\u003cbr/\u003eNarrative Produktfilm\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003ca href=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/0279a674ce138ab5a0a6f020a7273d89/downloads/default.mp4\"\u003e\u003cimg src=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/0279a674ce138ab5a0a6f020a7273d89/thumbnails/thumbnail.jpg\" alt=\"Forbidden City Cat\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eForbidden City Cat Satire\u003c/b\u003e\u003cbr/\u003eStilisierter Satire-Short\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"20%\" valign=\"top\"\u003e\u003ca href=\"https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/1402.mp4\"\u003e\u003cimg src=\"https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/7f63ad253175a9ad1dac53de490efac8/thumbnails/thumbnail.jpg\" alt=\"Japanese Romance\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eJapanese Romance Short Film\u003c/b\u003e\u003cbr/\u003e15s Seedance 2.0 Narrativ\u003c/sub\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nKlicken Sie auf ein Thumbnail, um das tatsächlich gerenderte MP4 abzuspielen. Komplettes Set → [`prompt-templates/video/`](prompt-templates/video/) (die `*-seedance-*` und Cinematic-getaggten Einträge). Quellen: [`YouMind-OpenLab/awesome-seedance-2-prompts`](https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts) (CC-BY-4.0), Original-Tweet-Links und Autor-Handles erhalten.\n\n### HyperFrames — HTML→MP4 Motion Graphics (11 sofort reproduzierbare Templates)\n\n[**`heygen-com/hyperframes`**](https://github.com/heygen-com/hyperframes) ist HeyGens Open-Source-, agent-natives Video-Framework — Sie (oder der Agent) schreiben HTML + CSS + GSAP, HyperFrames rendert deterministisch zu MP4 via Headless-Chrome + FFmpeg. Open Design liefert HyperFrames als first-class Video-Modell (`hyperframes-html`) verdrahtet im daemon-Dispatch, plus den `skills/hyperframes/`-Skill, der dem Agent Timeline-Vertrag, Scene-Transition-Regeln, Audio-Reactive-Patterns, Captions/TTS und die Catalog-Blocks (`npx hyperframes add \u003cslug\u003e`) beibringt.\n\nElf HyperFrames-Prompts liegen unter [`prompt-templates/video/hyperframes-*.json`](prompt-templates/video/), jeder ein konkreter Brief, der einen spezifischen Archetyp produziert:\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-product-reveal-minimal.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/logo-outro.png\" alt=\"Product reveal\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e5s minimaler Produkt-Reveal\u003c/b\u003e · 16:9 · Push-in Title-Card mit Shader-Transition\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-saas-product-promo-30s.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/app-showcase.png\" alt=\"SaaS promo\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e30s SaaS-Produkt-Promo\u003c/b\u003e · 16:9 · Linear/ClickUp-Stil mit UI-3D-Reveals\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-tiktok-karaoke-talking-head.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/tiktok-follow.png\" alt=\"TikTok karaoke\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eTikTok-Karaoke-Talking-Head\u003c/b\u003e · 9:16 · TTS + wortgenau synchronisierte Captions\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-brand-sizzle-reel.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/logo-outro.png\" alt=\"Brand sizzle\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e30s Brand-Sizzle-Reel\u003c/b\u003e · 16:9 · beat-synchrone kinetische Typografie, audio-reactive\u003c/sub\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-data-bar-chart-race.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/data-chart.png\" alt=\"Data chart\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eAnimiertes Bar-Chart-Race\u003c/b\u003e · 16:9 · NYT-Stil Daten-Infografik\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-flight-map-route.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/nyc-paris-flight.png\" alt=\"Flight map\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eFlugkarte (Origin → Dest)\u003c/b\u003e · 16:9 · Apple-Stil cinematic Route-Reveal\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-logo-outro-cinematic.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/logo-outro.png\" alt=\"Logo outro\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e4s cinematic Logo-Outro\u003c/b\u003e · 16:9 · Stück-für-Stück-Aufbau + Bloom\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-money-counter-hype.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/apple-money-count.png\" alt=\"Money counter\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e$0 → $10K Money-Counter\u003c/b\u003e · 9:16 · Apple-Stil Hype mit Green-Flash + Burst\u003c/sub\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-app-showcase-three-phones.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/app-showcase.png\" alt=\"App showcase\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003e3-Phone App-Showcase\u003c/b\u003e · 16:9 · schwebende Phones mit Feature-Callouts\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-social-overlay-stack.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/instagram-follow.png\" alt=\"Social overlay\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eSocial-Overlay-Stack\u003c/b\u003e · 9:16 · X · Reddit · Spotify · Instagram nacheinander\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u003ca href=\"prompt-templates/video/hyperframes-website-to-video-promo.json\"\u003e\u003cimg src=\"https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/instagram-follow.png\" alt=\"Website to video\" /\u003e\u003c/a\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eWebsite-zu-Video-Pipeline\u003c/b\u003e · 16:9 · captured Site bei 3 Viewports + Transitions\u003c/sub\u003e\u003c/td\u003e\n\u003ctd width=\"25%\" valign=\"top\"\u003e\u0026nbsp;\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nDas Muster ist dasselbe wie sonst: Template wählen, Brief editieren, senden. Der Agent liest das mitgelieferte `skills/hyperframes/SKILL.md` (das den OD-spezifischen Render-Workflow enthält — Composition-Source-Files in einen `.hyperframes-cache/`, damit sie den File-Workspace nicht verschmutzen, daemon dispatcht `npx hyperframes render`, um den macOS-sandbox-exec/Puppeteer-Hang zu umgehen, nur die finale `.mp4` landet als Projekt-Chip), schreibt die Composition und liefert ein MP4. Catalog-Block-Thumbnails © HeyGen, von deren CDN; das OSS-Framework selbst ist Apache-2.0.\n\n\u003e **Auch verdrahtet, aber noch nicht als Templates aufgetaucht:** Kling 2.0 / 1.6 / 1.5, Veo 3 / Veo 2, Sora 2 / Sora 2-Pro (via Fal), MiniMax video-01 — alle in `VIDEO_MODELS` ([`apps/web/src/media/models.ts`](apps/web/src/media/models.ts)). Suno v5 / v4.5, Udio v2, Lyria 2 (Music) und gpt-4o-mini-tts, MiniMax TTS (Speech) decken die Audio-Surface ab. Templates dafür sind offene Beiträge — JSON in `prompt-templates/video/` oder `prompt-templates/audio/` legen, taucht im Picker auf.\n\n## Jenseits des Chats — was sonst mitgeliefert wird\n\nDer Chat-/Artifact-Loop steht im Rampenlicht, aber einige weniger sichtbare Fähigkeiten sind bereits verdrahtet und wichtig, bevor Sie OD mit etwas anderem vergleichen:\n\n- **Claude Design ZIP import.** Ziehen Sie einen Export von claude.ai in den Welcome Dialog. `POST /api/import/claude-design` extrahiert ihn in ein echtes `.od/projects/\u003cid\u003e/`, öffnet die Entry-Datei als Tab und bereitet einen Continue-where-Anthropic-left-off Prompt für Ihren lokalen Agent vor. Kein erneutes Prompting, kein \"ask the model to re-create what we just had\". ([`apps/daemon/src/server.ts`](apps/daemon/src/server.ts) — `/api/import/claude-design`)\n- **OpenAI-kompatibler BYOK proxy.** `POST /api/proxy/stream` nimmt `{ baseUrl, apiKey, model, messages }`, normalisiert den Pfad (`…/v1/chat/completions`), leitet SSE-Chunks an den Browser zurück und lehnt loopback / link-local / RFC1918 Ziele ab, um SSRF zu verhindern. Alles, was das OpenAI Chat Schema spricht, funktioniert: Anthropic-via-OpenAI shim, DeepSeek, Groq, MiMo, OpenRouter, Ihr selbst gehostetes vLLM. MiMo bekommt automatisch `tool_choice: 'none'`, weil sein Tool Schema bei freier Generierung Probleme macht.\n- **User-saved templates.** Wenn Ihnen ein Render gefällt, snapshottet `POST /api/templates` HTML + Metadata in die SQLite `templates` Tabelle. Das nächste Projekt wählt es aus einer \"your templates\" Zeile im Picker: dieselbe Oberfläche wie die mitgelieferten 31, aber Ihre eigene.\n- **Tab persistence.** Jedes Projekt merkt sich offene Dateien und aktiven Tab in der `tabs` Tabelle. Öffnen Sie das Projekt morgen wieder, und der Workspace sieht genau so aus, wie Sie ihn verlassen haben.\n- **Artifact lint API.** `POST /api/artifacts/lint` führt strukturelle Checks auf einem generierten Artifact aus (kaputtes `\u003cartifact\u003e` Framing, fehlende Side Files, stale palette tokens) und gibt Findings zurück, die der Agent in seinen nächsten Turn einlesen kann. Die fünfdimensionale Self-Critique nutzt das, um ihren Score auf echte Evidenz statt Vibes zu stützen.\n- **Sidecar protocol + desktop automation.** Daemon-, Web- und Desktop-Prozesse tragen typisierte Five-Field-Stamps (`app · mode · namespace · ipc · source`) und expose'n einen JSON-RPC IPC Channel unter `/tmp/open-design/ipc/\u003cnamespace\u003e/\u003capp\u003e.sock`. `tools-dev inspect desktop status \\| eval \\| screenshot` steuert diesen Channel, sodass Headless-E2E gegen eine echte Electron Shell funktioniert, ohne bespoke Harnesses ([`packages/sidecar-proto/`](packages/sidecar-proto/), [`apps/desktop/src/main/`](apps/desktop/src/main/)).\n- **Windows-friendly spawning.** Jeder Adapter, der sonst am ~32 KB argv Limit von `CreateProcess` bei langen zusammengesetzten Prompts scheitern würde (Codex, Gemini, OpenCode, Cursor Agent, Qwen, Pi), füttert den Prompt stattdessen über stdin. Claude Code und Copilot behalten `-p`; der daemon fällt auf eine temp prompt-file zurück, wenn selbst das überläuft.\n- **Per-namespace runtime data.** `OD_DATA_DIR` und `--namespace` geben Ihnen vollständig isolierte `.od/`-artige Trees, damit Playwright, Beta Channels und Ihre echten Projekte nie dieselbe SQLite-Datei teilen.\n\n## Anti-AI-Slop-Maschinerie\n\nDie gesamte Maschinerie unten ist das [`huashu-design`](https://github.com/alchaincyf/huashu-design) Playbook, portiert in ODs Prompt Stack und pro Skill über Side-File-Pre-Flight erzwingbar. Lesen Sie [`apps/web/src/prompts/discovery.ts`](apps/web/src/prompts/discovery.ts) für die Live-Formulierung:\n\n- **Question form first.** Turn 1 ist nur `\u003cquestion-form\u003e`: kein Denken, keine Tools, keine Narration. Der Nutzer wählt Defaults mit Radio-Geschwindigkeit.\n- **Brand-spec extraction.** Wenn der Nutzer Screenshot oder URL anhängt, führt der Agent ein fünfstufiges Protokoll aus (locate · download · grep hex · codify `brand-spec.md` · vocalise), bevor er CSS schreibt. **Er rät Brandfarben niemals aus Erinnerung.**\n- **Five-dim critique.** Vor dem Ausgeben von `\u003cartifact\u003e` bewertet der Agent seine Ausgabe still 1–5 über philosophy / hierarchy / execution / specificity / restraint. Alles unter 3/5 ist eine Regression: fixen und neu scoren. Zwei Durchgänge sind normal.\n- **P0/P1/P2 checklist.** Jeder Skill liefert ein `references/checklist.md` mit harten P0 Gates. Der Agent muss P0 bestehen, bevor er ausgibt.\n- **Slop blacklist.** Aggressive violette Gradients, generische Emoji Icons, runde Karte mit linkem Border Accent, handgezeichnete SVG-Menschen, Inter als *display* Face, erfundene Metriken: im Prompt ausdrücklich verboten.\n- **Honest placeholders \u003e fake stats.** Wenn der Agent keine echte Zahl hat, schreibt er `—` oder einen beschrifteten grauen Block, nicht \"10× faster\".\n\n## Vergleich\n\n| Achse | [Claude Design][cd] (Anthropic) | [Open CoDesign][ocod] | **Open Design** |\n|---|---|---|---|\n| Lizenz | Closed | MIT | **Apache-2.0** |\n| Formfaktor | Web (claude.ai) | Desktop (Electron) | **Web-App + lokaler Daemon** |\n| Auf Vercel deploybar | ❌ | ❌ | **✅** |\n| Agent-Runtime | Gebündelt (Opus 4.7) | Gebündelt ([`pi-ai`][piai]) | **Delegiert an die vorhandene CLI des Nutzers** |\n| Skills | Proprietär | 12 Custom-TS-Module + `SKILL.md` | **31 dateibasierte [`SKILL.md`][skill] Bundles, einfach ablegbar** |\n| Designsystem | Proprietär | `DESIGN.md` (v0.2 Roadmap) | **`DESIGN.md` × 72 ausgelieferte Systeme** |\n| Provider-Flexibilität | Nur Anthropic | 7+ über [`pi-ai`][piai] | **10 CLI-Adapter + OpenAI-kompatibler BYOK-Proxy** |\n| Initiales Fragenformular | ❌ | ❌ | **✅ Harte Regel, Turn 1** |\n| Richtungswahl | ❌ | ❌ | **✅ 5 deterministische Richtungen** |\n| Live-Todo-Fortschritt + Tool-Stream | ❌ | ✅ | **✅** (UX-Pattern aus open-codesign) |\n| Sandboxed-iframe-Vorschau | ❌ | ✅ | **✅** (Pattern aus open-codesign) |\n| Claude Design ZIP-Import | n/a | ❌ | **✅ `POST /api/import/claude-design` — dort weiterbearbeiten, wo Anthropic aufgehört hat** |\n| Chirurgische Edits im Kommentar-Modus | ❌ | ✅ | 🚧 Roadmap (aus [`open-codesign`][ocod] übernehmen) |\n| AI-emitted Tweaks Panel | ❌ | ✅ | 🟡 Teilweise — [`tweaks` skill](skills/tweaks/) wird geliefert, dedizierte chatseitige Panel-UX bleibt Roadmap |\n| Dateisystemnaher Workspace | ❌ | Teilweise (Electron-Sandbox) | **✅ Echtes cwd, echte Tools, persistentes SQLite (projects · conversations · messages · tabs · templates)** |\n| 5-dimensionale Self-Critique | ❌ | ❌ | **✅ Pre-Emit-Gate** |\n| Artifact Lint | ❌ | ❌ | **✅ `POST /api/artifacts/lint` — Findings fließen zurück zum Agent** |\n| Sidecar-IPC + headless Desktop | ❌ | ❌ | **✅ Gestempelte Prozesse + `tools-dev inspect desktop status \\| eval \\| screenshot`** |\n| Exportformate | Begrenzt | HTML / PDF / PPTX / ZIP / Markdown | **HTML / PDF / PPTX (agent-driven) / ZIP / Markdown** |\n| PPT-Skill-Wiederverwendung | N/A | Built-in | **[`guizang-ppt-skill`][guizang] wird eingehängt (Default für deck mode)** |\n| Mindestabrechnung | Pro / Max / Team | BYOK | **BYOK — jede OpenAI-kompatible `baseUrl` einfügen** |\n\n[cd]: https://x.com/claudeai/status/2045156267690213649\n[ocod]: https://github.com/OpenCoworkAI/open-codesign\n[piai]: https://github.com/mariozechner/pi-ai\n[acd]: https://github.com/VoltAgent/awesome-claude-design\n[guizang]: https://github.com/op7418/guizang-ppt-skill\n[skill]: https://docs.anthropic.com/en/docs/claude-code/skills\n\n## Unterstützte Code-Agenten\n\nBeim daemon Boot automatisch aus `PATH` erkannt. Keine Konfiguration nötig. Streaming Dispatch lebt in [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) (`AGENT_DEFS`); per-CLI Parser liegen daneben. Modelle werden entweder durch Probing von `\u003cbin\u003e --list-models` / `\u003cbin\u003e models` / ACP Handshake befüllt oder aus einer kuratierten Fallback-Liste, wenn die CLI keine Liste ausgibt.\n\n| Agent | Bin | Stream-Format | Argv-Form (zusammengesetzter Prompt-Pfad) |\n|---|---|---|---|\n| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | `claude` | `claude-stream-json` (typed events) | `claude -p \u003cprompt\u003e --output-format stream-json --verbose [--include-partial-messages] [--add-dir …] --permission-mode bypassPermissions` |\n| [Codex CLI](https://github.com/openai/codex) | `codex` | `json-event-stream` + `codex` Parser | `codex exec --json --skip-git-repo-check --full-auto [-C cwd] [--model …] [-c model_reasoning_effort=…] -` (Prompt über stdin) |\n| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | `json-event-stream` + `gemini` Parser | `gemini --output-format stream-json --skip-trust --yolo [--model …] -` (Prompt über stdin) |\n| [OpenCode](https://opencode.ai/) | `opencode` | `json-event-stream` + `opencode` Parser | `opencode run --format json --dangerously-skip-permissions [--model …] -` (Prompt über stdin) |\n| [Cursor Agent](https://www.cursor.com/cli) | `cursor-agent` | `json-event-stream` + `cursor-agent` Parser | `cursor-agent --print --output-format stream-json --stream-partial-output --force --trust [--workspace cwd] [--model …] -` (Prompt über stdin) |\n| [Qwen Code](https://github.com/QwenLM/qwen-code) | `qwen` | `plain` (rohe stdout Chunks) | `qwen --yolo [--model …] -` (Prompt über stdin) |\n| [GitHub Copilot CLI](https://github.com/features/copilot/cli) | `copilot` | `copilot-stream-json` (typed events) | `copilot -p \u003cprompt\u003e --allow-all-tools --output-format json [--model …] [--add-dir …]` |\n| [Hermes](https://github.com/eqlabs/hermes) | `hermes` | `acp-json-rpc` (Agent Client Protocol) | `hermes acp --accept-hooks` |\n| Kimi CLI | `kimi` | `acp-json-rpc` | `kimi acp` |\n| [Pi](https://github.com/mariozechner/pi-ai) | `pi` | `pi-rpc` (stdio JSON-RPC) | `pi --mode rpc --no-session [--model …] [--thinking …]` (Prompt als RPC-`prompt` Befehl gesendet) |\n| **OpenAI-compatible BYOK** | n/a | SSE pass-through | `POST /api/proxy/stream` → `\u003cbaseUrl\u003e/v1/chat/completions`; SSRF-guarded against loopback / link-local / RFC1918 |\n\nEine neue CLI ist ein Eintrag in [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Streaming Format ist eines von `claude-stream-json`, `copilot-stream-json`, `json-event-stream` (mit per-CLI `eventParser`), `acp-json-rpc`, `pi-rpc` oder `plain`.\n\n## Referenzen \u0026 Herkunft\n\nJedes externe Projekt, aus dem dieses Repo etwas übernimmt. Jeder Link führt zur Quelle, damit Sie die Provenienz prüfen können.\n\n| Projekt | Rolle hier |\n|---|---|\n| [`Claude Design`][cd] | Das closed-source Produkt, zu dem dieses Repo die Open-Source-Alternative ist. |\n| [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design) | Der Design-Philosophie-Kern. Junior-Designer Workflow, 5-step brand-asset protocol, anti-AI-slop checklist, fünfdimensionale Self-Critique und die \"5 schools × 20 design philosophies\" Bibliothek hinter unserem Direction Picker, alles verdichtet in [`apps/web/src/prompts/discovery.ts`](apps/web/src/prompts/discovery.ts) und [`apps/web/src/prompts/directions.ts`](apps/web/src/prompts/directions.ts). |\n| [**`op7418/guizang-ppt-skill`**][guizang] | Web-PPT-Skill im Magazinstil, unverändert unter [`skills/guizang-ppt/`](skills/guizang-ppt/) gebündelt, ursprüngliche LICENSE bewahrt. Default für den Deck-Modus. P0/P1/P2 Checklist-Kultur für jeden anderen Skill übernommen. |\n| [**`multica-ai/multica`**](https://github.com/multica-ai/multica) | Die daemon + adapter Architektur. PATH-Scan-Agent-Erkennung, lokaler daemon als einziger privilegierter Prozess, Agent-as-teammate Sichtweise. Wir übernehmen das Modell, nicht den Code. |\n| [**`OpenCoworkAI/open-codesign`**][ocod] | Die erste Open-Source-Alternative zu Claude Design und unser nächster Peer. Übernommene UX Patterns: streaming-artifact loop, sandboxed-iframe preview (vendored React 18 + Babel), live agent panel (todos + tool calls + interruptible), fünf Exportformate (HTML/PDF/PPTX/ZIP/Markdown), local-first storage hub, `SKILL.md` taste-injection. UX Patterns auf unserer Roadmap: comment-mode surgical edits, AI-emitted tweaks panel. **Wir vendoren [`pi-ai`][piai] bewusst nicht**: open-codesign bündelt es als Agent Runtime; wir delegieren an die CLI, die der Nutzer bereits hat. |\n| [`VoltAgent/awesome-claude-design`][acd] / [`awesome-design-md`][acd2] | Quelle des 9-Section `DESIGN.md` Schemas und der 69 Produktsysteme, die über [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) importiert wurden. |\n| [`farion1231/cc-switch`](https://github.com/farion1231/cc-switch) | Inspiration für symlink-basierte Skill-Verteilung über mehrere Agent-CLIs. |\n| [Claude Code skills][skill] | Die `SKILL.md` Konvention wurde unverändert übernommen: Jeder Claude Code Skill kann in `skills/` gelegt werden und wird vom daemon gefunden. |\n\nDer ausführliche Provenienztext, was wir jeweils übernehmen und was bewusst nicht, steht in [`docs/references.md`](docs/references.md).\n\n## Roadmap\n\n- [x] Daemon + agent detection (10 CLI adapters) + skill registry + design-system catalog\n- [x] Web app + chat + question form + 5-direction picker + todo progress + sandboxed preview\n- [x] 31 skills + 72 design systems + 5 visual directions + 5 device frames\n- [x] SQLite-backed projects · conversations · messages · tabs · templates\n- [x] OpenAI-compatible BYOK proxy (`/api/proxy/stream`) with SSRF guard\n- [x] Claude Design ZIP import (`/api/import/claude-design`)\n- [x] Sidecar protocol + Electron desktop with IPC automation (STATUS / EVAL / SCREENSHOT / CONSOLE / CLICK / SHUTDOWN)\n- [x] Artifact lint API + 5-dim self-critique pre-emit gate\n- [ ] Comment-mode surgical edits (click element → instruction → patch) — pattern from [`open-codesign`][ocod]\n- [ ] AI-emitted tweaks panel UX — building block ([`tweaks` skill](skills/tweaks/)) ships; chat-integrated panel still pending\n- [ ] Vercel + tunnel deployment recipe (Topology B)\n- [ ] One-command `npx od init` to scaffold a project with `DESIGN.md`\n- [ ] Skill marketplace (`od skills install \u003cgithub-repo\u003e`) and `od skill add | list | remove | test` CLI surface (drafted in [`docs/skills-protocol.md`](docs/skills-protocol.md), implementation pending)\n- [ ] Packaged Electron build out of `apps/packaged/`\n\nPhased delivery → [`docs/roadmap.md`](docs/roadmap.md).\n\n## Status\n\nDies ist eine frühe Implementierung: Der geschlossene Loop (detect → pick skill + design system → chat → parse `\u003cartifact\u003e` → preview → save) läuft end-to-end. Prompt Stack und Skill-Bibliothek tragen den größten Wert und sind stabil. Die komponentenbezogene UI wird täglich ausgeliefert.\n\n## Geben Sie uns einen Star\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nexu-io/open-design\"\u003e\u003cimg src=\"docs/assets/star-us.png\" alt=\"Star Open Design on GitHub — github.com/nexu-io/open-design\" width=\"100%\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nWenn Ihnen das dreißig Minuten gespart hat, geben Sie ein ★. Stars bezahlen keine Miete, aber sie zeigen dem nächsten Designer, Agent und Contributor, dass dieses Experiment Aufmerksamkeit verdient. Ein Klick, drei Sekunden, echtes Signal: [github.com/nexu-io/open-design](https://github.com/nexu-io/open-design).\n\n## Mitwirken\n\nIssues, PRs, neue Skills und neue Design Systems sind willkommen. Die wirkungsvollsten Beiträge sind meist ein Ordner, eine Markdown-Datei oder ein PR-großer Adapter:\n\n- **Add a skill** — legen Sie einen Ordner in [`skills/`](skills/) an, der der [`SKILL.md`][skill] Konvention folgt.\n- **Add a design system** — legen Sie ein `DESIGN.md` in [`design-systems/\u003cbrand\u003e/`](design-systems/) nach dem 9-Section Schema ab.\n- **Wire up a new coding-agent CLI** — ein Eintrag in [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts).\n\nVollständiger Walkthrough, Merge-Messlatte, Code Style und was wir nicht annehmen → [`CONTRIBUTING.de.md`](CONTRIBUTING.de.md) ([English](CONTRIBUTING.md), [简体中文](CONTRIBUTING.zh-CN.md)).\n\n## Mitwirkende\n\nDanke an alle, die Open Design vorangebracht haben: durch Code, Docs, Feedback, neue Skills, neue Design Systems oder auch ein scharfes Issue. Jeder echte Beitrag zählt, und die Wand unten ist die einfachste Art, das laut zu sagen.\n\n\u003ca href=\"https://github.com/nexu-io/open-design/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=nexu-io/open-design\u0026cache_bust=2026-04-30\" alt=\"Open Design contributors\" /\u003e\n\u003c/a\u003e\n\nWenn Sie Ihren ersten PR gemergt haben: willkommen. Das Label [`good-first-issue`](https://github.com/nexu-io/open-design/labels/good-first-issue) ist der Einstiegspunkt.\n\n## Repository-Aktivität\n\n\u003cpicture\u003e\n  \u003cimg alt=\"Open Design — repository metrics\" src=\"docs/assets/github-metrics.svg\" /\u003e\n\u003c/picture\u003e\n\nDas SVG oben wird täglich von [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) mit [`lowlighter/metrics`](https://github.com/lowlighter/metrics) regeneriert. Lösen Sie auf dem **Actions** Tab manuell eine Aktualisierung aus, wenn Sie sie früher brauchen; für reichere Plugins (traffic, follow-up time) fügen Sie ein `METRICS_TOKEN` Repository Secret mit einem fine-grained PAT hinzu.\n\n## Star-Historie\n\n\u003ca href=\"https://star-history.com/#nexu-io/open-design\u0026Date\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=nexu-io/open-design\u0026type=Date\u0026theme=dark\u0026cache_bust=2026-04-30\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=nexu-io/open-design\u0026type=Date\u0026cache_bust=2026-04-30\" /\u003e\n    \u003cimg alt=\"Open Design star history\" src=\"https://api.star-history.com/svg?repos=nexu-io/open-design\u0026type=Date\u0026cache_bust=2026-04-30\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\nWenn die Kurve nach oben biegt, ist das das Signal, nach dem wir suchen. ★ dieses Repo, um sie anzuschieben.\n\n## Lizenz\n\nApache-2.0. Das gebündelte [`skills/guizang-ppt/`](skills/guizang-ppt/) behält seine ursprüngliche [LICENSE](skills/guizang-ppt/LICENSE) (MIT) und Autorenschaftszuordnung zu [op7418](https://github.com/op7418).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexu-io%2Fopen-design","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnexu-io%2Fopen-design","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexu-io%2Fopen-design/lists"}