Generates TRMNL-compatible e-ink display images. Use when creating images for TRMNL devices, converting images to 1-bit format, or uploading content to e-ink displays. Triggers on "TRMNL", "e-ink", "e-paper", "terminal display".
Generate images compatible with TRMNL e-ink displays.
Generate an HTML template, screenshot it, convert to 1-bit, upload:
# 1. Screenshot HTML at 800x480
playwright screenshot template.html raw.png --viewport-size=800,480
# 2. Convert to 1-bit monochrome
magick raw.png -monochrome -colors 2 -depth 1 -strip png:output.png
# 3. Upload to TRMNL
curl -X POST --data-binary @output.png \
-H 'Content-Type: image/png' \
'https://usetrmnl.com/api/plugin_settings/{PLUGIN_UUID}/image'
TRMNL devices require specific image formatting:
| Property | Requirement | |----------|-------------| | Size | 800x480 pixels | | Depth | 1-bit (monochrome) | | Colors | 2 (black and white) | | Format | PNG or BMP3 |
magick input.png -monochrome -colors 2 -depth 1 -strip png:output.png
magick input.png -dither FloydSteinberg -remap pattern:gray50 -depth 1 -strip png:output.png
magick input.png -monochrome -colors 2 -depth 1 -strip bmp3:output.bmp
# Create colormap first
magick -size 4x1 xc:#000000 xc:#555555 xc:#aaaaaa xc:#ffffff +append -type Palette colormap-2bit.png
# Convert with colormap
magick input.png -resize 800x480\! -dither FloydSteinberg -remap colormap-2bit.png \
-define png:bit-depth=2 -define png:color-type=0 output.png
For best e-ink results:
<!DOCTYPE html>
<html>
<head>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 800px;
height: 480px;
font-family: system-ui, sans-serif;
background: white;
color: black;
padding: 24px;
}
h1 { font-size: 48px; font-weight: 900; }
.content { font-size: 18px; }
</style>
</head>
<body>
<h1>TITLE</h1>
<div class="content">Content here</div>
</body>
</html>
curl -X POST --data-binary @image.png \
-H 'Content-Type: image/png' \
'https://usetrmnl.com/api/plugin_settings/{PLUGIN_UUID}/image'
Response on success:
{"data":{"message":"Image uploaded successfully"}}
/plugin_settings/{UUID}Check image properties with ImageMagick:
magick identify -verbose output.png | grep -E "(Geometry|Depth|Colors|Type)"
Expected output:
Geometry: 800x480+0+0
Type: Bilevel
Depth: 1-bit
Colors: 2
| Issue | Cause | Fix |
|-------|-------|-----|
| Image not showing | Wrong bit depth | Use -monochrome -colors 2 -depth 1 |
| Gray areas | 8-bit grayscale | Convert to 1-bit |
| Wrong size | Not 800x480 | Add -resize 800x480\! |
| Fuzzy text | Anti-aliasing | Use -monochrome (no dither) for text |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer