Centralize server URLs and document BYOS setup
TRMNL Firefox Extension
A Firefox browser extension that displays images from your TRMNL device in new tab pages with automatic refresh functionality.
Install from the official Add-ons library here: https://addons.mozilla.org/en-US/firefox/addon/trmnl-new-tab-display/
About
This extension brings TRMNL's calm, distraction-free environment directly to your Firefox new tab page. It connects to your TRMNL account and displays the current screen from your selected device, automatically refreshing at configurable intervals.
Note: This extension was originally designed for Chrome but adopts these changes to work with Firefox-native APIs.
Requirements
- Firefox browser
- TRMNL account with a physical device or BYOD license
Features
- πΌοΈ Display TRMNL images in new tab pages
- π Automatic image refresh with configurable intervals
- π± Device selection for users with multiple TRMNL devices
- π Automatic login flow - no manual API key entry required
- π οΈ Developer tools panel for environment switching
- πΎ Offline-friendly caching
- π Dark mode support
- πͺ Logout & reset functionality to clear all extension data
Installation
Development Installation
-
Clone this repository:
git clone git@github.com:usetrmnl/trmnl-firefox.git cd trmnl-firefox -
Open Firefox and navigate to
about:debugging -
Click "This Firefox" in the left sidebar
-
Click "Load Temporary Add-on..." and select the
manifest.jsonfile from the repository rootNote: Temporary add-ons are removed when Firefox restarts. Reload from
about:debuggingafter each restart while developing.
Production Package
To create a packaged extension for distribution:
ruby pack.rb
This creates trmnl-firefox.xpi. Installing an unsigned .xpi in regular Firefox requires Mozilla signing β use the temporary load steps above for local testing instead.
BYOS (Bring Your Own Server)
The extension ships pointed at trmnl.com. To use it with a self-hosted BYOS server (e.g. Terminus), replace the production host with your server URL and install your own build.
-
Set your server URL β replace
https://trmnl.comwith your BYOS server URL (no trailing slash) in:config.jsβHOSTS.productionmanifest.jsonβ replacehttps://trmnl.com/*with your server inhost_permissionsandcontent_scripts[].matches
For example, if your server is
https://terminus.example.com:// config.js const HOSTS = { development: "http://localhost:3000", production: "https://terminus.example.com", };// manifest.json "host_permissions": ["http://localhost:3000/*", "https://terminus.example.com/*"], "content_scripts": [ { "matches": ["https://terminus.example.com/*", "http://localhost:3000/*"], "js": ["dashboard-content.js"] } ] -
Load the extension β open
about:debugging, click This Firefox, then Load Temporary Add-on⦠and selectmanifest.jsonfrom the repository root. -
Log in β open a new tab and complete login on your BYOS server. The extension will use it for device listing and screen images by default.
Note: The Mozilla Add-ons listing always points at trmnl.com. BYOS requires a custom build loaded as a temporary add-on (or a signed
.xpifrom Mozilla's developer hub). If you previously used the official build, use Logout & Reset before switching to your BYOS build. You'll need to reload the temporary add-on after restarting Firefox.
Setup
- After installation, open a new tab or click the TRMNL extension icon
- Click "Login to TRMNL" to open the TRMNL website in a new tab
- Complete your login on the TRMNL website
- The extension will automatically detect your login and fetch your devices
- Your TRMNL device screen will appear in new tabs automatically
Usage
First Time Setup
- Login: Click "Login to TRMNL" when prompted
- Authenticate: Complete login on the TRMNL website
- Automatic Setup: Extension automatically fetches your devices and API keys
Daily Use
- New Tab: Open a new tab to see the current TRMNL image
- Settings: Click the TRMNL toolbar icon to access device settings and refresh options
- Device Selection: Choose between multiple devices if you have them
- Manual Refresh: Use the "Refresh Now" button in settings or on the new tab page
Advanced Options
- Manual API Key: Advanced users can still enter API keys manually via the settings
- Logout: Clear all extension data and reset to initial state:
- Click the TRMNL toolbar icon and use the "Logout & Reset" button, or
- Use the "Logout" button in the bottom overlay of any new tab page
- Developer Mode: Use the Firefox Developer Tools to access the TRMNL panel for environment switching
Development
The extension uses:
- Firefox WebExtensions APIs (Manifest V3)
- Vanilla JavaScript
- Native Firefox storage and messaging APIs
- CSS with dark mode support
Server URLs are centralized in config.js.
Contributing
Pull requests are welcome. Please ensure all changes maintain Firefox compatibility and follow Firefox extension best practices.