trmnl-plugin-builder
TRMNL Plugin Builder
Build the simplest viable TRMNL solution first.
Workflow
- Use the decision rules below to choose the path.
- Read
references/private-plugins.mdfor most Private Plugin and import/export work. - Read
references/form-fields.mdbefore emitting bare Form Fields YAML. - Read
references/framework-liquid.mdbefore emitting markup. - Read
references/webhooks.mdfor push updates, stateful dashboards, or merge strategies. - Read
references/recipes.mdfor sharing or publishing. - Read
references/advanced-third-party.mdonly for OAuth, server-backed marketplace flows, or external account management. - Read
references/byos.mdonly for self-hosting and device API work. - Read
references/gotchas.mdbefore finalizing.
Decision Rules
- Choose Private Plugin by default when TRMNL can poll an endpoint or accept webhook pushes.
- Choose Recipe when the logic still fits Private Plugin and the user wants a no-server shareable install flow.
- Choose Third Party only when the request needs OAuth, user identity or PII on the author's server, a custom management UI, or a public marketplace integration backed by the author's server.
- Choose BYOS only when the request is about self-hosting the TRMNL server/device relationship or
/api/setup,/api/display,/api/log.
Output Contract
- For direct UI answers, emit bare Form Fields YAML, not a
custom_fields:wrapper. - Emit Liquid markup plus concrete TRMNL setup steps.
- Use
assets/settings.ymlandassets/full.liquidonly when the user explicitly wants import/export artifacts or repo-local starter files. - Mention webhook rate and payload limits whenever the requested update frequency pushes against them.
- Do not pretend a Private Plugin can satisfy a Third Party or BYOS requirement.
Assets
assets/settings.yml- official-shape private-plugin import/export starterassets/full.liquid- official-shape full-screen template starterassets/shared.liquid- optional shared helper exampleassets/polling-response.json- polling payload exampleassets/webhook-payload.json- webhook payload example
More from mylesmcook/mcook-skills
adversarial-review
Use this skill when you need a serious code review, diff review, or implementation-plan review from independent reviewers. In Codex hosts, prefer a fresh Codex subagent for the Codex reviewer; otherwise use the Codex, Claude Code, and Gemini reviewer paths when available. Return a PASS, CONTESTED, or REJECT verdict.
13subagent-driven-development
Use after an implementation plan is approved to execute mostly independent tasks through fresh subagents with scoped context, harness-aware model routing, proportional review gates, and mandatory controller verification.
10brainerd
>
10simple-code
Reduce incidental complexity in code and design. Use when shaping APIs, module boundaries, refactors, tests, naming, and architecture tradeoffs with a bias toward concrete, local, reversible solutions.
7git-it-out
Use this skill when the user explicitly wants final end-of-session closeout and no more branch or PR limbo: proper verification, proper commits, main/mainline landing, push, repo-native merge/release/deploy/publish steps, tracker updates, Entire/checkpoint handling when configured, and a concise handoff. Reach for it on prompts like 'git it out', 'get it out', 'ship this', 'I'm done', 'I'm going to bed', 'take this off my plate', 'finish the session', or 'get this into production'. Do not use it for greenfield implementation, open-ended debugging, broad refactors, or inventing a release process from scratch.
7laws-of-taste
>-
6