Skip to content

Submit a tool

If you built a tool in a Claude chat that makes something real, it can live here. You do not need to be a developer: paste the prompt below into the chat that holds your artifact, and it does the packaging.

1. The packaging prompt

Package this artifact for Good Tools, a library of single-file maker tools.

Produce a zip named `<id>.zip` that unpacks to one folder `<id>/` containing:

- `index.html` — one self-contained file. No `<script src>`, no `<link href>` to the network, no `@import` or `url()` to the network. Inline any CDN library at a pinned version and keep its license header (copyright and permission notice) as a comment at the top of the inlined code. Remove web-font links (Google Fonts and the like) and rely on the fallback font stack already in the CSS. Replace any `claude.use('downloads')` save with a Blob + anchor download (`URL.createObjectURL`, `a.download`, `a.click()`) that keeps a clipboard fallback. Remove `claude.use('artifact')`, `window.storage`, `window.claude.complete` and any call to `api.anthropic.com`, along with any UI that only those made possible; the tool must work with no AI call and no network. Wrap every `localStorage` and `sessionStorage` access in try/catch. Keep a `<title>` and a viewport meta tag.
- `manifest.json` with exactly these fields, plus `sourceChat` and `forkedFrom` only if I give them, and no others: `id` (kebab-case, same as the folder), `name`, `tagline` (≤ 80 characters), `description`, `version` (semver), `author` (`{ "name", "url" }`), `license` (`MIT` or `CC-BY-4.0`), `category` (one of: laser, 3d-printing, woodworking, electronics, home-garden, calculators), `tags` (kebab-case, ≤ 12), `machines` (one or more of: xtool-p2, glowforge, co2-generic, diode-generic, fdm-generic, lulzbot, any), `materials` (one or more of: acrylic, plywood, mdf, cardboard, paper, leather, pla, petg, any), `outputs` (one or more of: svg, dxf, stl, pdf, png, json), `created` and `updated` (YYYY-MM-DD), `requiresAI: false`, `entry: "index.html"`.
- `README.md` — a `# Title`, then `## What it makes`, `## How to use it`, `## Build notes`.
- `LICENSE` — the full MIT or CC-BY-4.0 text with the author's copyright line.
- `screenshot.png` — 1200×800, the tool as it opens. If you cannot capture one, leave it out and say so; it will be generated.
- `examples/` — sample inputs, if the tool needs an uploaded file.

Ask me for any manifest field you cannot infer from the artifact. Do not invent machines or materials the tool was not designed for.

2. What gets checked

  • One self-contained HTML file: no scripts, styles, fonts or images from the network.
  • No AI call anywhere. The tool works with the network switched off.
  • A manifest with the fields above, a README, a 1200×800 screenshot, and a license file.
  • It opens without errors and one export downloads, checked in a browser under the same policy the site uses.

3. Send the zip

The submissions address is not set up yet. When it is, it will be here, and the steps above will not change.

By sending a tool you confirm you hold the rights to it and to anything inlined in it, and that it may be published here under the license in its manifest.