Files
pm-claude-skills/web
Mohit 5721cd3a49 fix(web): propagate mid-stream API errors and raise max_tokens
- Streaming loop swallowed errors: a mid-stream error event (e.g.
  overloaded_error) was thrown inside the same try/catch used to skip
  unparseable SSE lines, so it was silently ignored and the run reported
  "Done." with truncated output. Separate JSON parsing from event handling
  so real errors surface to the user.
- Raise max_tokens 4096 -> 8192 to avoid truncating long skill outputs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 12:07:18 +01:00
..

Skill Playground

A zero-backend web app to run any skill in this repo with your own Claude API key. Pick a skill → it becomes a form → fill it in → Claude executes the skill's instructions and streams the result. Your key is stored only in your browser (localStorage) and sent directly to api.anthropic.com. Nothing touches a server we own.

Run locally

node web/build-skills.mjs        # regenerate skills.json from skills/
cd web && python3 -m http.server 8000
# open http://localhost:8000

It must be served over HTTP (not opened as a file:// URL) so fetch('skills.json') works.

Paste a key from console.anthropic.com and run.

How it works

  • build-skills.mjs scans ../skills/*/SKILL.md, parses the frontmatter and the Required Inputs section, and writes skills.json (the UI's data source).
  • app.js sends the skill's instruction body as the system prompt and the filled-in fields as the user message, using the Anthropic Messages API with anthropic-dangerous-direct-browser-access: true for direct browser calls.

Keep it in sync

Re-run node web/build-skills.mjs whenever skills are added or edited, and commit the updated skills.json. (Or wire it into CI / a pre-commit hook.)

Deploy

It's fully static — host the web/ folder on GitHub Pages, Netlify, Vercel, or any static host. No environment variables, no server.