lyse

mcp
Security Audit
Fail
Health Pass
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 28 GitHub stars
Code Fail
  • child_process — Shell command execution capability in .claude/skills/brainstorming/scripts/server.cjs
  • exec() — Shell command execution in .claude/skills/brainstorming/scripts/server.cjs
  • fs.rmSync — Destructive file system operation in .claude/skills/brainstorming/scripts/server.cjs
  • process.env — Environment variable access in .claude/skills/brainstorming/scripts/server.cjs
  • fs module — File system access in .claude/skills/brainstorming/scripts/server.cjs
  • rm -rf — Recursive force deletion command in .claude/skills/brainstorming/scripts/stop-server.sh
  • child_process — Shell command execution capability in .claude/skills/writing-skills/render-graphs.js
  • execSync — Synchronous shell command execution in .claude/skills/writing-skills/render-graphs.js
  • exec() — Shell command execution in .claude/skills/writing-skills/render-graphs.js
  • fs module — File system access in .claude/skills/writing-skills/render-graphs.js
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Open-source design-system drift scanner — audit tokens, components, a11y & docs; score adoption; hand fixes to your coding agent. Local-first & deterministic.

README.md

Lyse

Design systems drift. Lyse measures it.

The local, deterministic health score for your design system — audit, explain, and hand the fixes to your coding agent, locally or in CI.

ci
npm
downloads
license

Quickstart

AI coding agents ship UI fast — and hardcode #3b82f6 where color.brand.primary exists, reinvent <Button>, and skip stories. Lyse audits the drift they (and humans) introduce, scores it 0–100, and hands the fixes back to the same agent.

npx -y @lyse-labs/lyse@latest

That's it — no config, no prompts, your Health Score in seconds.

Optional: calibrate

lyse init detects your framework, writes .lyse.yaml, and optionally wires the MCP server for your AI agent.

npx -y @lyse-labs/lyse@latest init

Commands

lyse audit        # rerun the audit (text, JSON, or SARIF)
lyse handoff      # audit, then hand the findings to your coding agent to fix (Claude Code / Cursor / Codex)
lyse init --scaffold        # generate missing AI-readiness files (llms.txt, AGENTS.md)
lyse init --migrate-tokens  # convert legacy {value,type} token JSON to DTCG ({$value,$type})
lyse explain X    # rationale + examples for a rule
lyse mcp setup    # wire MCP into Cursor / Claude Code / Codex
lyse add ci-gate  # install the score-regression CI gate (.github/workflows/lyse.yml)
lyse share        # copy a Markdown summary to your clipboard

Trust boundary. lyse handoff launches your coding agent with its permission prompts bypassed so it can apply fixes unattended. Only run it on repositories you trust.

What it audits

A Health Score (0–100) across 6 axes — tokens, a11y, components, stories, ai-surface, ai-governance — from deterministic static rules. Each axis is an opportunity-weighted clean-adoption ratio (scoring-v3); axes need 30+ opportunities to count. CMMI-style maturity tier (Foundational → Autonomous) mapped from the score. No LLM, no network, fully local by default. The previous severity-weighted formula stays reachable for one minor release via --score-model v2 — scores are not comparable across the two. Full formula and per-rule docs in docs/.

The optional render layer (lyse audit --render) runs additional checks against a pre-built Storybook (storybook-static/ or a URL): tokens/rendered-token-fidelity (CSS custom property drift) and a11y/runtime-axe (axe-core a11y violations). Both are experimental and do not affect the Health Score.

lyse explain --score also reports an AI-Governance Maturity Level (L0–L5, by presence of AI affordances — marker components, AI tokens, interaction patterns, governance docs). Deterministic by default; an optional LLM tier reads semantic affordances for the harder cases.

Privacy

lyse audit is static-only by default: nothing leaves your machine. The optional LLM precision filter is opt-in (--llm, LYSE_LLM=1, or explicit llm.provider config) and BYOK — having the claude CLI installed does not enable it silently, and the default audit never prompts for it. Telemetry is opt-in only (a one-time prompt shown after your first report, default declines). See PRIVACY.md.

More


© 2026 Lyse Labs.

Reviews (0)

No results found