TRMNL started with a single native device model and a Developer Edition add-on that unlocks the API + custom plugin development.
Our ecosystem later expanded to DIY hardware, jailbreaks for Kindle / Kobo / Android / Raspberry Pi, and open source server clients known as BYOS.
Below are scenarios to help you figure out which licenses are required for your desired outcome.
Multiple (native) devices on the same account
If you want a TRMNL on your desk and kitchen counter, you only need 1x Developer Edition add-on, on 1 of your devices.
This lets you build custom plugins and connect to Recipes or Third Party plugins, which you can add to your non- Developer Edition device on the Playlists tab.
Multiple (native) devices on different accounts
Perhaps you're getting TRMNLs for yourself and a few colleagues, or as a gift to someone who doesn't live with you. This may require 1 or more licenses.
One TRMNL account may have unlimited devices, however we do not support "team" access with multiple user accounts. So depending on your relationship with other device owners, you may prefer not to share a password or allow them access to your connected plugins (personal data).
The spirit of our Developer Edition add-on is that it is per-device, since most orders for 2+ devices are for different people, located in different places. However if you simply wish to grant devices to colleagues, and mirror your parent device's content (ex: sales dashboards, non personal content) to their devices, you can forego additional Developer Edition add-ons and use our native mirroring feature.
Combination of native + BYOD devices on the same account
First, let's define BYOD as DIY hardware or jailbroken 3rd party devices like Kindle.
Interacting with the TRMNL /api/display
endpoint (docs) requires an API Key to be set as the access-token
HTTP header. API Keys are provisioned per device, and each device has its own unique playlist of content. API Keys are available to:
Native TRMNLs with Developer Edition add-on
BYOD devices with the BYOD license
The /api/display
endpoint that our OSS firmware pings for new content has a couple important features on the server-side:
Each GET to
/api/display
auto-advances your Playlist to the next item, based on your playlist's settings and display logic rulesGET requests are rate-limited (as of June 2025: ~5 per 5 minutes)
From a UX perspective, if you have a Playlist with items A-B-C, and 2x devices (native or BYOD) sharing the same API key, then Device 1 will render Item A, then Device 2 will render Item B, followed by Device 1 rendering Item C.
This may be confusing if your intent is to see the same content on each device.
To mirror the same content without additional Dev Edition or BYOD licenses, update the /api/display
endpoint in your device's firmware (or jailbreak binary, e.g. trmnl-display for Raspberry Pi) to /api/current_screen
(docs).
Alternatively, to grant each device a flexible playlist with native mirroring support, purchase another Dev Edition add-on (for native TRMNLs) or BYOD license (DIY TRMNLs) on each of your devices. Then you can enable mirroring in 1 click, no code changes required.
Partial OSS approach (native device + BYOS server client)
If you've purchased a TRMNL but want to point it to your local network or private cloud, you don't need any Developer Edition or BYOD licenses.
Most BYOS server clients already support device auto-provisioning, which is a fancy way to say that they detect your TRMNL's MAC address and allow you to control its API key. You may notice that your TRMNL web account hides your API key if you don't have Developer Edition enabled, but this can be safely ignored.
Full OSS approach (native device + BYOS server client)
If you intend to build a device and leverage one of our many BYOS servers, you don't need to pay TRMNL anything.
You can flash our OSS firmware to your board, point it to your local network or private cloud via the Captive Portal > Custom Server UI, and enjoy. We don't need your data, and you don't need our permission.