Ecosystem

Ecosystem

Every package in the monorepo, its role, and its license — plus the satellite repos around it.

Kirigami is an npm workspaces monorepo. Every package below is published under the @kirigami scope from a single repo, and released together in dependency order — the version numbers below are fetched live from npm at build time, not typed by hand.

Package Role Version License
@kirigami/cli The kiri command: build / export / watch / serve / run / mcp / create / install / cache / phpinfo. v0.1.14 GPL-3.0-or-later
@kirigami/kirigami The engine: the Project API behind the CLI, the VS Code extension and the MCP server. v3.2.7 GPL-3.0-or-later
@kirigami/mcp Model Context Protocol server, for AI assistants. v0.1.12 GPL-3.0-or-later
@kirigami/php-prepros The PHP → HTML compiler and PHP class library. v3.2.4 GPL-3.0-or-later
@kirigami/php-wasm PHP 8.5 compiled to WebAssembly for Node (JSPI, no browser support). v8.5.11-3 GPL-2.0-or-later
@kirigami/struct-walker Recursive YAML/JSON walker: file refs, data URIs. v1.0.6 GPL-3.0-or-later
@kirigami/sdk Plugin hook registry, and the on-disk Cache. v0.3.1 GPL-3.0-or-later
@kirigami/canva Shared Sass/JS design system, this site included. v2.7.0 GPL-3.0-or-later
@kirigami/plugin-highlight Build-time syntax highlighting, 0 runtime JS. v0.3.0 GPL-3.0-or-later
@kirigami/plugin-extlink External link preview cards, SCRAPER-backed, cached to disk. v0.2.1 GPL-3.0-or-later
@kirigami/plugin-embed YouTube / Vimeo oEmbed video cards, resolved client-side. v0.2.2 GPL-3.0-or-later
@kirigami/plugin-player Audio players and playlists, waveform baked at build time. v0.1.1 GPL-3.0-or-later
@kirigami/plugin-clip Local video players and silent loops, poster picked at build time. v0.1.1 GPL-3.0-or-later
@kirigami/plugin-educ Course components: checklists, callout bubbles, link cards, colour pills, quotes, tool cards, CodePen embeds. v0.3.0 GPL-3.0-or-later
@kirigami/audiowaveform-wasm BBC's audiowaveform compiled to WebAssembly: waveform peaks, SVG, ID3 tags. v1.2.0 GPL-3.0-or-later
@kirigami/bestframe Picks the best still frame of a video with a tiny embedded aesthetic model, in WebAssembly. v0.2.0 LGPL-2.1-or-later

Release order

Every internal @kirigami/* dependency is pinned to an exact version — bumping canva, say, means also bumping the dep range of every package that depends on it (kirigami, plugin-highlight, plugin-embed, …), even if nothing else about them changed. The release script topologically sorts the graph and walks it in that order, skipping a package outright if that exact version is already published:


                        sdk → canva → struct-walker → php-prepros → kirigami
                            → plugin-highlight → plugin-extlink → plugin-embed
                        audiowaveform-wasm → plugin-player
                        bestframe → plugin-clip
                        sdk → plugin-educ
                    

For each one still needing a release: run its build script, npm pack it into packs/, npm publish, then move to the next. Once everything is out, it purges the jsDelivr cache for kirigami.schema.json and every plugin's kirigami.optionsSchema — both are served from GitHub @main, and an editor would otherwise keep the stale copy for up to 12h after a schema change.


Satellite repos

Outside the monorepo, all under the same php-kirigami GitHub org:

kiribuild

The reusable GitHub Action — Node 24 + the kiri CLI + kiri export. See the docs for how it fits into a deploy workflow.

template-demo

A full feature tour template. npx kiri create demo.

template-blog

A blog with one Markdown page per post. npx kiri create blog.

template-kiridoc

Course documentation, with the plugin-educ components. npx kiri create kiridoc.