{"adoption": {"forks": 74, "observed_at": "2026-08-28T04:03:47.474362+00:00", "stars": 1153}, "canonical_url": "https://ross.abutalabs.com/products/pi-generative-ui", "card": {"archived": false, "artifact_type": "plugin", "description": "Claude.ai's generative UI — reverse-engineered, rebuilt for pi. Interactive HTML/SVG widgets in native macOS windows.", "domain": ["developer-tools", "artificial-intelligence", "data-visualization", "frontend"], "enriched": true, "function": ["ui-components", "data-visualization", "templating", "llm-inference", "agent-framework"], "health_score": 90, "homepage": null, "language": "TypeScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["Michaelliv/pi-generative-ui"], "name": "Michaelliv/pi-generative-ui", "platform": ["windows", "cross-platform"], "pushed_at": "2026-06-03T21:47:53+00:00", "repo": "Michaelliv/pi-generative-ui", "stars": 1153, "tags": ["generative-ui", "pi-extension", "llm-tools", "html-widgets", "morphdom", "glimpse", "claude-ai", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["show interactive visual explanations of concepts like compound interest", "visualize architecture diagrams as labeled SVG from an LLM", "create live dashboards with charts and metric cards from data", "render canvas animations like particle systems generated by an LLM", "stream HTML widgets into native windows as the LLM generates tokens", "export LLM-generated SVG diagrams to clipboard or file"], "what_it_is": "A pi extension that replicates Claude.ai's generative UI system, letting an LLM stream interactive HTML/SVG widgets (sliders, charts, animations) into native windows via Glimpse. It adds show_widget and visualize_read_me tools so the LLM can render live HTML applications as tokens arrive, with morphdom-based smooth updates and SVG export.", "when_to_avoid": ["you don't use pi or Glimpse and can't install its native dependencies", "you need widgets to send user input back to the agent (widgets are display-only)", "you require a permissively licensed dependency (the repo has no license)"], "when_to_choose": ["you use the pi coding agent and want Claude.ai-style generative UI widgets", "you want LLM output rendered as interactive HTML in a native window instead of a code block", "you need streamed, live-updating visualizations with Chart.js, D3, or Three.js"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pi-generative-ui", "repo": "Michaelliv/pi-generative-ui", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:47.474362+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:25.734613+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ce0d1f0c6ff6556ccb513d0047e90c6dddb9d88f1f901f48fe2be5f516022de", "fetched_at": "2026-08-28T04:03:47.474362+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Michaelliv/pi-generative-ui"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 12, "rhythm": 75}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["young", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 174, "days_push": 91, "days_rel": 91, "gap_med": 80, "n_releases_24m": 2}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}