Build anything for the notch
A Nook plugin is a folder with a small manifest and a program, written in any language. Your program prints JSON that describes its tile, Nook draws it in the notch's glass style and sends back clicks, typing, hotkeys and dropped files. You don't need Rust and you don't rebuild Nook.
Any languagePython, Node, PowerShell, Go, C#, Rust, even a .bat file. If it can read and write lines, it can be a plugin.
Looks nativeDescribe what to show and Nook draws it with its own springs, theme and accent color.
Safe to crashEach plugin runs in its own process. If it crashes it restarts, and the notch keeps running.
Quick start
1. Make a folder in %APPDATA%\Nook\plugins\, for example hello.
2. Add plugin.toml:
toml
id = "hello"
name = "Hello"
icon = "hand-waving" # any icon from phosphoricons.com
size = "wide" # small | wide | large
run = ["python", "main.py"]3. Add main.py. It prints one JSON object per line and reads one per line:
python
import json, sys
def send(msg):
print(json.dumps(msg), flush=True)
clicks = 0
def draw():
send({"type": "tile", "view": {
"type": "row", "align": "center", "children": [
{"type": "text", "text": f"Hello x{clicks}", "size": "title"},
{"type": "spacer"},
{"type": "button", "id": "wave", "icon": "hand-waving"},
]}})
draw()
for line in sys.stdin: # Nook's messages, one per line
msg = json.loads(line)
if msg["type"] == "event" and msg["id"] == "wave":
clicks += 1
draw()4. Turn on plugin dev mode in Nook's Settings. Nook loads the new folder within a second, no restart, and restarts your plugin every time you save a file. The tile is added after the built-in ones. Use the pencil in the grid to move or resize it.
Using Claude Code? Install the nook-plugin skill and just describe the tile you want: it knows the protocol and checks the plugin the way Nook runs it.
That's the whole protocol. The rest of these docs list everything else you can use. For ready-made examples, see
examples/plugins/ in the repository: a counter, a to-do list, a PowerShell disk monitor and an analog clock drawn on a canvas.