Skip to main content

Get a trmy review before you submit a recipe

Run your recipe through the same checks our reviewers use, and fix what they would ask about before you submit.

Written by Ryan Kulp

Ultimately, every recipe is reviewed by humans on our support team. To raise your chances of a quick and easy approval, we share our internal review agent, trmy, with you before you submit. trmy runs your plugin through the tests in trmnlp, our open source plugin tool, to make sure it gives people a good experience on every TRMNL, and tells you what our reviewers usually ask about.

trmy is automated, so it can be wrong. Treat its notes as a first pass. A person on our team still reads every recipe after you submit.

Prerequisites

  • A private plugin you made yourself. A copy of someone else's recipe cannot be submitted, so trmy is not offered for it.

  • The plugin is not submitted yet, or it is unlisted.

Step 1 - Ask trmy

Open your plugin's settings and click Publish plugin. At the top of the window, click Ask trmy.

The publish window, with the trmy box above the publish steps

On the page that opens, add a note if you want trmy to look at something in particular, for example "Is portrait OK on the TRMNL X?". The note is optional. Then click Ask trmy.

Step 2 - Wait for the email

trmy usually replies within an hour. We email you a link to its notes when they are ready. A recipe can have one request waiting at a time, and you can ask up to 10 times a day.

Step 3 - Read the notes and fix

Each note names the view and the screen, says what is wrong, and gives the class or the field change that fixes it. trmy draws a fix on the same screen before it suggests one, and leaves out a fix it could not make work. Screenshots of the screens it mentions sit under the notes.

trmy's reply on the review page, answering the author's question about portrait first

After you change your plugin, ask again with a note about what you changed. trmy reads its last notes and says, for each one, whether it is fixed or still open.

Step 4 - Submit

When you are happy with it, submit your recipe as usual. You do not need trmy's approval to submit, and a clean report does not publish anything. A person on our team reviews it from there.

What trmy checks

trmy uses the values you saved in your plugin's settings, so the screens show your real data. It draws every view:

  • on the TRMNL OG, in 1-bit and 2-bit

  • on the TRMNL X, in landscape and portrait, and in 1-bit

  • with each option of every select field, and with each switch on and off

Then it looks at each screen for what our reviewers ask about most: a layout sized for the OG that leaves the TRMNL X mostly empty, portrait layouts that are squashed or half empty, text that is cut off or drawn over other text, gray text that breaks into dots on 1-bit screens, form fields, a way for people to contact you, and custom CSS where a framework class already exists.

Your plugin's code runs in an isolated container during the review, and the copy trmy works on is deleted when it replies.

Run the same tests yourself

The tests trmy runs are part of trmnlp, so you can run them on your own computer before you ask. Install trmnlp with Docker or Ruby as its README describes, then:

  • trmnlp login, to connect it to your TRMNL account

  • trmnlp clone my_plugin 12345, with your plugin's id from the address of its settings page

  • trmnlp lint, to check your markup against TRMNL's best practices

  • trmnlp test --report report, to draw every screen, then open report/index.html

A cloned plugin already holds tests/plugin_spec.rb with the publishable recipe check that trmy runs. The testing guide explains how to give it sample data and add checks of your own.

Troubleshooting

The screens trmy shows have no data.
trmy draws with the values saved in your plugin's settings. If a field is empty or the API refused the request, your screens show their error state. Fill in the fields, save, and ask again.

A note looks wrong.
trmy can be wrong. Ask again with a note that explains your choice, or submit anyway. A person on our team reads every recipe.

trmy could not finish the review.
Ask again later. If it fails again, submit when you are ready.

I don't see "Ask trmy".
It shows in the publish window of your own recipe, before you submit it or while it is unlisted. A recipe you installed from someone else cannot be submitted.

Related

Did this answer your question?