By enjalot
Author interactive technical explanations inspired by Distill.pub — scaffold articles with D3 visualizations (single HTML) or Vite/React projects, with built-in critique and feedback monitoring.
Adversarial critique of a moonshine article (still or shine) against the skill's editorial, visual, and pedagogy standards. Use when the user wants a moonshine article reviewed, graded, or checked for slop before publishing. Invoked as `$critique` or `$critique <path>`.
Listen for moonshine authorship feedback and address comments on an interval. Invoke when the author asks you to watch for feedback from the article HUD, or when prompted to start the listener. Best run under /loop (e.g. `/loop $moonshine-listen`) so it keeps ticking while the session is idle.
../../SKILL.md
Create a self-contained interactive technical explanation (single HTML file with D3 v7, no build tools) inspired by Distill.pub. Use when the user wants to author, draft, or scaffold an explainer, interactive article, or visual essay about a technical concept. Invoked as `$shine` or `$shine <topic>`.
Scaffold an opinionated Vite + React + Velite project for a moonshine article — markdown prose with custom React figures, hot-reloading, single-article or series mode. Use when the user wants a structured multi-file interactive explanation rather than a single self-contained HTML file. Invoked as `$still` or `$still <topic>`.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Claude Code and Codex support for distilling interactive technical explanations from AI generated complexity.
Source-backed still examples: The Still: Moonshine's Harness (source) and A Map of What Children Learn (source).
AI tools generate complexity faster than people can consume it. Inspired by Distill.pub, moonshine helps apply distillation to the flood of technical output, turning complex ideas into explorable, visual, interactive articles.
Moonshine starts with story discovery — concept, audience, the one insight the reader should walk away with — before it writes any code, and renders the article on one of two substrates:
/moonshine:still) — a Vite + React + Velite project where prose lives in pristine markdown and figures are React components. This is the substrate with the authoring loop (below) and the default for anything that will keep being edited./moonshine:shine) — a single self-contained HTML file with vanilla JS and D3. No build tools; one file you can email or host anywhere.# Claude Code
/moonshine:still how gradient descent finds minima
# Codex
$still how gradient descent finds minima
While npm run dev runs, the rendered article is itself the editing surface, for both the author and the agent:
.md by source offset.DEFAULTS; "Save to markdown" writes the tweaked values into the directive's attributes.DiagramFigure (React Flow) get an author-owned layout: drag nodes, frame the viewport, save. Regenerating the diagram's code never clobbers the arrangement.moonshine-edit: prefix, so the agent can see exactly what the author changed and build around their words..feedback/ files that the agent picks up at turn boundaries (Stop hook) or via the idle listener (/moonshine:moonshine-listen).All of it is dev-only: vite build produces a plain, read-only static page with none of the editing machinery in the bundle.
Marketplace (Claude Code, and Codex via the same marketplace):
/plugin marketplace add enjalot/moonshine
/plugin install moonshine@moonshine-marketplace
Restart the session. Claude Code invokes with /moonshine:still and /moonshine:shine; Codex with $still and $shine (or just describe the article you want).
Manual install (degraded — read the caveat):
# Claude Code
git clone --depth 1 https://github.com/enjalot/moonshine.git /tmp/moonshine
cp -r /tmp/moonshine/plugins/moonshine ~/.claude/skills/moonshine
rm -rf /tmp/moonshine
# Codex
git clone --depth 1 https://github.com/enjalot/moonshine.git /tmp/moonshine
ln -s /tmp/moonshine/plugins/moonshine/skills/moonshine ~/.codex/skills/moonshine
ln -s /tmp/moonshine/plugins/moonshine/skills/shine ~/.codex/skills/shine
ln -s /tmp/moonshine/plugins/moonshine/skills/still ~/.codex/skills/still
ln -s /tmp/moonshine/plugins/moonshine/skills/moonshine-listen ~/.codex/skills/moonshine-listen
ln -s /tmp/moonshine/plugins/moonshine/skills/critique ~/.codex/skills/critique
# (use `cp -rL` instead of `ln -s` if you don't want to keep the clone around)
Caveat: a skills-directory install registers the skills but not the plugin's Stop hook, so feedback comments are only picked up when the listener skill runs — the automatic turn-boundary delivery needs the marketplace install. Everything else works.
Windows note: this repo uses git symlinks for shared skill assets. Run
git config --global core.symlinks truebefore cloning.
To develop against your checkout instead, see DEVELOPING.md (symlink install, dev harness, repo map).
/moonshine:still # start from scratch (structured project)
/moonshine:still fourier transforms # start with a topic
/moonshine:shine fourier transforms # single-file flavor
/moonshine:critique # adversarially review an article (still or shine)
/moonshine:moonshine-listen # feedback listener (best under /loop)
npx claudepluginhub enjalot/moonshine --plugin moonshineGenerate beautiful HTML pages for diagrams, diff reviews, plan reviews, slides, and data tables
Prompt-native interactive HTML docs — open-source community implementation of Jesse Pollak's bdocs idea. Generate self-contained HTML from a prompt, comment on text + artifacts, publish to your own Cloudflare Worker for free always-on sharing.
Structured documents for AI agents — 45 production-ready components with a coherent visual system. Decisions, architecture flows, collapsible references, metrics, and charts rendered as self-contained HTML.
Two skills that turn a document, repo summary, PR/diff, README, design note, or spec into an offline HTML explainer bundle. generate-explainer-yaml captures meaning (core.yaml) + presentation strategy (view.yaml); generate-explainer-html builds a light/dark bundle whose right pane switches between additive iframe views, with copyable prompts that ask a local-file-reading AI to add more views.
Turn any GitHub repo into a beautiful, art-directed explainer site that takes a stranger from "I've never seen this" to "oh, I get why this matters — and I'm ready to use it." One Claude Code skill (the brain) reads the repo, builds a real RVF vector knowledge base, conceives a bespoke visual metaphor, authors the comprehension arc, generates raster + SVG visuals, assembles a responsive page on a shared design system, grades it on real pixels against a dual quality gate (>=95 on mobile and desktop), deploys it to its own URL, and ships a downloadable AI knowledge pack so the reader's AI gets it too. Pure, independently-testable tools do the mechanics; one BuildContext carries the work.
Create beautiful, self-contained HTML visualizations from any content or idea. Use for slide decks, dashboards, infographics, flowcharts, timelines, cheat sheets, posters, and more.