npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

opencode-scratchtml

v0.1.0

Published

opencode plugin for scratchtml — ephemeral, commentable document links with a plan-mode review loop.

Readme

scratchtml for opencode

Share any document opencode generates — reports, design docs, UI mockups — on a scratchtml link for inline review, with an automatic plan-mode review loop.

Status: v0.1.0 — first opencode-native release. The review loop runs on opencode's built-in plan agent (its system prompt is augmented), so you stay in normal plan mode — no agent switching. It's system-prompt driven; opencode has no plan-submit tool to gate on.

Install

// .opencode/opencode.json (or ~/.config/opencode/opencode.json)
{
  "plugin": ["opencode-scratchtml"]
}

Restart opencode. On first use, sign in to scratchtml — mcp__scratchtml__login opens a browser tab. Tokens persist in ~/.config/scratchtml/config.json and are shared with the scratchtml CLI.

How it works

| Surface | What you get | |---|---| | MCP server | share_document, upload_document, get_feedback, reply_to_feedback, list_documents, login — local stdio server bundled with the plugin. | | built-in plan agent | Plan mode is augmented to author plans with HTML mockups + mermaid diagrams, then route them through scratchtml for review before you switch to build. No custom agent — use plan mode as usual. | | 3 commands | /scratchtml:share, /scratchtml:get, /scratchtml:list — the same as the Claude plugin's. | | 3 skills | scratchtml-share, scratchtml-get, scratchtml-list — model-discoverable recipes. |

Options

Pass a tuple with options:

{
  "plugin": [
    ["opencode-scratchtml", {
      "planReview": true,
      "autoOpen": true,
      "approveMode": "ask",
      "uiMockups": true,
      "diagrams": true
    }]
  ]
}

| Option | Default | Effect | |---|---|---| | planReview | true | Add the review loop to the built-in plan agent | | autoOpen | true | Open uploaded links in the local browser | | approveMode | "ask" | "ask" or "auto" — selects the post-upload menu text in the agent prompt | | uiMockups | true | Encourage HTML mockups in plans | | diagrams | true | Encourage mermaid diagrams in plans |

Env-var override (any of these takes precedence over the tuple): OPENCODE_SCRATCHTML_PLAN_REVIEW, OPENCODE_SCRATCHTML_AUTO_OPEN, OPENCODE_SCRATCHTML_APPROVE_MODE, OPENCODE_SCRATCHTML_UI_MOCKUPS, OPENCODE_SCRATCHTML_DIAGRAMS.

Local dev (no commit, no release)

pnpm --filter opencode-scratchtml build   # sync + tsc

# Smoke-test in an isolated session (no project opencode.json read):
OPENCODE_DISABLE_PROJECT_CONFIG=1 \
OPENCODE_CONFIG_CONTENT='{"$schema":"https://opencode.ai/config.json","plugin":["./plugins/opencode/dist/index.js"]}' \
opencode

See plugins/claude/README.md for the full feature description and the rest of the scratchtml workflow.

How the source is shared with the Claude plugin

The mcp/server.mjs bundle, prompt text, and skill markdown are generated from plugins/claude/plugin/... and packages/plugin-mcp/src/server.ts by scripts/sync-from-claude.mjs and the packages/plugin-mcp build. Edit the sources there, not the generated artifacts. CI fails the build if the generated files drift from the sources.