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
planagent (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"]}' \
opencodeSee 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.
