Experimental, non-core Patchwork tools — the least supported corner of the ecosystem. Read them for patterns, but expect some to be broken or half-finished.
How to build a tool is covered by the writing-patchwork-tools skill from
patchwork-skills
(npx @inkandswitch/patchwork-skills install <dir>). For polished utility tools you can
reuse — folder, embed, codemirror-base, file, … — look at
patchwork-pkg-base.
House style: small, simple tools in plain vanilla JavaScript. TypeScript, npm deps, and a bundled build are all fine (pushwork handles them). If a reactive framework is needed, use Solid — never React.
Tailwind is not supported in Patchwork. If a tool here is still using it, remove it and write plain CSS instead.
Bundleless (hand-written .js, no build):
tic-tac-toe— the canonical small tool: datatype + tool in one file, JSDoc@typedefschema, injected<style>, proper cleanupword-counter— a tiny tool-only title-bar plugin (forTitleBar: true)writing— live-preview markdown editor; hand-rolled CodeMirror⇄Automerge splicing with a minimal-diff reconcile
Solid + TypeScript, vite-bundled:
editable-llm-chat— compact, complete datatype + tool in one module (~400 lines)openscad— mid-size package with a cleanindex/datatype/toollayout (wasm + Three.js preview)
Specialties:
inspector— title-bar tool that opens on ANY document (supportedDatatypes: "*")codemirror-latex— acodemirror:extensionplugin (KaTeX live preview) that extends thecodemirror-basepackagecall— ephemeral multiplayer viahandle.broadcast(WebRTC signaling); advanced, largethemes— bundlelesspatchwork:themepluginsactions— headlesspatchwork:actionplugins with a zodargsSchema
React — reference for behavior; only copy the approach if the user asked for React:
datagrid— small React datatype + tool (Handsontable spreadsheet)todo— React todo list that also registers apatchwork:skill