trmnl-displaySend concise text, notifications, or updates with optional Markdown and images to a TRMNL e-ink terminal display via webhook.
Install via ClawdBot CLI:
clawdbot install peetzweg/trmnl-displayThis skill sends content to a TRMNL e-ink display device using the webhook API.
https://trmnl.com/api/custom_plugins/0d9e7125-789d-46a6-9a51-070ac95364d8Use curl to POST a JSON payload with merge_variables:
curl "https://trmnl.com/api/custom_plugins/0d9e7125-789d-46a6-9a51-070ac95364d8" \
-H "Content-Type: application/json" \
-d '{"merge_variables": {"title": "Your Title Here", "text": "Your message content here"}}' \
-X POST
The TRMNL device is configured with a template that supports these variables:
| Variable | Description |
|----------|-------------|
| title | The main heading displayed prominently |
| text | The body content below the title (supports Markdown) |
| image | Fully qualified URL to an image (displayed on the right side) |
The text field supports Markdown formatting for richer content:
texttext- item or 1. item\n in the JSON string## Heading (use sparingly, title is already prominent)Simple notification:
{"merge_variables": {"title": "Reminder", "text": "Stand up and stretch!"}}
Status update with formatting:
{"merge_variables": {"title": "Build Status", "text": "**All tests passing**\n\nReady to deploy."}}
List format:
{"merge_variables": {"title": "Today's Tasks", "text": "- Review PR #42\n- Update docs\n- Team standup at 10am"}}
Weather-style info:
{"merge_variables": {"title": "San Francisco", "text": "**Sunny, 72°F**\n\nPerfect day for a walk"}}
With image:
{"merge_variables": {"title": "Album of the Day", "text": "**Kind of Blue**\nMiles Davis", "image": "https://example.com/album-cover.jpg"}}
## Instructions for Claude
When the user asks to send something to their TRMNL device:
1. Parse the user's request to extract a title and message
2. If only a message is provided, generate an appropriate short title
3. Keep titles concise (under 30 characters recommended)
4. Keep text brief - e-ink displays work best with short, readable content
5. Use Markdown formatting to enhance readability (bold for emphasis, lists for multiple items)
6. If relevant, include an image URL (must be a fully qualified public URL)
7. Send the webhook using the curl command above
8. Confirm to the user what was sent
If the user provides arguments like `/trmnl Meeting in 5 minutes`, interpret the first few words as a potential title and the rest as the message, or use your judgment to create an appropriate title/text split.
## Response Handling
A successful response looks like:json
{"message":null,"merge_variables":{"title":"...","text":"..."}}
```
If you see an error message in the response, inform the user of the issue.
https://example.com/image.png)AI Usage Analysis
Analysis is being generated… refresh in a few seconds.
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
Command-line tool to manage Google Workspace services including Gmail, Calendar, Drive, Sheets, Docs, Slides, Contacts, Tasks, People, Groups, and Keep.
Runs shell commands inside a dedicated tmux session named claw, captures, and returns the output, with safety checks for destructive commands.
A modern text-based browser. Renders web pages in the terminal using headless Firefox.
Write robust, portable shell scripts. Use when parsing arguments, handling errors properly, writing POSIX-compatible scripts, managing temp files, running commands in parallel, managing background processes, or adding --help to scripts.
NotebookLM CLI wrapper via `node {baseDir}/scripts/notebooklm.mjs`. Use for auth, notebooks, chat, sources, notes, sharing, research, and artifact generation/download.