Skip to content

Commit 3ed1a6a

Browse files
authored
Merge pull request #48 from missing-elements/feat/build-archive
The build archive for chats whose code can download nothing, and privacy first
2 parents f1071b4 + d0acdd5 commit 3ed1a6a

6 files changed

Lines changed: 146 additions & 32 deletions

File tree

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ The site of the [missing-elements](https://github.com/missing-elements) web comp
1111
| `/h5p/build/` | The build page, for people: what it makes, a sample that plays, and the build of a chat's source into a `.h5p`, in the visitor's browser | [src/h5p/build/](src/h5p/build/) |
1212
| `/h5p/create-with-ai/` | The how-to, for people: installing the skill, asking a chat, the prompts to start from, the types, and what to do when something goes wrong | [src/h5p/create-with-ai/](src/h5p/create-with-ai/) |
1313
| `/h5p/skill/` | The skill as zips to install: `h5p-author.zip` for Claude and Grok, `h5p-author-chatgpt.zip` for ChatGPT's Plugins; and its files, with a page that lists each at its full address, which no page links to | [src/h5p/skill/](src/h5p/skill/), copied by [eleventy.config.js](eleventy.config.js); the zips written by [vite.config.ts](vite.config.ts) |
14-
| `/h5p/bundles/` | The skill's build tool and a library bundle per content type, for a chat that runs Node but cannot reach npm | written by [vite.config.ts](vite.config.ts) |
14+
| `/h5p/bundles/` | The skill's build tool and a library bundle per content type, for a chat that runs Node but cannot reach npm; and `h5p-author-build.tar.gz`, the tool and every library in one archive, for a person to attach to a chat whose code can download nothing | written by [vite.config.ts](vite.config.ts) |
1515
| `/h5p/build/types/` | The skill's type files, which the build page copies for the chat | written by [vite.config.ts](vite.config.ts) |
1616

17-
A chat takes the skill installed: from a zip in Claude, ChatGPT and Grok, or with `npx skills add` in an agent with a terminal, as `/h5p/create-with-ai/` says. Where the skill cannot reach npm, it builds from the tool and a bundle in `/h5p/bundles/`, at the addresses `/h5p/skill/` lists, if it can run Node and fetch a file: Grok did, on 2026-11-13. If it cannot, as in ChatGPT, it gives the user a link to `/h5p/build/`, which builds in their browser.
17+
A chat takes the skill installed: from a zip in Claude, ChatGPT and Grok, or with `npx skills add` in an agent with a terminal, as `/h5p/create-with-ai/` says. Where the skill cannot reach npm, it builds from the tool and a bundle in `/h5p/bundles/`, at the addresses `/h5p/skill/` lists, if it can run Node and fetch a file: Grok did, on 2026-11-13. Where its code runs Node but can fetch nothing, as in ChatGPT, it builds from `h5p-author-build.tar.gz` once the person attaches it, and otherwise gives them a link to `/h5p/build/`, which builds in their browser. The tool is a Node.js program, so a chat whose code runs no Node, as most chat apps for local models, takes the link; an agent with a terminal and a local model builds offline from the archive.
1818

1919
Until 2026-11-13 the site's prompts sent a chat to read the skill at `/h5p/skill/` instead. That worked only in chats that now take the zip, so the prompts name the installed skill, and no page links to `/h5p/skill/`. Its page and files stay: the copies of the skill already installed name that address, and so do the prompts people copied before.
2020

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"@codemirror/state": "6.7.6",
2929
"@codemirror/view": "6.43.15",
3030
"@lezer/highlight": "1.2.5",
31-
"@missing-elements/h5p-author": "0.9.7",
31+
"@missing-elements/h5p-author": "0.9.8",
3232
"@missing-elements/h5p-libraries": "1.1.0",
3333
"@missing-elements/h5p-offline-player": "1.6.0",
3434
"@missing-elements/h5p-runtime": "1.0.1",

‎pnpm-lock.yaml‎

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/h5p/build/index.njk‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
22
layout: base.njk
33
# The title and description carry what people search for: an AI H5P generator, with ChatGPT and the
4-
# like. The description counts the types as the hero does, in the release the page runs.
5-
title: "Free AI H5P generator: make H5P with ChatGPT, Claude or Grok"
4+
# like, and what sets it apart, in the owner's words: privacy first, no MCP server. The description
5+
# counts the types as the hero does, in the release the page runs.
6+
title: "Free AI H5P generator, privacy first: make H5P with ChatGPT, Claude or Grok"
67
eleventyComputed:
7-
description: "Describe a lesson to ChatGPT, Claude or Grok and get an H5P activity: a quiz, a course presentation or any of {{ skill.offered.length }} H5P types. Free, no account, for Moodle."
8+
description: "Describe a lesson to ChatGPT, Claude or Grok and get an H5P activity for Moodle: a quiz, a course presentation or any of {{ skill.offered.length }} H5P types. Free, privacy first: no MCP server, no account."
89
# The picture a shared link shows: the page's first screen at 1200×630, light, with the sample
910
# settled. It is a screenshot, so take it again when that screen changes.
1011
socialImage:
@@ -101,8 +102,8 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' da
101102
</li>
102103
<li class="feature">
103104
<span class="feature-icon icon-browser" aria-hidden="true"></span>
104-
<h3>Built in your browser</h3>
105-
<p>The page builds and plays the activity on your computer. It is free and <a href="https://github.com/missing-elements/missing-elements.github.io/tree/main/src/h5p/build">open source</a>, needs no account, and sends nothing you make to this site.</p>
105+
<h3>Privacy first, no MCP server</h3>
106+
<p>Your chat builds the activity in its own sandbox, or this page builds and plays it on your computer: nothing you make is sent to us. It is free and <a href="https://github.com/missing-elements/missing-elements.github.io/tree/main/src/h5p/build">open source</a>, and needs no account.</p>
106107
</li>
107108
<li class="feature">
108109
<span class="feature-icon icon-school" aria-hidden="true"></span>
@@ -140,7 +141,7 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' da
140141
</li>
141142
<li>
142143
<h3>Play it, then download it</h3>
143-
<p>Claude and Grok build the <code>.h5p</code> file in the chat. ChatGPT hands over a link that opens the activity here, or its source, to <a href="#build-it">open or paste below</a>.</p>
144+
<p>Claude and Grok build the <code>.h5p</code> file in the chat, and so does ChatGPT with <a href="/h5p/create-with-ai/#install">the build archive</a> attached. Without it, ChatGPT hands over a link that opens the activity here, or its source, to <a href="#build-it">open or paste below</a>.</p>
144145
</li>
145146
</ol>
146147
<div class="prompt-box">

‎src/h5p/create-with-ai/index.njk‎

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,11 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; o
6565
<li>
6666
<strong>ChatGPT</strong>: download
6767
<a href="/h5p/skill/h5p-author-chatgpt.zip" download>h5p-author-chatgpt.zip</a> and upload it
68-
under Plugins. ChatGPT's code cannot reach the build tool, so it hands over a link to the
69-
build page. If the page says the link arrived damaged, ask for the link again, or for the
70-
source as a file, and open that on the build page.
68+
under Plugins. ChatGPT's code cannot download the build tool, so download
69+
<a href="/h5p/bundles/h5p-author-build.tar.gz" download>h5p-author-build.tar.gz</a> once too,
70+
and attach it to the message where you ask: ChatGPT then builds the <code>.h5p</code> file in
71+
the chat. Without it, ChatGPT hands over a link to the build page; if the page says the link
72+
arrived damaged, ask for the source as a file and open that on the build page.
7173
</li>
7274
<li>
7375
<strong>Grok</strong>: download
@@ -89,6 +91,8 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; o
8991
The zips hold h5p-author {{ skill.version }}, the release the build page runs: text files and
9092
nothing that runs, which you can read
9193
<a href="https://github.com/missing-elements/h5p-offline-player/tree/main/skills/h5p-author">on GitHub</a>.
94+
The archive holds the same release's build tool, which runs in the chat's own sandbox, and
95+
the H5P libraries it puts in the file, each under its own licence.
9296
</p>
9397
</section>
9498

@@ -115,10 +119,13 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; o
115119

116120
<section class="step" aria-labelledby="file-heading">
117121
<h2 id="file-heading"><span class="step-marker"><span class="step-number">4</span></span> Get the .h5p file</h2>
118-
<p>What the chat hands you depends on what it can run:</p>
122+
<p>
123+
The build tool is a Node.js program, so what the chat hands you depends on whether its code
124+
runs Node.js:
125+
</p>
119126
<ul>
120-
<li>the <code>.h5p</code> file itself, from a chat whose code can reach the build tool, as Claude's and Grok's can;</li>
121-
<li>a link that opens the activity on the build page, as ChatGPT gives;</li>
127+
<li>the <code>.h5p</code> file itself, from a chat whose code runs Node.js and can reach the build tool, as Claude's and Grok's can, and ChatGPT's with the build archive attached;</li>
128+
<li>a link that opens the activity on the build page, as ChatGPT gives without it;</li>
122129
<li>or its source, as a file or a block of JSON: open or paste it <a href="/h5p/build/#build-it">on the build page</a> and choose Build.</li>
123130
</ul>
124131
<p>
@@ -238,8 +245,35 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; o
238245
<a href="/h5p/assets/libraries-LICENSES.txt">the pack's licence list</a> says.
239246
</p>
240247
<p>
241-
Nothing you make is sent to this site: the build page builds and plays it in your browser.
242-
Your AI chat sees what you send it.
248+
Privacy first: nothing you make is sent to this site, and there is no MCP server or other
249+
server of ours in between. The chat builds the file in its own sandbox, or the build page
250+
builds and plays it in your browser. Your AI chat sees what you send it, as it sees
251+
anything you ask it.
252+
</p>
253+
</section>
254+
255+
<section aria-labelledby="local">
256+
<h2 id="local">With a local model, or offline</h2>
257+
<p>
258+
A chat app for local models writes the activity as any chat does, but out of the box its code
259+
does not run Node.js:
260+
</p>
261+
<ul>
262+
<li>Open WebUI's code tool runs Python;</li>
263+
<li>LM Studio's code plugin runs JavaScript in Deno, not Node.js;</li>
264+
<li>Jan has no code tool of its own.</li>
265+
</ul>
266+
<p>
267+
So there the chat hands over a link or the source, and the build page builds the file. Open
268+
WebUI with Open Terminal is the exception: its default image has Node.js, which the build
269+
needs.
270+
</p>
271+
<p>
272+
With Node.js 22 or later on your own computer, the whole build can stay offline. Install the
273+
skill in an agent with a terminal that runs a local model, from Ollama or LM Studio, and download
274+
<a href="/h5p/bundles/h5p-author-build.tar.gz" download>h5p-author-build.tar.gz</a> once.
275+
Then tell the agent where the archive is. It builds the <code>.h5p</code> file on your
276+
computer, with no internet and nothing sent anywhere.
243277
</p>
244278
</section>
245279

@@ -253,6 +287,14 @@ csp: "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; o
253287
it, and ask in a new chat.
254288
</p>
255289

290+
<h3>The chat says it cannot get the build tool</h3>
291+
<p>
292+
Download <a href="/h5p/bundles/h5p-author-build.tar.gz" download>h5p-author-build.tar.gz</a>
293+
and attach it to your next message: a chat whose code runs Node.js builds the file from it,
294+
without installing or downloading anything. A chat whose code runs no Node.js gives you a
295+
link to the build page instead.
296+
</p>
297+
256298
<h3>The build lists problems</h3>
257299
<p>
258300
Choose Copy the problems for the chat, and paste them into the chat that wrote the source. It

0 commit comments

Comments
 (0)