open-design-v0.12.0
nexu-io/open-designopen-design-v0.12.0Jun 26, 2026by github-actions[bot]
AI Summary
0.12.0 is the 'Brand-backed Design System' release, turning brands into reusable design systems. It features the OD Library, browser clipper, and significantly improved error reporting.
Key Highlights
- Turn any brand into a reusable design system
- OD Library asset registry for captured assets
- 150 seeded brand design systems
- Failures now name their cause instead of generic errors
- Sign-in survives a bad browser handoff
New Features
- Brand URL/DESIGN.md/.fig import
- Browser clipper for capturing pages
- OD Library asset registry
- Exponential backoff with jitter retry
- Named failure causes
- Run-result package endpoint
- Boot-stage progress splash screen
- API-auth-disable flag for Docker
Full Release Notes
### š Codename: *Brand-backed Design System* šØ **`103 PRs` Ā· `30 contributors` Ā· `6 days`** ā codename **"Brand-backed Design System."** For the past two months Open Design started from a blank page and designed *for* you. 0.12.0 flips it: **the brand you already own becomes a reusable design system.** Point it at a live site, drop in a Figma file, or clip a page right in your browser, and it lifts the real brand ā colors, type, voice ā into a **design system you can build from**. That's the whole idea behind this release: **a brand isn't a separate thing, it *is* a design system** ā capture it once and it runs through one unbroken loop, **capture ā design system ā build ā export**, yours to reuse on every project after. Under the hood it's also the steadiest release yet: failures that used to vanish into one grey "execution_failed" bucket now **say what actually went wrong**, runs that stumble **back off and retry instead of dying**, and your first-run sign-in **survives a browser that flakes out**. šļø ## š„ Highlights - šØ **Bring your own design system ā and reuse it forever.** The marquee of 0.12.0. Until now the only way to get a brand-accurate design system was to hand-author a `DESIGN.md` ā a wall for anyone not already steeped in the spec. Now **every ingest path feeds one pipeline**: a **brand URL**, a dropped `DESIGN.md`, an **offline `.fig` file** (decoded locally, no Figma account), or a page captured with the new **browser clipper** all extract into a reusable `user:` design system ā because in 0.12.0 a brand *is* a design system. From there it's one loop, end to end: preview it as a kit + templates, **build straight from it** (onboarding now finishes on a build step), and **one-click export** the result to PDF, PPTX, editable PPTX, or image. Captured logos, screenshots, and palettes finally have a home in the new **OD Library** (a content-addressed asset registry), and a fresh install ships with **150 ready-made brand design systems** (Airbnb, Stripe, Vercel, Tesla, Supabase, Uber, ā¦) so the picker is useful on day one. Full CLI parity too: `od brand`, `od library`, `od figma import`, `od export`. (#4691, #4260, #4457, #4420, #4346) Thanks @pftom, @lefarcen, @dredozubov. - 𩺠**Failures that finally tell you what broke.** The dreaded catch-all "execution_failed" is gone ā runs now **name their cause** (startup crash, resume expiry, agent stuck in a tool loop, stale provider config) so you know whether to retry or report. And when a run *can* recover, it now **backs off with jitter and retries on its own** instead of falling over. (#4502, #4608, #4478, #4501, #3375, #4588, #4615) Thanks @lefarcen, @PerishCode, @nettee, @portseif, @maoxin1234. - š¤ **Sign-in that survives a bad browser handoff.** AMR / cloud sign-in used to hang for five minutes in silence if the browser handoff flaked ā now it **prints the login URL and code right there** so you can finish by hand, and the whole onboarding Connect step was **redesigned into a clean cloud sign-in landing**. (#4402, #4513, #4419) Thanks @lefarcen, @chaoxiaoche. - š§© **Your coding agent, fewer rough edges.** The agents you already use got steadier: **OpenCode** binary detection on npm, **Windows** Node discovery via `fnm`, `pnpm` resolution through Corepack, a centralized reasoning-provider policy, **Codex** subscription image-gen preferred (and single-image runs stay single-file), and the Warp "open in" launcher is hidden where it doesn't belong. (#4535, #4488, #4476, #4477, #4551, #4544) Thanks @YOMXXX, @leorivastech, @dredozubov, @nettee, @cbeaulieu-gt. - š **Sharper PDFs and deck handling.** PDF export now **waits for the page to actually be print-ready** before firing, printed filenames are **Teams-safe**, deck detection picks up slide-prefixed classes, and HTML-PPT screenshots no longer depend on a system Chrome being installed. (#4458, #4329, #4278, #4341, #4582) Thanks @YOMXXX, @nettee, @cbeaulieu-gt, @NeOMakinG, @PerishCode. - š„ļø **A desktop that shows its work.** The splash screen now **shows real boot-stage progress** instead of a frozen logo, wears the capitalised **"Open Design"** wordmark, and payload updates **install in-app** the way you'd expect. (#4223, #4721, #4471, #4524) Thanks @swpark3179, @lefarcen, @TheAngryPit, @PerishCode. - š **More polish where Open Design lives on the web.** A refreshed home page with **mobile-responsive fixes**, a new **"What is vibe design"** blog post in **18 locales** plus a wider vibe-design cluster, a site-wide **SEO metadata** pass, and the official account unified to **@OpenDesignHQ**. (#4497, #4416, #4484, #4581, #4568, #4480) Thanks @lefarcen, @wangchenglong0001, @xne998808-ai. - š¢ **Easier to self-host.** The runtime image ships **bash and git**, Docker defaults are **aligned with the GHCR releases**, there's an **opt-in API-auth-disable** flag for trusted networks, and a new **Sealos** one-click deployment option. (#4344, #4327, #4541, #4472) Thanks @MattchewMoar, @mrcfps, @yangchuansheng. > š„ **Download:** Tag `open-design-v0.12.0`. All assets are live on GitHub Releases and `releases.open-design.ai`. > > | Platform | Architecture | Asset | > |---|---|---| > | macOS | Apple Silicon (arm64) | [open-design-0.12.0-mac-arm64.dmg](https://github.com/nexu-io/open-design/releases/download/open-design-v0.12.0/open-design-0.12.0-mac-arm64.dmg) | > | macOS | Intel (x64) | [open-design-0.12.0-mac-x64.dmg](https://github.com/nexu-io/open-design/releases/download/open-design-v0.12.0/open-design-0.12.0-mac-x64.dmg) | > | Windows | x64 (installer) | [open-design-0.12.0-win-x64-setup.exe](https://github.com/nexu-io/open-design/releases/download/open-design-v0.12.0/open-design-0.12.0-win-x64-setup.exe) | > | Windows | x64 (**portable**) | [open-design-0.12.0-win-x64-portable.zip](https://github.com/nexu-io/open-design/releases/download/open-design-v0.12.0/open-design-0.12.0-win-x64-portable.zip) | ## ⨠Added ### šØ Brands, design systems & studio - **Turn any brand into a reusable design system** ā brand-URL / `DESIGN.md` / offline `.fig` / browser-clipper ingest, the OD Library asset registry, one-click PDF/PPTX/image export, 150 seeded brand design systems, and `od brand` / `od library` / `od figma` / `od export` CLI parity. (#4691) Thanks @pftom. - **Agent-driven brand extraction with a two-loop memory overhaul** for sharper, brand-faithful results. (#4260) Thanks @pftom. - **DESIGN.md systems hub** with a design-token spec sheet and scenario mocks on each design-system page. (#4420) Thanks @xne998808-ai. - **220px minimum width for workspace hover previews** so thumbnails stay legible. (#4021) Thanks @Kushaal-k. - **Projects refresh control** to re-scan your projects on demand. (#3993) Thanks @TheAngryPit. ### š§ Agents, runtimes & reliability - **Exponential backoff with jitter before a same-run retry**, so a recoverable stumble waits and retries instead of dying. (#4588) Thanks @maoxin1234. - **Guard against agents looping on failing tool calls.** (#3375) Thanks @portseif. - **Named failure causes split out of the opaque `execution_failed` bucket**, with close-reason sub-details. (#4502) Thanks @lefarcen. - **Spawn-to-first-token split into auditable subsegments** for latency diagnosis. (#4600) Thanks @maoxin1234. - **Run-result package endpoint** for retrieving a finished run's bundle. (#4265) Thanks @dredozubov. - **Centralized reasoning-provider policy enforcement.** (#4476) Thanks @dredozubov. ### š Analytics & telemetry - **`runtime_type` across the full event chain plus BYOK run events.** (#4510) Thanks @lefarcen. - **First-call cache-hit + `is_followup_turn` telemetry** to baseline session reuse. (#4725) Thanks @lefarcen. ### šŖ Onboarding, landing & blog - **Onboarding Connect step redesigned as a cloud sign-in landing.** (#4513) Thanks @lefarcen. - **Home-refresh redesign** merged across the landing page. (#4497) Thanks @lefarcen. - **"What is vibe design" blog post** ā 18 locales, author byline, download CTA. (#4484) Thanks @xne998808-ai. - **Vibe-design blog cluster** plus refreshed Claude Design alternatives. (#4581) Thanks @xne998808-ai. ### š„ļø Desktop & updater - **Boot-stage progress on the desktop splash screen.** (#4223) Thanks @swpark3179. - **Capitalised "Open Design" wordmark** on the startup splash. (#4721) Thanks @lefarcen. ### āļø Deployment & docs - **Opt-in API-auth-disable flag** for trusted-network Docker deployments. (#4541) Thanks @mrcfps. - **`bash` and `git` in the runtime image.** (#4344) Thanks @MattchewMoar. - **Sealos deployment option.** (#4472) Thanks @yangchuansheng. - **Docs:** explain the Windows SmartScreen "unknown publisher" installer warning (#4554) and fix the 404 agent-install command to `od mcp install <agent>` (#4649). Thanks @Nagendhra-web, @xne998808-ai. ## š Changed - **Unified task-failure error card** across every failure state, so a failed run reads the same everywhere. (#4656) Thanks @michaeltaxman911-hue. - **Leaner user chat messages** ā the redundant "You" header and timestamp are gone. (#4515) Thanks @maxmilian. - **Prefer Codex subscription image generation** when available. (#4477) Thanks @dredozubov. - **Official X account unified to @OpenDesignHQ**, with landing links updated to match. (#4480, #4611) Thanks @xne998808-ai, @PerishCode. - **Tighter on-page SEO metadata** across the landing pages. (#4568) Thanks @xne998808-ai. ## š Fixed ### š§ Daemon, agents & runs - **Reclassify named causes out of opaque `execution_failed`** and **classify high-confidence run failures** + **completed Claude startup output before an exit-1**, so failures are traceable. (#4608, #4478, #4501) Thanks @lefarcen, @PerishCode, @nettee. - **Stop re-opening the run event log after finish** (a file-descriptor leak that caused `spawn EBADF`). (#4615) Thanks @lefarcen. - **Detect Claude resume failure from the stream-json result event.** (#4275) Thanks @AriaZhao-coder. - **Close canceled Claude stdin earlier.** (#4091) Thanks @mrcfps. - **Normalize stale Codex `service_tier=priority`** and **remove any invalid Codex `service_tier`** before launch. (#4276, #4606) Thanks @cbeaulieu-gt, @lefarcen. - **Make same-turn HTML artifact recovery agent-agnostic.** (#4308) Thanks @maxmilian. - **Platform-aware argv prompt budget** so POSIX isn't capped at Windows' limit. (#4473) Thanks @YOMXXX. - **Keep single-image Codex runs to one final file.** (#4551) Thanks @nettee. - **Report Deliver-to-editor launch failures** instead of swallowing them. (#3952) Thanks @maxmilian. - **Surface crystallize proposal refresh failures.** (#4323) Thanks @PerishCode. - **Refresh local CLI auth state after an API-key switch.** (#4453) Thanks @alchemistklk. - **Gate `cursor-agent --trust` behind a `--help` capability probe.** (#4505) Thanks @leorivastech. - **Hide the Warp open-in launcher on win32/linux.** (#4544) Thanks @cbeaulieu-gt. - **Avoid system Chrome for html-ppt screenshots.** (#4582) Thanks @PerishCode. ### š¤ AMR & onboarding - **Surface the vela login URL/code** so sign-in survives a failed browser handoff. (#4402) Thanks @lefarcen. - **Fix AMR agent-card label wrapping.** (#4419) Thanks @chaoxiaoche. ### šØ Editing, preview & capture - **Keep the manual-edit inline text session alive until explicit finish.** (#3646) Thanks @AriaZhao-coder. - **Gate the PDF print-ready handshake on a usable content size** and **wait for print-ready content before browser PDF export.** (#4458, #4329) Thanks @YOMXXX, @nettee. - **Sanitize the preview document title** so printed PDF filenames are Teams-safe. (#4278) Thanks @cbeaulieu-gt. - **Detect decks with slide-prefixed classes.** (#4341) Thanks @NeOMakinG. - **Fix asset-cache origin-null preview.** (#4487) Thanks @daltonnyx. - **A lone quote character is no longer parsed as an empty string** in frontmatter. (#4182) Thanks @Nagendhra-web. ### š Web UI & home - **Improve dark-mode contrast** for the in-tab present exit button. (#4590) Thanks @maxmilian. - **Hide the jump-to-latest button** while the conversation-history dropdown is open. (#4371) Thanks @portseif. - **Balance finished chat transcripts.** (#4328) Thanks @PerishCode. - **Show a sending state on home composer submit.** (#4111) Thanks @maxmilian. - **Portal the New Project design-system dropdown** so it isn't clipped. (#4346) Thanks @swpark3179. ### š„ļø Desktop & updater - **Treat payload updates as in-app installs.** (#4471) Thanks @TheAngryPit. - **Clean deprecated launcher payloads on updater startup.** (#4524) Thanks @PerishCode. ### š Analytics & diagnostics - **Stamp the frame platform and drop fetch-failure noise** in the exception transport. (#4661) Thanks @lefarcen. - **Patch exception-tracking `app_version`** after `/api/version` resolves. (#4508) Thanks @lefarcen. - **Count run artifacts agent-agnostically and emit ACP tool events.** (#4520) Thanks @lefarcen. - **Enable GeoIP on the daemon PostHog client** so events carry user country. (#4521) Thanks @lefarcen. - **Fix the Langfuse PostHog report closure.** (#4315) Thanks @yinjialu. ### š ļø Platform, CLI & infra - **Discover Windows `fnm`-managed Node** in the toolchain bin list. (#4535) Thanks @YOMXXX. - **Resolve `pnpm` via Corepack** when `npm_execpath` is absent. (#4488) Thanks @leorivastech. - **Raise pi detection timeouts and harden Windows npm-prefix resolution.** (#3693) Thanks @alucero270. - **Align Docker defaults with the GHCR releases.** (#4327) Thanks @mrcfps. - **Unify the Discord invite links.** (#4452) Thanks @kokisanai. ## š Thanks to everyone who shipped 0.12.0 @lefarcen Ā· @pftom Ā· @PerishCode Ā· @xne998808-ai Ā· @mrcfps Ā· @YOMXXX Ā· @maxmilian Ā· @dredozubov Ā· @nettee Ā· @cbeaulieu-gt Ā· @AriaZhao-coder Ā· @maoxin1234 Ā· @swpark3179 Ā· @portseif Ā· @leorivastech Ā· @TheAngryPit Ā· @Nagendhra-web Ā· @chaoxiaoche Ā· @NeOMakinG Ā· @michaeltaxman911-hue Ā· @AmyShang-alt Ā· @MattchewMoar Ā· @yangchuansheng Ā· @daltonnyx Ā· @alchemistklk Ā· @kokisanai Ā· @Kushaal-k Ā· @wangchenglong0001 Ā· @yinjialu Ā· @alucero270 **Full changelog:** https://github.com/nexu-io/open-design/compare/open-design-v0.11.0...open-design-v0.12.0