# Open Design > [!IMPORTANT] > ### đŸ”„ `0.8.0-preview` est lĂ . L'ancien monde du design s'arrĂȘte ici. > > Une alternative open source et agent-native Ă  Claude Design / Figma — 40k Ă©toiles en deux semaines nous ont menĂ©s jusqu'ici. **Nous avons besoin de toi pour faire le reste du chemin.** > > **ItĂ©ration rapide sur `main`** — 0.8.0 est la prochaine phase d'Open Design. Envoie une PR, balance une idĂ©e folle, signale un bug — ce que tu apportes, c'est ce que ce mouvement devient. > > → [**Lire l'annonce · tĂ©lĂ©charger l'installateur · rejoindre le mouvement**](https://github.com/nexu-io/open-design/discussions/1727) · s'installe Ă  cĂŽtĂ© de votre 0.7 actuel. > **L’alternative open source Ă  [Claude Design][cd].** Local-first, dĂ©ployable sur le web, BYOK Ă  chaque couche : vos CLI de coding agents dĂ©tectĂ©es automatiquement dans le `PATH` deviennent le design engine, pilotĂ© par les catalogues de **Skills** et de **Design Systems** du repo. Aucune CLI ? Le proxy BYOK multi-provider exĂ©cute la mĂȘme boucle, sans spawn local.

Open Design : couverture Ă©ditoriale, design avec l’agent sur votre laptop

Stars Forks Issues Pull Requests Contributors Commit activity Last commit

Télécharger Latest release License Agents Design systems Skills Discord Quickstart

English · Español · PortuguĂȘs (Brasil) · Deutsch · Français · çź€äœ“äž­æ–‡ · çčé«”äž­æ–‡ · 한ꔭ얎 · æ—„æœŹèȘž · Ű§Ù„ŰčŰ±ŰšÙŠŰ© · РуссĐșĐžĐč · ĐŁĐșŃ€Đ°Ń—ĐœŃŃŒĐșа · TĂŒrkçe

