qhs — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited qhs (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Share an HTML document or snippet and get back a public URL in under 2 seconds. Designed for vibe coders sharing AI-generated demos with friends, clients, or coworkers without setting up a deploy pipeline.
Automatically invoke when the user wants to:
Do NOT use this skill for: deploying full apps (use Vercel/Netlify), hosting images alone (use any image host), or anything that needs a custom domain (build the user's own deploy pipeline).
A single Node helper ships alongside this skill. Depending on how the skill was installed it lives at one of:
~/.claude/skills/qhs/scripts/qhs.mjs (direct install / dogfood symlink)~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs (Claude Code plugin install)Resolve the path on each invocation with QHS=$(ls -1 ... | head -1), then call it via node "$QHS" <command>. The helper talks to the hosted quick-html-sharing service and persists edit tokens at ~/.qhs/shares.json (same store the companion MCP server uses — they cooperate).
Write(file_path="/tmp/qhs-<random>.html", content=...).Bash: QHS=$(ls -1 ~/.claude/skills/qhs/scripts/qhs.mjs ~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs 2>/dev/null | head -1) && node "$QHS" share /tmp/qhs-<random>.html --title="<short label>"{slug, shareUrl, editToken, editUrl}).QHS=$(ls -1 ~/.claude/skills/qhs/scripts/qhs.mjs ~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs 2>/dev/null | head -1) && node "$QHS" edit <slug> /tmp/qhs-new.htmlThe edit token is auto-loaded from ~/.qhs/shares.json. If unknown (e.g., the share was created on another machine), ask the user to paste the edit URL — the part after #edit= is the token — and pass it as --edit-token=<value>.
QHS=$(ls -1 ~/.claude/skills/qhs/scripts/qhs.mjs ~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs 2>/dev/null | head -1) && node "$QHS" delete <slug>Idempotent — re-deleting an already-deleted share returns ok. After this the share URL returns 404.
QHS=$(ls -1 ~/.claude/skills/qhs/scripts/qhs.mjs ~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs 2>/dev/null | head -1) && node "$QHS" stats <slug>Returns {views, lastViewedAt, createdAt, deleted}. No edit token needed — anyone with the slug can read stats (matches the product's "link is the secret" model).
QHS=$(ls -1 ~/.claude/skills/qhs/scripts/qhs.mjs ~/.claude/skills/qhs/skills/qhs/scripts/qhs.mjs 2>/dev/null | head -1) && node "$QHS" listLists shares created from this machine via either this skill or the MCP server. Does NOT include shares created from other machines (we never store them server-side under any account — there are no accounts).
The script outputs JSON on stdout, errors on stderr. Errors exit non-zero so the Bash tool surfaces them naturally.
#edit=...) and never reach the server in logs — only in the fragment, which browsers don't send over the wire.share for files that aren't self-contained HTML (e.g., a React component file that needs a build step).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.