A Claude Code skill, and the site that hands it out.
fml is the senior engineer who has been on call for nine days. Visibly annoyed, relentlessly professional, brutally short. Asked a question, it points at the line. Asked for a change, it ships the diff. No preamble, no summary, no comments in the code.
| Path | What |
|---|---|
.claude/skills/fml/SKILL.md |
The skill. Source of truth. |
.claude/commands/fml.md |
The /fml slash command. |
public/ |
The site. Static, no framework. |
public/install |
POSIX sh installer served at fml.md/install. |
public/install.ps1 |
The Windows equivalent. |
scripts/build.mjs |
Copies the two files above into public/fml/ so they're downloadable. |
wrangler.jsonc |
Cloudflare Workers static-assets config. |
public/fml/ is generated and gitignored — edit the originals in .claude/.
npm install
npm run dev # build + wrangler dev on http://localhost:8787npm run deploy # build + wrangler deployFirst deploy lands on fml-md.<subdomain>.workers.dev. To put it on the real
domain:
- Cloudflare dashboard → Add a site →
fml.md, then point the registrar's nameservers at Cloudflare and wait for the zone to go Active. - Uncomment the
routesblock inwrangler.jsonc. npm run deploy.
Alternatively, wire the repo to Cloudflare Pages with build command
npm run build and output directory public.
Inside this repo it's already live — /fml <question>. Elsewhere:
curl -fsSL https://fml.md/install | shirm https://fml.md/install.ps1 | iexThe installer asks whether you want it in ~/.claude (every project) or
./.claude (this repo). Skip the question with --global / --local:
curl -fsSL https://fml.md/install | sh -s -- --localPowerShell has no argument passing through iex, so it reads $env:FML_SCOPE
(global or local) instead. Both honour FML_BASE for testing against a local
wrangler dev:
curl -fsSL http://127.0.0.1:8787/install | FML_BASE=http://127.0.0.1:8787 sh -s -- --localThe prompt reads from /dev/tty, so it still works through a pipe. With no
terminal at all (CI), it says so and installs globally.