--- ## Pourquoi ce projet existe [Claude Design][cd] d’Anthropic, lancĂ© le 17 avril 2026 avec Opus 4.7, a montrĂ© ce qui se passe lorsqu’un LLM cesse de produire seulement du texte et commence Ă  livrer des design artifacts. Le produit est devenu viral, tout en restant closed-source, paid-only, cloud-only et liĂ© au modĂšle comme aux Skills d’Anthropic. Aucun checkout possible, aucun self-hosting, aucun dĂ©ploiement Vercel, aucun remplacement par votre propre agent. **Open Design (OD) est l’alternative open source.** MĂȘme boucle, mĂȘme mental model artifact-first, sans lock-in. Nous ne livrons pas d’agent : les meilleurs coding agents vivent dĂ©jĂ  sur votre machine. OD les branche sur un workflow de design pilotĂ© par des Skills, exĂ©cutable localement avec `pnpm tools-dev`, dĂ©ployable sur Vercel cĂŽtĂ© web, avec BYOK Ă  chaque couche. Tapez `make me a magazine-style pitch deck for our seed round`. Le question form interactif apparaĂźt avant que le modĂšle n’improvise le moindre pixel. L’agent choisit l’une des cinq directions visuelles soigneusement sĂ©lectionnĂ©es. Un plan `TodoWrite` live arrive dans l’UI. Le daemon crĂ©e un vrai dossier projet sur disque avec un seed template, une layout library et une checklist de self-check. L’agent les lit, le pre-flight est obligatoire, puis il lance une critique en cinq dimensions sur sa propre sortie et Ă©met un seul ``, rendu quelques secondes plus tard dans une iframe sandboxĂ©e. Le rĂ©sultat dĂ©passe l’idĂ©e d’une IA qui tente simplement de faire du design. Le prompt stack pousse l’IA Ă  se comporter comme un senior designer avec un vrai filesystem, une bibliothĂšque de palettes dĂ©terministe et une culture de checklist, au niveau fixĂ© par Claude Design, en version ouverte et sous votre contrĂŽle. OD s’appuie sur quatre projets open source : - [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design), la boussole de design philosophy. Le workflow Junior-Designer, le protocole en 5 Ă©tapes pour les assets de marque, la checklist anti-AI-slop, la self-critique en 5 dimensions et l’idĂ©e « 5 Ă©coles × 20 philosophies design » derriĂšre notre direction picker sont condensĂ©s dans [`apps/daemon/src/prompts/discovery.ts`](apps/daemon/src/prompts/discovery.ts). - [**`op7418/guizang-ppt-skill`**](https://github.com/op7418/guizang-ppt-skill), le mode deck. Inclus tel quel sous [`skills/guizang-ppt/`](skills/guizang-ppt/), avec licence originale prĂ©servĂ©e ; layouts magazine, hero WebGL, checklists P0/P1/P2. - [**`OpenCoworkAI/open-codesign`**](https://github.com/OpenCoworkAI/open-codesign), notre UX north star et le projet le plus proche. Nous reprenons sa streaming-artifact loop, son pattern de preview en iframe sandboxĂ©e (React 18 + Babel vendored), son live agent panel (todos + tool calls + gĂ©nĂ©ration interruptible) et ses cinq formats d’export (HTML / PDF / PPTX / ZIP / Markdown). Nous divergeons volontairement sur le format : ils livrent une app desktop Electron avec [`pi-ai`][piai] intĂ©grĂ© ; nous sommes une web app + daemon local qui dĂ©lĂšgue Ă  la CLI dĂ©jĂ  installĂ©e chez vous. - [**`multica-ai/multica`**](https://github.com/multica-ai/multica), l’architecture daemon et runtime. DĂ©tection des agents dans le `PATH`, daemon local comme seul processus privilĂ©giĂ©, vision agent-as-teammate. ## En un coup d’Ɠil | | Ce que vous obtenez | |---|---| | **CLI de coding agents (16)** | Claude Code · Codex CLI · Devin for Terminal · Cursor Agent · Gemini CLI · OpenCode · Qwen Code · Qoder CLI · GitHub Copilot CLI · Hermes (ACP) · Kimi CLI (ACP) · Pi (RPC) · Kiro CLI (ACP) · Kilo (ACP) · Mistral Vibe CLI (ACP) · DeepSeek TUI, dĂ©tectĂ©es automatiquement dans `PATH`, interchangeables en un clic | | **BYOK fallback** | Proxy API par protocole sur `/api/proxy/{anthropic,openai,azure,google}/stream` : collez `baseUrl` + `apiKey` + `model`, choisissez Anthropic / OpenAI / Azure OpenAI / Google Gemini, et le daemon normalise le SSE vers le mĂȘme chat stream. Les destinations internal IP / SSRF sont bloquĂ©es cĂŽtĂ© daemon. | | **Design Systems intĂ©grĂ©s** | Le menu dĂ©roulant charge les Design Systems depuis `design-systems/*/DESIGN.md` : starters Ă©crits Ă  la main, product systems importĂ©s depuis [`awesome-design-md`][acd2] et design skills normalisĂ©s depuis [`awesome-design-skills`][ads]. | | **Skills intĂ©grĂ©s** | Le picker charge les Skills depuis `skills/*/SKILL.md` et les regroupe par `mode` / `scenario` : prototype, deck, image, video, audio, Design System, utility, puis notamment design / marketing / operations / engineering / product / finance / hr / sales / personal. | | **GĂ©nĂ©ration mĂ©dia** | Les surfaces image, vidĂ©o et audio sont livrĂ©es avec la design loop. **gpt-image-2** (Azure / OpenAI) pour posters, avatars, infographies et cartes illustrĂ©es ; **Seedance 2.0** (ByteDance) pour du text-to-video et image-to-video cinĂ©matique de 15 s ; **HyperFrames** ([heygen-com/hyperframes](https://github.com/heygen-com/hyperframes)) pour des motion graphics HTML→MP4. La galerie [`prompt-templates/`](prompt-templates/) fournit des prompts prĂȘts Ă  reproduire, avec thumbnails et attribution. MĂȘme surface de chat que le code ; les sorties deviennent de vrais fichiers `.mp4` / `.png` dans le workspace du projet. | | **Directions visuelles** | 5 Ă©coles soigneusement sĂ©lectionnĂ©es (Editorial Monocle · Modern Minimal · Warm Soft · Tech Utility · Brutalist Experimental), chacune avec palette OKLch dĂ©terministe + font stack ([`apps/daemon/src/prompts/directions.ts`](apps/daemon/src/prompts/directions.ts)) | | **Frames d’appareils** | iPhone 15 Pro · Pixel · iPad Pro · MacBook · Browser Chrome, pixel-accurate et partagĂ©s entre Skills sous [`assets/frames/`](assets/frames/) | | **Agent runtime** | Le daemon local lance la CLI dans le dossier projet. L’agent reçoit de vrais `Read`, `Write`, `Bash`, `WebFetch` sur un environnement disque rĂ©el, avec fallback Windows `ENAMETOOLONG` (stdin / prompt-file) sur chaque adapter | | **Imports** | DĂ©posez un ZIP exportĂ© depuis [Claude Design][cd] dans le welcome dialog : `POST /api/import/claude-design` le convertit en vrai projet pour que votre agent continue lĂ  oĂč Anthropic s’est arrĂȘtĂ© | | **Persistance** | SQLite dans `.od/app.sqlite` : projects · conversations · messages · tabs · saved templates. Rouvrez demain, la todo card et les fichiers ouverts sont au mĂȘme endroit. | | **Lifecycle** | Un seul point d’entrĂ©e : `pnpm tools-dev` (start / stop / run / status / logs / inspect / check), qui dĂ©marre daemon + web (+ desktop) avec des typed sidecar stamps | | **Desktop** | Shell Electron optionnel avec renderer sandboxĂ© + sidecar IPC (STATUS / EVAL / SCREENSHOT / CONSOLE / CLICK / SHUTDOWN), utilisĂ© par `tools-dev inspect desktop screenshot` pour l’E2E | | **DĂ©ployable sur** | Local (`pnpm tools-dev`) · couche web Vercel · application desktop Electron empaquetĂ©e pour macOS (Apple Silicon) et Windows (x64) — tĂ©lĂ©chargement sur [open-design.ai](https://open-design.ai/) ou la [derniĂšre release](https://github.com/nexu-io/open-design/releases) | | **Licence** | Apache-2.0 | [acd2]: https://github.com/VoltAgent/awesome-design-md [ads]: https://github.com/bergside/awesome-design-skills ## DĂ©mo
01 · Vue d’entrĂ©e
Vue d’entrĂ©e : choisissez un Skill, un Design System, puis saisissez le brief. La mĂȘme surface sert aux prototypes, decks, apps mobiles, dashboards et pages Ă©ditoriales.
02 · Question form de découverte du premier tour
Question form de dĂ©couverte : avant que le modĂšle n’écrive un pixel, OD verrouille le brief : surface, audience, ton, contexte de marque, Ă©chelle. 30 secondes de boutons radio valent mieux que 30 minutes d’allers-retours.
03 · Sélecteur de direction
Direction picker : quand l’utilisateur n’a pas de marque, l’agent Ă©met un second formulaire avec 5 directions soigneusement sĂ©lectionnĂ©es. Un clic radio → palette + font stack dĂ©terministes, sans freestyle du modĂšle.
04 · Progression todo live
Progression todo live : le plan de l’agent arrive comme carte live. Les Ă©tats in_progress → completed se mettent Ă  jour en temps rĂ©el. L’utilisateur peut corriger le tir Ă  faible coĂ»t pendant le travail.
05 · Preview sandboxée
Preview sandboxée : chaque <artifact> est rendu dans une iframe srcdoc propre. Modifiable sur place via le file workspace ; téléchargeable en HTML, PDF, ZIP.
06 · BibliothÚque de Design Systems
BibliothĂšque de Design Systems : chaque product system montre sa signature en 4 couleurs. Cliquez pour le DESIGN.md complet, la grille de swatches et le showcase live.
07 · Deck magazine
Mode deck (guizang-ppt) : le guizang-ppt-skill inclus fonctionne tel quel. Layouts magazine, arriĂšre-plans hero WebGL, sortie HTML single-file, export PDF.
08 · Prototype mobile
Prototype mobile : chrome iPhone 15 Pro pixel-accurate (Dynamic Island, SVGs de status bar, home indicator). Les prototypes multi-écrans utilisent les assets partagés /frames/.
## Skills Les Skills livrĂ©s avec le repo sont des dossiers sous [`skills/`](skills/) suivant la convention [`SKILL.md`][skill] de Claude Code, avec un frontmatter `od:` Ă©tendu que le daemon lit tel quel : `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)). Le champ **`mode`** structure le catalogue (`prototype`, `deck`, `image`, `video`, `audio`, `design-system`, `utility`, etc.). Le champ **`scenario`** sert au regroupement dans le picker, avec des labels comme `design` · `marketing` · `operations` · `engineering` · `product` · `finance` · `hr` · `sales` · `personal`, et d’autres selon les Skills. ### Exemples showcase Les Skills visuellement distinctifs que vous lancerez probablement en premier. Chacun livre un vrai `example.html` que vous pouvez ouvrir depuis le repo pour voir ce que l’agent produira, sans auth ni setup.
dating-web
dating-web · prototype
Dashboard consumer dating / matchmaking : navigation gauche, ticker bar, KPIs, graphique de mutual matches sur 30 jours, typographie éditoriale.
digital-eguide
digital-eguide · template
E-guide numérique en deux spreads : couverture (titre, auteur, teaser de sommaire) + page de leçon avec pull-quote et étapes. Ton creator / lifestyle.
email-marketing
email-marketing · prototype
Email HTML de lancement produit : masthead, image hero, bloc titre, CTA, grille de specs. Colonne unique centrée, compatible fallback table.
gamified-app
gamified-app · prototype
Prototype mobile gamifiĂ© en trois frames sur scĂšne sombre : cover, quĂȘtes du jour avec rubans XP + barre de niveau, dĂ©tail de quĂȘte.
mobile-onboarding
mobile-onboarding · prototype
Onboarding mobile en trois frames : splash, value prop, sign-in. Status bar, dots de swipe, CTA principal.
motion-frames
motion-frames · prototype
Hero motion-design single-frame avec animations CSS en boucle : anneau typo rotatif, globe animĂ©, timer. PrĂȘt pour handoff HyperFrames.
social-carousel
social-carousel · prototype
Carousel social 1080×1080 en trois cartes : panneaux cinĂ©matiques avec titres display liĂ©s entre eux, marque, affordance de boucle.
sprite-animation
sprite-animation · prototype
Slide explicative pixel / 8-bit animée : scÚne crÚme plein cadre, mascotte pixel animée, typographie display japonaise cinétique, keyframes CSS en boucle.
### Surfaces design & marketing (mode prototype) | Skill | Plateforme | ScĂ©nario | Produit | |---|---|---|---| | [`web-prototype`](skills/web-prototype/) | desktop | design | HTML single-page : landings, marketing, hero pages (dĂ©faut pour prototype) | | [`saas-landing`](skills/saas-landing/) | desktop | marketing | Layout marketing hero / features / pricing / CTA | | [`dashboard`](skills/dashboard/) | desktop | operations | Admin / analytics avec sidebar + data dense | | [`pricing-page`](skills/pricing-page/) | desktop | sales | Page pricing autonome + tableaux de comparaison | | [`docs-page`](skills/docs-page/) | desktop | engineering | Documentation en 3 colonnes | | [`blog-post`](skills/blog-post/) | desktop | marketing | Long-form Ă©ditorial | | [`mobile-app`](skills/mobile-app/) | mobile | design | Écran(s) app dans frame iPhone 15 Pro / Pixel | | [`mobile-onboarding`](skills/mobile-onboarding/) | mobile | design | Flow onboarding mobile multi-Ă©crans (splash · value-prop · sign-in) | | [`gamified-app`](skills/gamified-app/) | mobile | personal | Prototype mobile gamifiĂ© en trois frames | | [`email-marketing`](skills/email-marketing/) | desktop | marketing | Email HTML de lancement produit (table-fallback safe) | | [`social-carousel`](skills/social-carousel/) | desktop | marketing | Carousel social 1080×1080 en 3 cartes | | [`magazine-poster`](skills/magazine-poster/) | desktop | marketing | Poster single-page style magazine | | [`motion-frames`](skills/motion-frames/) | desktop | marketing | Hero motion-design avec animations CSS en boucle | | [`sprite-animation`](skills/sprite-animation/) | desktop | marketing | Slide explicative pixel / 8-bit animĂ©e | | [`dating-web`](skills/dating-web/) | desktop | personal | Mockup dashboard dating consumer | | [`digital-eguide`](skills/digital-eguide/) | desktop | marketing | E-guide en deux spreads (couverture + leçon) | | [`wireframe-sketch`](skills/wireframe-sketch/) | desktop | design | Sketch d’idĂ©ation dessinĂ© Ă  la main pour montrer quelque chose tĂŽt | | [`critique`](skills/critique/) | desktop | design | Scorecard de self-critique en cinq dimensions (Philosophie · HiĂ©rarchie · DĂ©tail · Fonction · Innovation) | | [`tweaks`](skills/tweaks/) | desktop | design | Panneau d’ajustements Ă©mis par l’IA, oĂč le modĂšle expose les paramĂštres Ă  retoucher | ### Surfaces deck (mode deck) | Skill | DĂ©faut pour | Produit | |---|---|---| | [`guizang-ppt`](skills/guizang-ppt/) | **dĂ©faut** pour deck | PPT web style magazine, inclus tel quel depuis [op7418/guizang-ppt-skill][guizang] | | [`simple-deck`](skills/simple-deck/) | n/a | Deck HTML minimal Ă  swipe horizontal | | [`replit-deck`](skills/replit-deck/) | n/a | Deck walkthrough produit (style Replit) | | [`weekly-update`](skills/weekly-update/) | n/a | Cadence weekly d’équipe en deck swipe (progress · blockers · next) | ### Surfaces office & opĂ©rations | Skill | ScĂ©nario | Produit | |---|---|---| | [`pm-spec`](skills/pm-spec/) | product | Spec PM avec table des matiĂšres + decision log | | [`team-okrs`](skills/team-okrs/) | product | Scorecard OKR | | [`meeting-notes`](skills/meeting-notes/) | operations | Notes de rĂ©union et decision log | | [`kanban-board`](skills/kanban-board/) | operations | Snapshot de board | | [`eng-runbook`](skills/eng-runbook/) | engineering | Runbook d’incident | | [`finance-report`](skills/finance-report/) | finance | RĂ©sumĂ© finance exĂ©cutif | | [`invoice`](skills/invoice/) | finance | Facture single-page | | [`hr-onboarding`](skills/hr-onboarding/) | hr | Plan d’onboarding par rĂŽle | Ajouter un Skill revient Ă  ajouter un dossier. Lisez [`docs/skills-protocol.md`](docs/skills-protocol.md) pour le frontmatter `od:` Ă©tendu, forkez un Skill existant, redĂ©marrez le daemon, il apparaĂźt dans le picker. L’endpoint catalogue est `GET /api/skills`; l’assemblage seed par Skill est exposĂ© par `GET /api/skills/:id/example`. ## Six idĂ©es structurantes ### 1 · Nous ne livrons pas d’agent. Le vĂŽtre suffit. Au dĂ©marrage, le daemon scanne votre `PATH` avec les dĂ©finitions de [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) : Claude Code, Codex, Devin for Terminal, Cursor Agent, Gemini CLI, OpenCode, Qwen, Qoder CLI, GitHub Copilot CLI, Hermes, Kimi, Pi, Kiro CLI, Mistral Vibe CLI et les adapters ajoutĂ©s plus tard. Ceux qu’il trouve deviennent des design engines candidats, pilotĂ©s via stdio avec un adapter par CLI et interchangeables depuis le model picker. InspirĂ© par [`multica`](https://github.com/multica-ai/multica) et [`cc-switch`](https://github.com/farion1231/cc-switch). Aucune CLI installĂ©e ? Le mode API suit la mĂȘme pipeline, sans spawn local : choisissez Anthropic, OpenAI-compatible, Azure OpenAI ou Google Gemini, et le daemon renvoie les chunks SSE normalisĂ©s, avec rejet des destinations loopback / link-local / RFC1918. ### 2 · Les Skills sont des fichiers, pas des plugins. Selon la convention [`SKILL.md`](https://docs.anthropic.com/en/docs/claude-code/skills) de Claude Code, un Skill est au minimum un `SKILL.md` ; `assets/` et `references/` sont des side files optionnels. DĂ©posez un dossier dans [`skills/`](skills/), redĂ©marrez le daemon, il apparaĂźt dans le picker. Le `magazine-web-ppt` inclus est [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) committĂ© tel quel, avec licence originale et attribution prĂ©servĂ©es. ### 3 · Les Design Systems sont du Markdown portable, pas du JSON de thĂšme. Le schĂ©ma `DESIGN.md` en 9 sections vient de [`VoltAgent/awesome-design-md`][acd2] : color, typography, spacing, layout, components, motion, voice, brand, anti-patterns. Chaque artifact lit le Design System actif. Changez de Design System, le prochain rendu utilise les nouveaux tokens. Le menu dĂ©roulant charge les dossiers `design-systems/*/DESIGN.md` : **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
**, ainsi que des design skills normalisĂ©s depuis [`awesome-design-skills`][ads]. ### 4 · Le question form Ă©vite 80 % des allers-retours. Le prompt stack d’OD impose `RULE 1` : tout nouveau design brief commence par un `` au lieu de code. Surface · audience · tone · brand context · scale · contraintes. MĂȘme un long brief laisse des dĂ©cisions design ouvertes, comme le ton visuel, la posture couleur ou l’échelle ; le formulaire les verrouille en 30 secondes. Une mauvaise direction coĂ»te un tour de chat, pas un deck terminĂ©. C’est le **mode Junior-Designer** tirĂ© de [`huashu-design`](https://github.com/alchaincyf/huashu-design) : poser les questions dĂšs le dĂ©part, montrer vite quelque chose de visible, mĂȘme un wireframe en blocs gris, et permettre Ă  l’utilisateur de corriger le tir Ă  faible coĂ»t. CombinĂ© au protocole brand-asset (locate · download · `grep` hex · write `brand-spec.md` · vocalise), c’est la raison principale pour laquelle la sortie cesse de ressembler Ă  du freestyle IA et commence Ă  ressembler Ă  un designer qui a observĂ© avant de peindre. ### 5 · Le daemon donne l’impression que l’agent est sur votre laptop, parce qu’il l’est. Le daemon lance la CLI avec `cwd` pointant vers le dossier artifact du projet sous `.od/projects//`. L’agent reçoit `Read`, `Write`, `Bash`, `WebFetch`, de vrais outils sur un vrai filesystem. Il peut lire le `assets/template.html` du skill, chercher les valeurs hex dans votre CSS, Ă©crire `brand-spec.md`, dĂ©poser des images gĂ©nĂ©rĂ©es, produire des `.pptx` / `.zip` / `.pdf` qui apparaissent dans le workspace comme download chips Ă  la fin du tour. Sessions, conversations, messages et tabs persistent dans une DB SQLite locale : rouvrez le projet demain, la todo card de l’agent est encore lĂ . ### 6 · Le prompt stack est le produit. À l’envoi, OD compose plusieurs couches : ```text DISCOVERY directives (formulaire tour 1, branche marque tour 2, TodoWrite, critique 5 dimensions) + identity charter (OFFICIAL_DESIGNER_PROMPT, anti-AI-slop, junior-pass) + active DESIGN.md (catalogue Design Systems) + active SKILL.md (catalogue Skills) + project metadata (kind, fidelity, speakerNotes, animations, inspiration ids) + skill side files (pre-flight auto-injectĂ© : lire assets/template.html + references/*.md) + (deck kind, no skill seed) DECK_FRAMEWORK_DIRECTIVE (nav / counter / scroll / print) ``` Chaque couche est composable. Chaque couche est un fichier Ă©ditable. Lisez [`apps/daemon/src/prompts/system.ts`](apps/daemon/src/prompts/system.ts) et [`apps/daemon/src/prompts/discovery.ts`](apps/daemon/src/prompts/discovery.ts) pour voir le contrat rĂ©el. ## Architecture ```text ┌────────────────────── browser (Next.js 16) ──────────────────────┐ │ chat · file workspace · iframe preview · settings · imports │ └──────────────┬───────────────────────────────────┬───────────────┘ │ /api/* (rewritten in dev) │ â–Œ â–Œ ┌──────────────────────────────────┐ /api/proxy/{provider}/stream (SSE) │ Local daemon (Express + SQLite) │ ─→ provider-specific APIs │ │ (BYOK) │ /api/agents /api/skills│ w/ SSRF blocking │ /api/design-systems /api/projects/
 │ /api/chat (SSE) /api/proxy/{provider}/stream (SSE) │ /api/templates /api/import/claude-design │ /api/artifacts/save /api/artifacts/lint │ /api/upload /api/projects/:id/files
 │ /artifacts (static) /frames (static) │ │ optional: sidecar IPC at /tmp/open-design/ipc//.sock │ (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) └─────────┬────────────────────────┘ │ spawn(cli, [...], { cwd: .od/projects/ }) â–Œ ┌──────────────────────────────────────────────────────────────────┐ │ claude · codex · devin (ACP) · gemini · opencode · cursor-agent │ │ qwen · qoder · copilot · hermes (ACP) · kimi (ACP) · pi (RPC) · kiro · vibe (ACP) │ │ reads SKILL.md + DESIGN.md, writes artifacts to disk │ └──────────────────────────────────────────────────────────────────┘ ``` | Couche | Stack | |---|---| | Frontend | Next.js 16 App Router + React 18 + TypeScript, dĂ©ployable sur Vercel | | Daemon | Node 24 · Express · streaming SSE · `better-sqlite3`; tables `projects` · `conversations` · `messages` · `tabs` · `templates` | | Transport agent | `child_process.spawn`; parseurs typed-event pour `claude-stream-json`, `qoder-stream-json`, `copilot-stream-json`, `json-event-stream`, `acp-json-rpc`, `pi-rpc`, `plain` | | Proxy BYOK | `POST /api/proxy/{anthropic,openai,azure,google}/stream` → APIs provider-specific, SSE normalisĂ© `delta/end/error` ; rejet loopback / link-local / RFC1918 au bord du daemon | | Stockage | Fichiers simples dans `.od/projects//` + SQLite dans `.od/app.sqlite` (gitignored, auto-créé). `OD_DATA_DIR` permet l’isolation des tests | | Aperçu | Iframe sandboxĂ©e via `srcdoc` + parser `` par Skill ([`apps/web/src/artifacts/parser.ts`](apps/web/src/artifacts/parser.ts)) | | Export | HTML (assets inline) · PDF (browser print, deck-aware) · PPTX (pilotĂ© par agent via Skill) · ZIP (archiver) · Markdown | | Lifecycle | `pnpm tools-dev start \| stop \| run \| status \| logs \| inspect \| check`; ports via `--daemon-port` / `--web-port`, namespaces via `--namespace` | | Desktop (optionnel) | Shell Electron, dĂ©couvre l’URL web par sidecar IPC, sans deviner le port ; le mĂȘme canal `STATUS`/`EVAL`/`SCREENSHOT`/`CONSOLE`/`CLICK`/`SHUTDOWN` alimente `tools-dev inspect desktop 
