{"id":49531184,"url":"https://github.com/sarveshsea/m-moire","last_synced_at":"2026-05-10T04:54:10.742Z","repository":{"id":346609762,"uuid":"1189684552","full_name":"sarveshsea/m-moire","owner":"sarveshsea","description":"AI-native design intelligence engine — Figma + specs + shadcn/ui codegen","archived":false,"fork":false,"pushed_at":"2026-04-24T22:12:28.000Z","size":3279,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-25T00:29:00.788Z","etag":null,"topics":["ai-agent","atomic-design","claude","cli","code-generation","design-system","design-tokens","figma","figma-plugin","mcp","mcp-server","shadcn-ui","tailwindcss","typescript","wcag"],"latest_commit_sha":null,"homepage":"https://memoire.cv","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sarveshsea.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY_FIXES.md","support":null,"governance":null,"roadmap":null,"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-03-23T15:09:14.000Z","updated_at":"2026-04-24T22:12:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sarveshsea/m-moire","commit_stats":null,"previous_names":["sarveshsea/ark","sarveshsea/noche"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sarveshsea/m-moire","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarveshsea%2Fm-moire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarveshsea%2Fm-moire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarveshsea%2Fm-moire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarveshsea%2Fm-moire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sarveshsea","download_url":"https://codeload.github.com/sarveshsea/m-moire/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarveshsea%2Fm-moire/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32595202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai-agent","atomic-design","claude","cli","code-generation","design-system","design-tokens","figma","figma-plugin","mcp","mcp-server","shadcn-ui","tailwindcss","typescript","wcag"],"created_at":"2026-05-02T08:00:34.623Z","updated_at":"2026-05-04T05:01:41.058Z","avatar_url":"https://github.com/sarveshsea.png","language":"TypeScript","funding_links":[],"categories":["Tools","🛠️ Developer Productivity \u0026 Utilities","🔧 Utilities"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/authentic-logo.svg\" alt=\"Memoire\" width=\"80\" height=\"80\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ememoire\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eShadcn-native Design CI for Tailwind apps.\u003c/strong\u003e\u003cbr/\u003e\n  Turn an existing app into a registry that works with \u003ccode\u003eshadcn\u003c/code\u003e, v0, AI editors, npm, and Mémoire.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@sarveshsea/memoire\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@sarveshsea/memoire?color=black\" alt=\"npm\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sarveshsea/m-moire/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/sarveshsea/m-moire/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sarveshsea/m-moire/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-black.svg\" alt=\"MIT\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 60-second quickstart\n\nMemoire starts from the app you already have. Install the npm package, audit the codebase, export a shadcn-native registry, then install the same components with `shadcn`, v0, or `memi`.\n\n```bash\nnpm i -g @sarveshsea/memoire\n\nmemi diagnose\nmemi tokens --from ./src --report\nmemi shadcn export --out public/r\nmemi publish --name @you/ds\n```\n\nPrimary CTA: [`@sarveshsea/memoire` on npm](https://www.npmjs.com/package/@sarveshsea/memoire).\n\nCompatibility targets: [shadcn registry](https://ui.shadcn.com/docs/registry/getting-started), [registry item schema](https://ui.shadcn.com/docs/registry/registry-item-json), [components.json](https://ui.shadcn.com/docs/components-json), and [v0 design systems](https://v0.app/docs/design-systems).\n\n### Install the output anywhere\n\n```bash\n# shadcn-compatible registry item\nnpx shadcn@latest add https://your-site.com/r/button.json\n\n# v0 / AI-editor context\nmemi shadcn serve --port 4014\n\n# Mémoire install path with aliases, npm packages, URLs, GitHub, or local paths\nmemi registry install Button --from @you/ds\nmemi add Button --from ./public/r\n```\n\n## No Figma required\n\nMost developer teams do not start in Figma. Memoire reads the codebase directly: Tailwind classes, shadcn usage, CSS variables, routes, markup, repeated literals, dark-mode coverage, token aliases, component targets, and registry shape.\n\n```bash\n# Diagnose an existing app from code\nmemi diagnose\n\n# Diagnose a running local route / public URL\nmemi diagnose http://localhost:3000\n\n# Extract the token system from the app and write audit reports\nmemi tokens --from ./src --output generated/tokens --report\n\n# Export shadcn-compatible registry.json and /r/*.json items\nmemi shadcn export --out public/r\n\n# Save extracted tokens into .memoire/design-system.json for publish/codegen flows\nmemi tokens --from ./src --save\n```\n\nReports are written to `.memoire/app-quality/diagnosis.{json,md}` and token extraction emits CSS, Tailwind, JSON, Style Dictionary, semantic coverage, scale-health notes, alias graph validation, duplicate-value groups, recommendations, and inferred token candidates. Shadcn export emits `registry.json` plus installable item JSON files under `/r`.\n\n## Registry workflow\n\nAfter diagnosis, the registry loop is simple: publish the improved design system, mirror shadcn-native registry files, install real components anywhere, then keep the registry updated as the source changes.\n\n### Existing app/CSS -\u003e tokens -\u003e shadcn registry\n\n```bash\nnpm i -g @sarveshsea/memoire\n\nmemi tokens --from ./src --report\nmemi shadcn doctor\nmemi shadcn export --out public/r\nmemi publish --name @you/ds\nmemi add Button --from @you/ds\n```\n\nPoint Memoire at `src/`, `app/globals.css`, a built CSS file, `http://localhost:3000`, or a public URL.\n\n### Published registry -\u003e shadcn/v0/AI editors\n\n```bash\n# Install through shadcn directly\nnpx shadcn@latest add https://cdn.example.com/r/button.json\n\n# Use the same registry as AI design-system context\nmemi shadcn serve --from @you/ds\n\n# Install through Memoire when you want alias/package/URL/GitHub resolution\nmemi registry install Button --from @you/ds\n```\n\n### Figma -\u003e npm -\u003e shadcn app\n\n```bash\nnpm i -g @sarveshsea/memoire\n\n# Publish your Figma file to npm\nnpx @sarveshsea/memoire publish --name @you/ds --figma https://figma.com/design/xxx --push\n\n# From any project, drop working code in\nnpx @sarveshsea/memoire add Button --from @you/ds\n# → src/components/memoire/Button.tsx (real working code, not a spec)\n```\n\n### tweakcn -\u003e npm -\u003e shadcn app\n\n```bash\nnpm i -g @sarveshsea/memoire\n\nmemi theme import ./tweakcn-export.css --name \"Acme Theme\"\nmemi theme publish \"Acme Theme\" --package @you/theme\nmemi add Button --from @you/theme\n```\n\nA registry bundles tokens (W3C DTCG JSON + Tailwind v4 `@theme` CSS), component specs, and **real generated code** for React / Vue / Svelte. Publishable to npm, GitHub, or any static host.\n\n## Featured registries\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/showcases/starter-saas.svg\" alt=\"Starter SaaS registry\" width=\"240\" /\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/showcases/docs-blog.svg\" alt=\"Docs Blog registry\" width=\"240\" /\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/showcases/dashboard.svg\" alt=\"Dashboard registry\" width=\"240\" /\u003e\n\u003c/p\u003e\n\n- `@memoire-examples/starter-saas` — neutral SaaS starter. Install with `memi add Button --from @memoire-examples/starter-saas`. Source: [`examples/presets/starter-saas`](./examples/presets/starter-saas)\n- `@memoire-examples/docs-blog` — editorial docs/blog kit. Install with `memi add Button --from @memoire-examples/docs-blog`. Source: [`examples/presets/docs-blog`](./examples/presets/docs-blog)\n- `@memoire-examples/dashboard` — high-contrast analytics dashboard. Install with `memi add Button --from @memoire-examples/dashboard`. Source: [`examples/presets/dashboard`](./examples/presets/dashboard)\n\nMore examples and the featured fallback catalog live in [`examples/`](./examples/README.md).\n\n### Designed in tweakcn? Publish with Memoire.\n\n[tweakcn](https://tweakcn.com) is the visual theme editor for shadcn/ui. Memoire now treats tweakcn as a full workflow, not just a publish flag:\n\n```bash\n# Import from a tweakcn CSS export or share URL\nmemi theme import ./tweakcn-export.css --name \"Acme Theme\"\nmemi theme import https://tweakcn.com/r/themes/xxx --name \"Acme Theme\"\n\n# Validate, preview, diff, and generate packaged variants\nmemi theme validate \"Acme Theme\"\nmemi theme preview \"Acme Theme\"\nmemi theme variants \"Acme Theme\"\n\n# Apply it into the current workspace or publish it to npm\nmemi theme apply \"Acme Theme\"\nmemi theme publish \"Acme Theme\" --package @you/theme\n```\n\nTheme import handles both Tailwind v3 (`:root { --primary: ... }`) and v4 (`@theme { --color-primary: ... }`) exports, including `:root` + `.dark` multi-mode themes. If you want the one-shot path, `memi publish --theme \u003cpath-or-url\u003e` still works.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/demo.gif\" alt=\"Memoire terminal publish and install flow\" width=\"720\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/sarveshsea/m-moire/main/assets/theme-workflow-demo.svg\" alt=\"Memoire tweakcn theme workflow\" width=\"720\" /\u003e\n\u003c/p\u003e\n\nDemo scripts for recording and reuse live in [`docs/DEMOS.md`](./docs/DEMOS.md).\nNo-Figma proof examples live in [`docs/PROOF.md`](./docs/PROOF.md).\n\n---\n\n## Why teams keep Memoire in the stack\n\nClaude Design, Figma Make, Lovable, Bolt, Replit Agent, and v0 are useful for fast first passes. Memoire is for the part after that first pass, when the output has to survive beyond a single prompt or canvas session.\n\n- App builders: strong for creating the first version. Memoire diagnoses the design debt that shows up once the app is real.\n- Claude Design and Figma Make: strong for visual exploration. Memoire keeps the reusable system portable across code, registries, and AI tools.\n- v0: strong for generating screens and using registries. Memoire helps infer, improve, and publish the registry from the app you already have.\n\nIf your team needs better visual quality, versioned tokens, installable components, tweakcn theme packaging, and cross-tool design system context, that is the Memoire wedge.\n\n---\n\n## What you get\n\n| Input | Output |\n|-------|--------|\n| Existing shadcn/Tailwind app | Design debt diagnosis with scores, issues, reports, and visual direction options |\n| Existing CSS/code/URL | Extracted design tokens with modes, aliases, semantic coverage, scale health, and Style Dictionary export |\n| Figma file | npm-ready design system registry with tokens, specs, and real components |\n| tweakcn theme | A first-class workflow: import, preview, diff, validate, apply, variants, publish |\n| Any public URL | `DESIGN.md` plus an optional starter registry scaffold |\n| JSON specs | React + TypeScript + Tailwind components (shadcn/ui) |\n| Generated registries | Installable components for React / Vue / Svelte |\n\n```bash\nnpm i -g @sarveshsea/memoire\n\nmemi diagnose                         # audit the current app from code\nmemi diagnose http://localhost:3000   # audit a running route or public URL\nmemi design-doc https://linear.app     # extract any site's design system\nmemi tokens --from ./src --save         # extract app tokens into the registry\nmemi tokens --from ./src --report       # write token-extraction.report.{md,json}\nmemi go                                 # figma -\u003e tokens -\u003e specs -\u003e components -\u003e preview\nmemi go --rest                          # same thing, no figma desktop needed\nmemi go --penpot                        # same thing, from penpot\nmemi tokens                             # export as CSS / Tailwind / JSON / Style Dictionary\n```\n\n---\n\n## Install without npm (work laptops, locked-down environments)\n\nNo Node, no npm, no admin rights.\n\n```bash\n# macOS / Linux — auto-patches your shell profile, verifies SHA256\ncurl -fsSL https://memoire.cv/install.sh | sh\n\n# Windows (PowerShell) — auto-adds to user PATH\nirm https://memoire.cv/install.ps1 | iex\n\n# Homebrew (macOS / Linux)\nbrew install sarveshsea/memoire/memoire\n\n# Docker (air-gapped envs where only ghcr.io is reachable)\ndocker run --rm -it -v \"$PWD:/work\" -w /work ghcr.io/sarveshsea/memoire --help\n\n# Self-update once installed\nmemi upgrade\n```\n\n**Manual download** if `curl`, `brew`, and `docker` are all blocked — grab the archive from [GitHub Releases](https://github.com/sarveshsea/m-moire/releases/latest):\n\n| Platform                | Archive                          |\n|-------------------------|----------------------------------|\n| macOS (Apple Silicon)   | `memi-darwin-arm64.tar.gz`       |\n| macOS (Intel)           | `memi-darwin-x64.tar.gz`         |\n| Linux (x86_64)          | `memi-linux-x64.tar.gz`          |\n| Windows (x64)           | `memi-win-x64.zip`               |\n\nVerify with `SHA256SUMS.txt` (attached to every release). Extract, add `memi` to PATH, run `memi connect`. The `skills/`, `notes/`, `plugin/`, `preview/` directories must stay next to the binary — Mémoire loads them at runtime.\n\n---\n\n## Advanced: Use with Claude Code / Cursor\n\nMemoire also runs as an MCP server, so your AI assistant can work directly with your design system after the registry workflow is in place.\n\n```bash\nmemi mcp config --install              # writes .mcp.json, done\n```\n\nOr add manually to `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"memoire\": {\n      \"command\": \"memi\",\n      \"args\": [\"mcp\", \"start\"]\n    }\n  }\n}\n```\n\n**Tools include:** `pull_design_system`, `generate_code`, `create_spec`, `get_tokens`, `compose`, `design_doc`, `run_audit`, `capture_screenshot`, `analyze_design`, and more in the [docs](./docs/README.md).\n\n---\n\n## Full command reference\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCore workflow\u003c/strong\u003e\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `memi setup` | Full onboarding: token, file, plugin, bridge, MCP config, test pull |\n| `memi init` | Initialize workspace with starter specs |\n| `memi diagnose [target]` | Diagnose design debt in an existing web app from code or URL |\n| `memi connect` | Start Figma bridge (auto-discovers plugin on ports 9223-9232) |\n| `memi pull` | Extract tokens, components, styles from Figma |\n| `memi pull --rest` | Pull via REST API -- no plugin, no Figma Desktop |\n| `memi pull --penpot` | Pull from Penpot (needs `PENPOT_TOKEN` + `PENPOT_FILE_ID`) |\n| `memi spec \u003ctype\u003e \u003cname\u003e` | Create a component, page, or dataviz spec |\n| `memi generate [name]` | Generate shadcn/ui code + Storybook stories from specs |\n| `memi generate --no-stories` | Generate without Storybook stories |\n| `memi preview` | Start preview gallery + shadcn registry server |\n| `memi theme \u003csubcommand\u003e` | tweakcn workflow: import, preview, validate, diff, apply, variants, publish |\n| `memi go` | Full pipeline in one command |\n| `memi export` | Export generated code into your project |\n| `memi tokens` | Export registry tokens as CSS / Tailwind / JSON / Style Dictionary (W3C DTCG) |\n| `memi tokens --from \u003cfile|dir|url\u003e` | Extract tokens from CSS/code/URL with modes, alias graph checks, semantic coverage, inferred literals, and optional `--report` |\n| `memi validate` | Validate all specs against schemas |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDesign extraction\u003c/strong\u003e\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `memi design-doc \u003curl\u003e` | Extract design system from any URL into DESIGN.md |\n| `memi design-doc \u003curl\u003e --spec` | Also write a DesignSpec JSON for codegen |\n| `memi extract \u003curl\u003e` | Alias for design-doc |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAdvanced: sync, agents, research\u003c/strong\u003e\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `memi sync` | Full sync: Figma + specs + code |\n| `memi sync --live` | Watch and sync continuously |\n| `memi compose \"\u003cintent\u003e\"` | Agent orchestrator: classify, plan, execute |\n| `memi agent spawn \u003crole\u003e` | Spawn a persistent agent worker |\n| `memi research from-file \u003cpath\u003e` | Process Excel/CSV into research |\n| `memi research synthesize` | Synthesize themes and personas |\n| `memi daemon start` | Start daemon with reactive pipeline |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDiagnostics\u003c/strong\u003e\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `memi status` | Project status overview |\n| `memi doctor` | Health check: project, plugin, bridge |\n| `memi dashboard` | Launch monitoring dashboard |\n| `memi audit` | Design system audit (WCAG, unused specs) |\n\nAll commands support `--json` for structured output.\n\n\u003c/details\u003e\n\n---\n\n## Spec-first workflow\n\nEvery component starts as a JSON spec before code is generated:\n\n```json\n{\n  \"name\": \"MetricCard\",\n  \"type\": \"component\",\n  \"level\": \"molecule\",\n  \"shadcnBase\": [\"Card\", \"Badge\"],\n  \"props\": { \"title\": \"string\", \"value\": \"string\", \"trend\": \"string?\" },\n  \"variants\": [\"default\", \"compact\"]\n}\n```\n\nSpecs are validated with Zod schemas. Components follow Atomic Design (atom, molecule, organism, template, page).\n\n---\n\n## Architecture\n\n```\nsrc/\n  engine/     Core orchestrator, registry, sync, pipeline\n  figma/      WebSocket bridge + REST client + Penpot client\n  agents/     Intent classifier, plan builder, task queue\n  mcp/        MCP server (tools, resources, stdio)\n  codegen/    shadcn/ui mapper, Storybook, dataviz, pages\n  research/   Research engine (Excel, stickies, web)\n  specs/      Spec types, Zod schemas, 62-component catalog\n  preview/    Preview gallery, API server, shadcn registry\n  notes/      Downloadable skill packs\n  commands/   CLI command surface\n  plugin/     Figma plugin (Widget V2)\n```\n\n---\n\n## Links\n\n[Quickstart](./docs/README.md) -- [Examples](./examples/README.md) -- [Launch Pack](./docs/LAUNCH.md) -- [Changelog](CHANGELOG.md)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarveshsea%2Fm-moire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarveshsea%2Fm-moire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarveshsea%2Fm-moire/lists"}