Build with Claude Code

The nook-plugin skill teaches Claude Code how Nook plugins work: the exact plugin.toml rules, every message and component with its required fields, the icon names, and the mistakes that leave a tile blank. It comes with a checker that runs your plugin the way Nook does and reports anything Nook would skip.

Download the skill (.zip)
Knows the protocolField names, defaults, event payloads, tile sizes and theme colors, taken from Nook's own source.
Checks its workThe bundled checker starts your plugin, sends it Nook's messages and validates every line it prints.
Any languagePython and Node helpers included; PowerShell, Go, C# or anything else that can print a line.

Install it

Unzip it into your personal skills folder, so Claude Code can use it in every project:

powershell
Expand-Archive "$HOME\Downloads\nook-plugin-skill.zip" "$HOME\.claude\skills" -Force

Or put it in your plugin's repository at .claude\skills\nook-plugin\ and commit it, so everyone who works on the plugin gets it. From a Nook checkout you can copy it instead:

powershell
Copy-Item -Recurse skills\nook-plugin "$HOME\.claude\skills\" -Force

Restart Claude Code (or start a new session) to pick it up.

Use it

Just describe the tile you want. Claude Code uses the skill on its own when you talk about a Nook plugin, a tile for the notch or plugin.toml, and you can also call it by name with /nook-plugin.

text
Make a Nook plugin that shows my unread GitHub notifications on a wide tile,
with the list on the page and a pulse in the pill when new ones arrive.
text
My Nook tile just shows the puzzle icon and the name. Here's the folder: C:\code\nook-weather

Claude will pick live or poll mode and a tile size, copy the Python or Node helper if it fits, write the code around a single draw() function, run the checker, and fix what it finds. Then turn on Plugin dev mode in Nook's Settings: the new folder loads within a second, and every save restarts the plugin.

The checker

You can run the checker yourself too (Python 3.8 or later, nothing to install):

powershell
python "$HOME\.claude\skills\nook-plugin\scripts\check_plugin.py" C:\code\my-plugins\weather --event refresh:click --event city:submit:Paris

It validates plugin.toml, finds the program in run like Nook does, starts it with Nook's environment, sends hello, layout, your events, page_open and shutdown, and checks every line it prints. Poll plugins are run once, then once per event with NOOK_EVENT set. Your plugin's real data is never touched: it gets a temporary NOOK_DATA_DIR.

It reportsFor example
Errors (Nook would skip it)an unknown key in plugin.toml, a bad id, a program not on PATH, a debug print on stdout, a button without id, a number where text must be a string, a live plugin that exits
Warnings (it works, but looks wrong)an unknown icon or color, a typo in a field name, duplicate control ids, an input crammed onto a small tile, a redraw loop, data saved in the plugin folder
The skill is plain Markdown and a Python script. Read it before you install it, like any code you run: it's in skills/nook-plugin/ in the Nook repository.