` pour l’E2E | ## Quickstart ### TĂ©lĂ©charger l'application desktop (aucun build requis) Le moyen le plus rapide d'essayer Open Design est l'application desktop prĂ©construite — pas de Node, pas de pnpm, pas de clone : - **[open-design.ai](https://open-design.ai/)** — page de tĂ©lĂ©chargement officielle - **[Releases GitHub](https://github.com/nexu-io/open-design/releases)** ### ExĂ©cuter depuis les sources ```bash git clone https://github.com/nexu-io/open-design.git cd open-design corepack enable corepack pnpm --version # should print 10.33.2 pnpm install pnpm tools-dev run web # open the web URL printed by tools-dev ``` PrĂ©requis : Node `~24` et pnpm `10.33.x`. `nvm` / `fnm` ne sont que des aides facultatives ; si vous en utilisez un, lancez `nvm install 24 && nvm use 24` ou `fnm install 24 && fnm use 24` avant `pnpm install`. Les utilisateurs Windows peuvent suivre [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md) pour le chemin d'installation natif et un petit launcher en double-clic. Pour le dĂ©marrage desktop/background, les redĂ©marrages sur ports fixes et les checks du dispatcher de gĂ©nĂ©ration mĂ©dia (`OD_BIN`, `OD_DAEMON_URL`, `apps/daemon/dist/cli.js`), voir [`QUICKSTART.fr.md`](QUICKSTART.fr.md). Au premier chargement : 1. OD dĂ©tecte les CLI d’agents prĂ©sentes dans votre `PATH` et en choisit une automatiquement. 2. Il charge les catalogues Skills + Design Systems depuis les dossiers du repo. 3. Il affiche le welcome dialog pour configurer une clĂ© API, nĂ©cessaire seulement pour le fallback BYOK. 4. Il **crĂ©e automatiquement `./.od/`**, le dossier runtime local pour la DB SQLite, les artifacts par projet et les rendus enregistrĂ©s. Pas d’étape `od init` ; le daemon crĂ©e ce dont il a besoin au boot. Tapez un prompt, cliquez **Send**, regardez le formulaire arriver, remplissez-le, puis suivez la todo card et le rendu de l’artifact. Cliquez **Save to disk** ou tĂ©lĂ©chargez le projet en ZIP. ### État premier lancement (`./.od/`) Le daemon possĂšde un dossier cachĂ© Ă  la racine du repo. Tout son contenu est gitignored et local Ă  votre machine, ne le committez jamais. ```text .od/ ├── app.sqlite ← projects · conversations · messages · open tabs ├── media-config.json ← credentials mĂ©dia / BYOK ├── artifacts/ ← rendus ponctuels "Save to disk" (horodatĂ©s) └── projects// ← dossier de travail par projet, aussi cwd de l’agent ``` | Besoin | Action | |---|---| | Inspecter ce qu’il contient | `ls -la .od && sqlite3 .od/app.sqlite '.tables'` | | Repartir de zĂ©ro | `pnpm tools-dev stop`, `rm -rf .od`, relancer `pnpm tools-dev run web` | | DĂ©placer toutes les donnĂ©es daemon | lancer avec `OD_DATA_DIR=` ; utilisez `OD_MEDIA_CONFIG_DIR=` si vous voulez seulement dĂ©placer `media-config.json` | Carte complĂšte des fichiers, scripts et dĂ©pannage → [`QUICKSTART.fr.md`](QUICKSTART.fr.md). ## Structure du dĂ©pĂŽt ```text open-design/ ├── README.md ← English ├── README.de.md ← Deutsch ├── README.zh-CN.md ← çź€äœ“äž­æ–‡ ├── README.zh-TW.md ← çčé«”äž­æ–‡ ├── README.ko.md ← 한ꔭ얎 ├── README.ja-JP.md ← æ—„æœŹèȘž ├── README.fr.md ← ce fichier ├── QUICKSTART.fr.md ← guide run / build / deploy ├── package.json ← workspace pnpm, bin unique : od │ ├── apps/ │ ├── daemon/ ← Node + Express, seul serveur │ │ ├── src/ ← source TypeScript du daemon │ │ │ ├── cli.ts ← source du bin `od`, compilĂ© vers dist/cli.js │ │ │ ├── server.ts ← routes /api/* (projects, chat, files, exports) │ │ │ ├── agents.ts ← PATH scanner + argv builders par CLI │ │ │ ├── claude-stream.ts ← parser JSON streaming pour stdout Claude Code │ │ │ ├── skills.ts ← loader du frontmatter SKILL.md │ │ │ └── db.ts ← schĂ©ma SQLite (projects/messages/templates/tabs) │ │ ├── sidecar/ ← wrapper tools-dev du daemon sidecar │ │ └── tests/ ← tests du package daemon │ │ │ └── web/ ← Next.js 16 App Router + client React │ ├── app/ ← entrypoints App Router │ ├── next.config.ts ← rewrites dev + export statique prod vers out/ │ └── src/ ← modules client React + TypeScript │ ├── App.tsx ← routing, bootstrap, settings │ ├── components/ ← chat, composer, picker, preview, sketch, 
 │ ├── prompts/ │ │ ├── system.ts ← composeSystemPrompt(base, skill, DS, metadata) │ │ ├── discovery.ts ← turn-1 form + turn-2 branch + critique 5 dimensions │ │ └── directions.ts ← 5 visual directions × palette OKLch + font stack │ ├── artifacts/ ← parser streaming + manifests │ ├── runtime/ ← iframe srcdoc, markdown, helpers d’export │ ├── providers/ ← transports daemon SSE + BYOK API │ └── state/ ← config + projects (localStorage + daemon-backed) │ ├── e2e/ ← Playwright UI + harness Vitest / intĂ©gration externe │ ├── packages/ │ ├── contracts/ ← contrats app partagĂ©s web/daemon │ ├── sidecar-proto/ ← contrat du sidecar protocol Open Design │ ├── sidecar/ ← primitives runtime sidecar gĂ©nĂ©riques │ └── platform/ ← primitives process/platform gĂ©nĂ©riques │ ├── skills/ ← bundles SKILL.md chargĂ©s par le daemon │ ├── web-prototype/ ← dĂ©faut pour le mode prototype │ ├── saas-landing/ dashboard/ pricing-page/ docs-page/ blog-post/ │ ├── mobile-app/ mobile-onboarding/ gamified-app/ │ ├── email-marketing/ social-carousel/ magazine-poster/ │ ├── motion-frames/ sprite-animation/ digital-eguide/ dating-web/ │ ├── critique/ tweaks/ wireframe-sketch/ │ ├── pm-spec/ team-okrs/ meeting-notes/ kanban-board/ │ ├── eng-runbook/ finance-report/ invoice/ hr-onboarding/ │ ├── simple-deck/ replit-deck/ weekly-update/ ← mode deck │ └── guizang-ppt/ ← magazine-web-ppt intĂ©grĂ© (dĂ©faut pour deck) │ ├── SKILL.md │ ├── assets/template.html ← seed │ └── references/{themes,layouts,components,checklist}.md │ ├── design-systems/ ← catalogues DESIGN.md chargĂ©s par le daemon │ ├── default/ ← Neutral Modern (starter) │ ├── warm-editorial/ ← Warm Editorial (starter) │ ├── linear-app/ vercel/ stripe/ airbnb/ notion/ cursor/ apple/ 
 │ └── README.md ← aperçu du catalogue │ ├── assets/ │ └── frames/ ← device frames partagĂ©es entre Skills │ ├── iphone-15-pro.html │ ├── android-pixel.html │ ├── ipad-pro.html │ ├── macbook.html │ └── browser-chrome.html │ ├── templates/ │ ├── deck-framework.html ← base deck (nav / counter / print) │ └── kami-deck.html ← starter deck façon kami (parchemin / serif ink-blue) │ ├── scripts/ │ └── sync-design-systems.ts ← rĂ©importe le tarball upstream awesome-design-md │ ├── docs/ │ ├── spec.md ← product spec, scenarios, diffĂ©renciation │ ├── architecture.md ← topologies, data flow, composants │ ├── skills-protocol.md ← frontmatter od: Ă©tendu pour SKILL.md │ ├── agent-adapters.md ← dĂ©tection + dispatch par CLI │ ├── modes.md ← prototype / deck / template / design-system │ ├── references.md ← provenance longue │ ├── roadmap.md ← livraison par phases │ ├── schemas/ ← JSON schemas │ └── examples/ ← exemples d’artifacts canoniques │ └── .od/ ← runtime data, gitignored, auto-créé ├── app.sqlite ← projects / conversations / messages / tabs ├── projects// ← dossier de travail par projet, aussi cwd de l’agent └── artifacts/ ← rendus ponctuels Save to disk ``` ## Design Systems

BibliothĂšque de Design Systems : style guide spread

Les Design Systems livrés avec le repo sont chargés depuis [`design-systems/*/DESIGN.md`](design-systems/README.md) :
Exemples du catalogue (cliquer pour ouvrir) **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`
La bibliothĂšque de product systems est importĂ©e depuis [`VoltAgent/awesome-design-md`][acd2] via [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Relancez ce script pour rafraĂźchir le catalogue. Les design skills issus de [`bergside/awesome-design-skills`][ads] sont ajoutĂ©s directement dans `design-systems/`. ## Directions visuelles Quand l’utilisateur n’a pas de brand spec, l’agent Ă©met un second formulaire avec cinq directions soigneusement sĂ©lectionnĂ©es, l’adaptation OD du fallback « 5 schools × 20 design philosophies » de [`huashu-design`](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). Chaque direction est une spec dĂ©terministe : palette OKLch, font stack, posture layout, rĂ©fĂ©rences, que l’agent injecte tel quel dans le `:root` du seed template. Un clic radio → systĂšme visuel entiĂšrement spĂ©cifiĂ©. Pas d’improvisation, pas d’AI-slop. | Direction | Mood | RĂ©fĂ©rences | |---|---|---| | Editorial · Monocle / FT | Magazine imprimĂ©, encre + crĂšme + rouille chaude | Monocle · FT Weekend · NYT Magazine | | Modern minimal · Linear / Vercel | Froid, structurĂ©, accent minimal | Linear · Vercel · Stripe | | Tech utility | DensitĂ© d’information, monospace, terminal | Bloomberg · Bauhaus tools | | Brutalist | Brut, typographie oversized, pas d’ombres, accents durs | Bloomberg Businessweek · Achtung | | Soft warm | GĂ©nĂ©reux, faible contraste, neutres pĂȘche | Notion marketing · Apple Health | Spec complĂšte → [`apps/daemon/src/prompts/directions.ts`](apps/daemon/src/prompts/directions.ts). ## GĂ©nĂ©ration mĂ©dia OD ne s’arrĂȘte pas au code. La mĂȘme surface de chat qui produit du HTML `` pilote aussi la gĂ©nĂ©ration **image**, **vidĂ©o** et **audio**, avec des adapters modĂšle reliĂ©s Ă  la pipeline mĂ©dia du daemon ([`apps/daemon/src/media-models.ts`](apps/daemon/src/media-models.ts), [`apps/web/src/media/models.ts`](apps/web/src/media/models.ts)). Chaque rendu arrive comme vrai fichier dans le workspace projet, `.png` pour l’image, `.mp4` pour la vidĂ©o, et apparaĂźt comme chip de tĂ©lĂ©chargement Ă  la fin du tour. Trois familles de modĂšles portent la charge aujourd’hui : | Surface | ModĂšle | Fournisseur | Usage | |---|---|---|---| | **Image** | `gpt-image-2` | Azure / OpenAI | Posters, avatars, cartes illustrĂ©es, infographies, social cards style magazine, restauration photo, art produit Ă©clatĂ© | | **VidĂ©o** | `seedance-2.0` | ByteDance Volcengine | t2v + i2v cinĂ©matique de 15 s avec audio, shorts narratifs, close-ups personnage, films produit, chorĂ©graphies MV | | **VidĂ©o** | `hyperframes-html` | [HeyGen / OSS](https://github.com/heygen-com/hyperframes) | Motion graphics HTML→MP4, product reveals, typographie cinĂ©tique, data charts, overlays sociaux, logo outros, verticaux TikTok avec captions karaoke | Une **galerie de prompts** sous [`prompt-templates/`](prompt-templates/) livre des prompts prĂȘts Ă  reproduire pour les surfaces image et vidĂ©o. Chaque entrĂ©e contient un thumbnail, le prompt body exact, le modĂšle cible, le ratio d’aspect et un bloc `source` pour licence + attribution. Le daemon les sert via `GET /api/prompt-templates`, et la web app les expose comme grille de cartes dans les onglets **Image templates** et **Video templates**. ### gpt-image-2 · galerie image (Ă©chantillon)
3D Stone Staircase Evolution
Infographie évolution en escalier de pierre 3D
Infographie 3 étapes, esthétique pierre taillée
Illustrated City Food Map
Carte culinaire urbaine illustrée
Poster de voyage éditorial dessiné à la main
Cinematic Elevator Scene
ScĂšne d’ascenseur cinĂ©matique
Still mode éditorial single-frame
Cyberpunk Anime Portrait
Portrait anime cyberpunk
Avatar profil, texte néon sur le visage
Glamorous Woman in Black
Portrait glamour en noir
Portrait studio éditorial
Set complet → [`prompt-templates/image/`](prompt-templates/image/). Sources : la plupart viennent de [`YouMind-OpenLab/awesome-gpt-image-prompts`](https://github.com/YouMind-OpenLab/awesome-gpt-image-prompts) (CC-BY-4.0), avec attribution auteur conservĂ©e par template. ### Seedance 2.0 · galerie vidĂ©o (Ă©chantillon de 39)
Music Podcast Guitar
Podcast musique & technique guitare
Film studio cinématique 4K
Emotional Face
Close-up émotionnel
Étude cinĂ©matique de micro-expression
Luxury Supercar
Supercar de luxe cinématique
Film produit narratif
Forbidden City Cat
Satire à la Cité interdite
Court stylisé satirique
Japanese Romance
Court métrage romance japonaise
Narration Seedance 2.0 de 15 s
Cliquez sur un thumbnail pour lire le MP4 rendu. Set complet → [`prompt-templates/video/`](prompt-templates/video/). Sources : [`YouMind-OpenLab/awesome-seedance-2-prompts`](https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts) (CC-BY-4.0), avec liens tweets originaux et handles auteurs conservĂ©s. ### HyperFrames · motion graphics HTML→MP4 (11 templates prĂȘts Ă  reproduire) [**`heygen-com/hyperframes`**](https://github.com/heygen-com/hyperframes) est le framework vidĂ©o open source agent-native de HeyGen : vous, ou l’agent, Ă©crivez HTML + CSS + GSAP, HyperFrames rend un MP4 dĂ©terministe via Chrome headless + FFmpeg. Open Design le livre comme modĂšle vidĂ©o de premiĂšre classe (`hyperframes-html`) reliĂ© au dispatch daemon, plus le skill `skills/hyperframes/` qui enseigne Ă  l’agent le contrat de timeline, les transitions de scĂšnes, les patterns audio-rĂ©actifs, captions/TTS et les catalog blocks (`npx hyperframes add `). Onze prompts hyperframes sont fournis sous [`prompt-templates/video/hyperframes-*.json`](prompt-templates/video/), chacun comme brief concret pour un archĂ©type prĂ©cis :
Product reveal
Product reveal minimal 5 s · 16:9 · title card push-in avec transition shader
SaaS promo
Promo produit SaaS 30 s · 16:9 · style Linear/ClickUp avec reveals UI 3D
TikTok karaoke
Talking-head TikTok karaoke · 9:16 · TTS + captions synchronisées mot à mot
Brand sizzle
Brand sizzle reel 30 s · 16:9 · typographie cinétique beat-sync, audio-réactive
Data chart
Bar-chart race animé · 16:9 · infographie data style NYT
Flight map
Carte de vol (origine → destination) · 16:9 · reveal de route cinĂ©matique style Apple
Logo outro
Logo outro cinématique 4 s · 16:9 · assemblage progressif + bloom
Money counter
Compteur $0 → $10K · 9:16 · hype style Apple avec flash vert + burst
App showcase
Showcase app 3 phones · 16:9 · téléphones flottants avec callouts feature
Social overlay
Stack d’overlays sociaux · 9:16 · X · Reddit · Spotify · Instagram en sĂ©quence
Website to video
Pipeline website-to-video · 16:9 · capture le site en 3 viewports + transitions
 
Le pattern reste le mĂȘme : choisissez un template, Ă©ditez le brief, envoyez. L’agent lit le `skills/hyperframes/SKILL.md` intĂ©grĂ©, Ă©crit la composition et livre un MP4. Les thumbnails de catalog blocks sont © HeyGen, servis depuis leur CDN ; le framework OSS est Apache-2.0. > **DĂ©jĂ  cĂąblĂ©s mais pas encore exposĂ©s comme templates :** Kling 2.0 / 1.6 / 1.5, Veo 3 / Veo 2, Sora 2 / Sora 2-Pro (via Fal), MiniMax video-01, tous dans `VIDEO_MODELS` ([`apps/web/src/media/models.ts`](apps/web/src/media/models.ts)). Les modĂšles audio sont cataloguĂ©s, mais l’UI audio intĂ©grĂ©e expose aujourd’hui les providers speech pris en charge, comme MiniMax et FishAudio. La galerie de templates reste image / vidĂ©o : ajoutez un JSON dans `prompt-templates/video/` pour le faire apparaĂźtre dans le picker vidĂ©o. ## Au-delĂ  du chat La boucle chat / artifact est la plus visible, mais plusieurs capacitĂ©s moins exposĂ©es sont dĂ©jĂ  cĂąblĂ©es : - **Import ZIP Claude Design.** DĂ©posez un export de claude.ai sur le welcome dialog. `POST /api/import/claude-design` l’extrait dans un vrai `.od/projects//`, ouvre le fichier d’entrĂ©e en tab et prĂ©pare un prompt pour continuer lĂ  oĂč Anthropic s’est arrĂȘtĂ©. - **Proxy BYOK multi-provider.** `POST /api/proxy/{anthropic,openai,azure,google}/stream` prend `{ baseUrl, apiKey, model, messages }`, construit la requĂȘte upstream propre au provider, normalise les chunks SSE vers `delta/end/error` et rejette les destinations loopback / link-local / RFC1918 pour prĂ©venir SSRF. - **Templates utilisateur.** Une fois un rendu validĂ©, `POST /api/templates` prend un snapshot du HTML + metadata dans la table SQLite `templates`. Le projet suivant peut le choisir depuis une ligne « your templates ». - **Persistance des tabs.** Chaque projet mĂ©morise ses fichiers ouverts et son onglet actif dans la table `tabs`. - **Artifact lint API.** `POST /api/artifacts/lint` exĂ©cute des checks structurels sur un artifact gĂ©nĂ©rĂ© et renvoie des findings que l’agent peut relire au tour suivant. - **Sidecar protocol + automation desktop.** Les processus daemon, web et desktop portent des stamps typĂ©s Ă  cinq champs (`app · mode · namespace · ipc · source`) et exposent un canal JSON-RPC IPC sous `/tmp/open-design/ipc//.sock`. - **Spawning compatible Windows.** Les adapters qui dĂ©passeraient la limite argv de `CreateProcess` envoient le prompt via stdin ; le daemon retombe sur un fichier prompt temporaire si besoin. - **Runtime data par namespace.** `OD_DATA_DIR` et `--namespace` donnent des arbres `.od/` isolĂ©s, pour que Playwright, les canaux beta et vos vrais projets ne partagent jamais le mĂȘme SQLite. ## Anti-AI-slop machinery Tout le mĂ©canisme ci-dessous est le playbook [`huashu-design`](https://github.com/alchaincyf/huashu-design), portĂ© dans le prompt-stack d'OD et rendu vĂ©rifiable par Skill via le pre-flight des side files. Lisez [`apps/daemon/src/prompts/discovery.ts`](apps/daemon/src/prompts/discovery.ts) pour le texte actuel : - **Question form first.** Le tour 1 est seulement ``, sans thinking, outils ni narration. L’utilisateur choisit des valeurs par dĂ©faut Ă  la vitesse de boutons radio. - **Brand-spec extraction.** Quand l’utilisateur attache un screenshot ou une URL, l’agent suit un protocole en cinq Ă©tapes (locate · download · grep hex · codify `brand-spec.md` · vocalise) avant d’écrire du CSS. **Il ne devine jamais les couleurs de marque depuis la mĂ©moire.** - **Critique 5 dimensions.** Avant d’émettre ``, l’agent attribue silencieusement un score Ă  sa sortie de 1 Ă  5 sur philosophie / hiĂ©rarchie / exĂ©cution / spĂ©cificitĂ© / retenue. Tout score sous 3/5 est une rĂ©gression : il faut corriger puis Ă©valuer Ă  nouveau. - **Checklist P0/P1/P2.** Les Skills qui fournissent des side files peuvent inclure un `references/checklist.md` avec des P0 gates strictes. L’agent doit passer P0 avant d’émettre quand cette checklist existe. - **Slop blacklist.** Gradients violets agressifs, icĂŽnes emoji gĂ©nĂ©riques, cartes arrondies avec accent left-border, humains SVG dessinĂ©s Ă  la main, Inter comme display face, mĂ©triques inventĂ©es : explicitement interdits dans le prompt. - **Placeholders honnĂȘtes > fausses stats.** Quand l’agent n’a pas de vrai chiffre, il Ă©crit `N/A` ou un bloc gris libellĂ©, pas « 10× faster ». ## Comparaison | Axe | [Claude Design][cd] (Anthropic) | [Open CoDesign][ocod] | **Open Design** | |---|---|---|---| | Licence | FermĂ© | MIT | **Apache-2.0** | | Format | Web (claude.ai) | Desktop (Electron) | **Web app + daemon local** | | DĂ©ployable sur Vercel | ❌ | ❌ | **✅** | | Runtime agent | IntĂ©grĂ© (Opus 4.7) | IntĂ©grĂ© ([`pi-ai`][piai]) | **DĂ©lĂ©guĂ© Ă  la CLI existante de l’utilisateur** | | Skills | PropriĂ©taires | 12 modules TS custom + `SKILL.md` | **Bundles [`SKILL.md`][skill] file-based, droppables** | | Design System | PropriĂ©taire | `DESIGN.md` (roadmap v0.2) | **Catalogue `DESIGN.md` chargĂ© depuis `design-systems/`** | | FlexibilitĂ© fournisseur | Anthropic seulement | 7+ via [`pi-ai`][piai] | **CLI adapters + proxy BYOK multi-provider** | | Formulaire initial | ❌ | ❌ | **✅ RĂšgle dure, tour 1** | | Direction picker | ❌ | ❌ | **✅ 5 directions dĂ©terministes** | | Todo progress + tool stream live | ❌ | ✅ | **✅** | | Aperçu iframe sandboxĂ© | ❌ | ✅ | **✅** | | Import ZIP Claude Design | n/a | ❌ | **✅ `POST /api/import/claude-design`** | | Éditions chirurgicales comment-mode | ❌ | ✅ | 🟡 partiel | | Panneau tweaks Ă©mis par IA | ❌ | ✅ | 🚧 roadmap | | Workspace file-system-grade | ❌ | partiel | **✅ Vrai cwd, vrais outils, SQLite persistant** | | Self-critique 5 dimensions | ❌ | ❌ | **✅ Gate pre-emit** | | Artifact lint | ❌ | ❌ | **✅ `POST /api/artifacts/lint`** | | Sidecar IPC + desktop headless | ❌ | ❌ | **✅ Processus stampĂ©s + `tools-dev inspect desktop status \| eval \| screenshot`** | | Formats d’export | LimitĂ©s | HTML / PDF / PPTX / ZIP / Markdown | **HTML / PDF / PPTX (agent-driven) / ZIP / Markdown** | | RĂ©utilisation Skill PPT | N/A | Built-in | **[`guizang-ppt-skill`][guizang] intĂ©grĂ©** | | Facturation minimale | Pro / Max / Team | BYOK | **BYOK** | [cd]: https://x.com/claudeai/status/2045156267690213649 [ocod]: https://github.com/OpenCoworkAI/open-codesign [piai]: https://github.com/badlogic/pi-mono/tree/main/packages/ai [acd]: https://github.com/VoltAgent/awesome-claude-design [guizang]: https://github.com/op7418/guizang-ppt-skill [skill]: https://docs.anthropic.com/en/docs/claude-code/skills ## Coding agents pris en charge Auto-dĂ©tectĂ©s depuis `PATH` au boot du daemon. Aucune config nĂ©cessaire. Le dispatch streaming vit dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) (`AGENT_DEFS`) ; les parseurs par CLI vivent Ă  cĂŽtĂ©. Les modĂšles sont peuplĂ©s soit par probe (` --list-models`, ` models`, handshake ACP), soit par fallback prĂ©dĂ©fini quand la CLI n’expose pas de liste. | Agent | Bin | Format stream | Forme argv (chemin prompt composĂ©) | |---|---|---|---| | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | `claude` | `claude-stream-json` | `claude -p --output-format stream-json --verbose [--include-partial-messages] [--add-dir 
] --permission-mode bypassPermissions` (prompt sur stdin) | | [Codex CLI](https://github.com/openai/codex) | `codex` | `json-event-stream` + parseur `codex` | `codex exec --json --skip-git-repo-check --sandbox workspace-write -c sandbox_workspace_write.network_access=true [-C cwd] [--model 
] [-c model_reasoning_effort=
]` (prompt sur stdin) | | Devin for Terminal | `devin` | `acp-json-rpc` | `devin --permission-mode dangerous --respect-workspace-trust false acp` | | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | `json-event-stream` + parseur `gemini` | `gemini --output-format stream-json --skip-trust --yolo [--model 
]` (prompt sur stdin) | | [OpenCode](https://opencode.ai/) | `opencode` | `json-event-stream` + parseur `opencode` | `opencode run --format json --dangerously-skip-permissions [--model 
] -` | | [Cursor Agent](https://www.cursor.com/cli) | `cursor-agent` | `json-event-stream` + parseur `cursor-agent` | `cursor-agent --print --output-format stream-json --stream-partial-output --force --trust [--workspace cwd] [--model 
]` (prompt sur stdin) | | [Qwen Code](https://github.com/QwenLM/qwen-code) | `qwen` | `plain` | `qwen --yolo [--model 
] -` | | Qoder CLI | `qodercli` | `qoder-stream-json` | `qodercli -p --output-format stream-json --permission-mode bypass_permissions [--cwd cwd] [--model 
] [--add-dir 
]` (prompt sur stdin) | | [GitHub Copilot CLI](https://github.com/features/copilot/cli) | `copilot` | `copilot-stream-json` | `copilot -p - --allow-all-tools --output-format json [--model 
] [--add-dir 
]` (prompt sur stdin) | | [Hermes](https://github.com/eqlabs/hermes) | `hermes` | `acp-json-rpc` | `hermes acp --accept-hooks` | | Kimi CLI | `kimi` | `acp-json-rpc` | `kimi acp` | | [Kiro CLI](https://kiro.dev) | `kiro-cli` | `acp-json-rpc` | `kiro-cli acp` | | Kilo | `kilo` | `acp-json-rpc` | `kilo acp` | | [Mistral Vibe CLI](https://github.com/mistralai/mistral-vibe) | `vibe-acp` | `acp-json-rpc` | `vibe-acp` | | DeepSeek TUI | `deepseek` | `plain` (raw stdout chunks) | `deepseek exec --auto [--model 
] ` | | [Pi](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) | `pi` | `pi-rpc` | `pi --mode rpc [--model 
] [--thinking 
]` | | **BYOK multi-provider** | n/a | SSE normalisĂ© | `POST /api/proxy/{provider}/stream` → Anthropic / OpenAI-compatible / Azure OpenAI / Gemini ; protĂ©gĂ© contre loopback / link-local / RFC1918 | Ajouter une nouvelle CLI revient Ă  ajouter une entrĂ©e dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Le format de stream est l’un de `claude-stream-json`, `qoder-stream-json`, `copilot-stream-json`, `json-event-stream`, `acp-json-rpc`, `pi-rpc` ou `plain`. ## RĂ©fĂ©rences & lignĂ©e Chaque projet externe dont ce repo s’inspire. Chaque lien pointe vers la source pour vĂ©rifier la provenance. | Projet | RĂŽle ici | |---|---| | [`Claude Design`][cd] | Le produit fermĂ© dont ce repo est l’alternative open source. | | [**`alchaincyf/huashu-design`**](https://github.com/alchaincyf/huashu-design) | Le cƓur philosophie design. Workflow Junior-Designer, protocole brand-asset en 5 Ă©tapes, checklist anti-AI-slop, self-critique 5 dimensions et bibliothĂšque « 5 Ă©coles × 20 philosophies design » — tout distillĂ© dans [`apps/daemon/src/prompts/discovery.ts`](apps/daemon/src/prompts/discovery.ts) et [`apps/daemon/src/prompts/directions.ts`](apps/daemon/src/prompts/directions.ts). | | [**`op7418/guizang-ppt-skill`**][guizang] | Skill Magazine-web-PPT inclus tel quel sous [`skills/guizang-ppt/`](skills/guizang-ppt/). DĂ©faut pour le mode deck. | | [**`multica-ai/multica`**](https://github.com/multica-ai/multica) | Architecture daemon + adapter. DĂ©tection PATH, daemon local comme seul processus privilĂ©giĂ©, vision agent-as-teammate. | | [**`OpenCoworkAI/open-codesign`**][ocod] | PremiĂšre alternative open source Ă  Claude Design et pair le plus proche. Patterns UX adoptĂ©s : streaming-artifact loop, preview iframe sandboxĂ©e, panneau agent live, cinq exports, storage hub local, goĂ»t injectĂ© par `SKILL.md`. | | [`VoltAgent/awesome-claude-design`][acd] / [`awesome-design-md`][acd2] | Source du schĂ©ma `DESIGN.md` en 9 sections et des product systems importĂ©s. | | [`bergside/awesome-design-skills`][ads] | Source des design skills ajoutĂ©s comme `DESIGN.md` normalisĂ©s sous `design-systems/`. | | [`farion1231/cc-switch`](https://github.com/farion1231/cc-switch) | Inspiration pour la distribution de Skills par symlink entre plusieurs CLI agent. | | [Claude Code skills][skill] | Convention `SKILL.md` adoptĂ©e telle quelle. | Le rĂ©cit long de provenance vit dans [`docs/references.md`](docs/references.md). ## Roadmap - [x] Daemon + dĂ©tection agents CLI + registre Skills + catalogue Design Systems - [x] Web app + chat + question form + 5-direction picker + todo progress + preview sandboxĂ©e - [x] Catalogues Skills + Design Systems + 5 directions visuelles + 5 device frames - [x] Projets · conversations · messages · tabs · templates sur SQLite - [x] Proxy BYOK multi-provider (`/api/proxy/{anthropic,openai,azure,google}/stream`) avec SSRF guard - [x] Import ZIP Claude Design (`/api/import/claude-design`) - [x] Sidecar protocol + desktop Electron avec IPC automation - [x] Artifact lint API + gate pre-emit de self-critique 5 dimensions - [ ] Éditions chirurgicales comment-mode - [ ] UX panneau tweaks Ă©mis par IA - [ ] Recette Vercel + tunnel deployment - [ ] `npx od init` en une commande pour scaffold un projet avec `DESIGN.md` - [ ] Skill marketplace (`od skills install `) et surface CLI `od skill add | list | remove | test` - [x] Build Electron empaquetĂ© depuis `apps/packaged/` — tĂ©lĂ©chargements macOS (Apple Silicon) et Windows (x64) sur [open-design.ai](https://open-design.ai/) et la [page des releases GitHub](https://github.com/nexu-io/open-design/releases) Livraison par phases → [`docs/roadmap.md`](docs/roadmap.md). ## Statut C’est une implĂ©mentation encore jeune, mais la boucle fermĂ©e fonctionne de bout en bout : dĂ©tecter → choisir Skill + Design System → chat → parser `` → preview → sauvegarder. Le prompt stack et la Skill library concentrent l’essentiel de la valeur, et ils sont stables. Les composants UI Ă©voluent tous les jours. ## Star us

Star Open Design on GitHub : github.com/nexu-io/open-design

Si ce projet vous a Ă©conomisĂ© trente minutes, donnez-lui une ★. Les stars ne paient pas le loyer, mais elles indiquent au prochain designer, agent ou contributeur que cette expĂ©rience mĂ©rite son attention : [github.com/nexu-io/open-design](https://github.com/nexu-io/open-design). ## Contribuer Issues, PRs, nouveaux Skills et nouveaux Design Systems sont bienvenus. Les contributions les plus utiles sont souvent un dossier, un fichier Markdown ou un petit adapter qui tient dans une PR : - **Ajouter un Skill** : dĂ©poser un dossier dans [`skills/`](skills/) selon la convention [`SKILL.md`][skill]. - **Ajouter un Design System** : dĂ©poser un `DESIGN.md` dans [`design-systems//`](design-systems/) avec le schĂ©ma en 9 sections. - **Brancher une nouvelle coding-agent CLI** : une entrĂ©e dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Guide complet, critĂšres de merge, style de code et refus frĂ©quents → [`CONTRIBUTING.fr.md`](CONTRIBUTING.fr.md) ([English](CONTRIBUTING.md), [Deutsch](CONTRIBUTING.de.md), [çź€äœ“äž­æ–‡](CONTRIBUTING.zh-CN.md)). ## Contributeurs Merci Ă  toutes les personnes qui font avancer Open Design : code, docs, retours, nouveaux Skills, nouveaux Design Systems ou issues bien ciblĂ©es. Chaque vraie contribution compte. Contributeurs Open Design Si vous avez livrĂ© votre premiĂšre PR, bienvenue. Le label [`good-first-issue`/`help-wanted`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22%2C%22help+wanted%22) est le point d’entrĂ©e. ## ActivitĂ© du dĂ©pĂŽt Open Design : mĂ©triques du dĂ©pĂŽt Le SVG ci-dessus est rĂ©gĂ©nĂ©rĂ© chaque jour par [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) avec [`lowlighter/metrics`](https://github.com/lowlighter/metrics). Lancez un refresh manuel depuis l’onglet **Actions** si vous le voulez plus tĂŽt ; pour des plugins plus riches, ajoutez un secret `METRICS_TOKEN` avec un PAT fine-grained. ## Star History Historique des stars Open Design Si la courbe monte, c’est le signal que nous cherchons. ★ ce repo pour l’aider Ă  monter. ## CrĂ©dits La famille de Skills HTML PPT Studio, le Skill maĂźtre [`skills/html-ppt/`](skills/html-ppt/) et les wrappers par template sous [`skills/html-ppt-*/`](skills/), est intĂ©grĂ©e depuis le projet open source [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) (MIT). La LICENSE upstream est incluse dans le repo Ă  [`skills/html-ppt/LICENSE`](skills/html-ppt/LICENSE) et le crĂ©dit auteur revient Ă  [@lewislulu](https://github.com/lewislulu). Le flow deck magazine / horizontal-swipe sous [`skills/guizang-ppt/`](skills/guizang-ppt/) est intĂ©grĂ© depuis [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) (MIT). CrĂ©dit auteur : [@op7418](https://github.com/op7418). ## Licence Apache-2.0. Le bundle `skills/guizang-ppt/` conserve sa [LICENSE](skills/guizang-ppt/LICENSE) originale (MIT) et l’attribution Ă  [op7418](https://github.com/op7418). Le bundle `skills/html-ppt/` conserve sa [LICENSE](skills/html-ppt/LICENSE) originale (MIT) et l’attribution Ă  [lewislulu](https://github.com/lewislulu).