Generate content for TRMNL e-ink display devices using the TRMNL CSS framework and send via the trmnl CLI. Use when the user wants to display information on their TRMNL device, send messages to an e-ink display, create dashboard content, show notifications, or update their terminal display. Supports rich layouts with the TRMNL framework (flexbox, grid, tables, progress bars, typography utilities).
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install trmnl或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install trmnl⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/trmnl/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: trmnl description: Generate content for TRMNL e-ink display devices using the TRMNL CSS framework and send via the trmnl CLI. Use when the user wants to display information on their TRMNL device, send messages to an e-ink display, create dashboard content, show notifications, or update their terminal display. Supports rich layouts with the TRMNL framework (flexbox, grid, tables, progress bars, typography utilities). ---
Generate HTML content for TRMNL e-ink display devices.
Install the trmnl CLI to the latest version:
npm install -g trmnl-cli@latest
Configure a webhook plugin (one-time setup):
# Add a plugin
trmnl plugin add home "https://trmnl.com/api/custom_plugins/{uuid}"
# Verify it's configured
trmnl plugin
npm install -g trmnl-cli@latesttrmnl plugin - if none, prompt user to add one```bash trmnl send --file /tmp/trmnl-content.html # Or to a specific plugin: trmnl send --file /tmp/trmnl-content.html --plugin office ```
From file (recommended):
# Write HTML content to file first
cat > /tmp/trmnl-content.html << 'EOF'
<div class="layout layout--col gap--space-between">
<div class="item">
<span class="value value--xlarge value--tnums">Hello TRMNL!</span>
</div>
</div>
<div class="title_bar">
<span class="title">My Plugin</span>
</div>
EOF
# Send to display
trmnl send --file /tmp/trmnl-content.html
Validate before sending:
trmnl validate --file /tmp/trmnl-content.html
View send history:
trmnl history
trmnl history --today
trmnl history --failed
| Tier | Payload Size | Rate Limit | |------|--------------|------------| | Free | 2 KB (2,048 bytes) | 12 requests/hour | | TRMNL+ | 5 KB (5,120 bytes) | 30 requests/hour |
Set tier globally for accurate validation:
trmnl tier plus # or "free"
Read these files as needed:
| File | When to Read | |------|--------------| | references/patterns.md | Start here - Common plugin patterns | | references/framework-overview.md | Device specs, e-ink constraints | | references/css-utilities.md | Colors, typography, sizing, spacing | | references/layout-systems.md | Flexbox, grid, overflow engines | | references/components.md | Title bar, dividers, items, tables | | references/webhook-api.md | Payload format, troubleshooting | | assets/anti-patterns.md | Common mistakes to avoid |
Every plugin follows this pattern:
<div class="layout layout--col gap--space-between">
<!-- Content sections separated by dividers -->
</div>
<div class="title_bar">
<img class="image" src="icon.svg">
<span class="title">Plugin Name</span>
<span class="instance">Context</span>
</div>
layout + layout--col = vertical flex containergap--space-between = push sections to edgestitle_bar = always at bottom, outside layoutdivider = separate major sections.layout element per view<div class="grid">
<div class="col--span-3">30%</div>
<div class="col--span-7">70%</div>
</div>
<div class="item">
<div class="content">
<span class="value value--xlarge value--tnums">$159,022</span>
<span class="label">Total Sales</span>
</div>
</div>
Always use value--tnums for numbers.
| Class | Usage | |-------|-------| | value--xxxlarge | Hero KPIs | | value--xxlarge | Large prices | | value--xlarge | Secondary metrics | | value--tnums | Required for numbers |
Use dithered classes, not inline colors:
bg--black, bg--gray-60, bg--gray-30, bg--gray-10, bg--whitetext--black, text--gray-50| Attribute | Purpose | |-----------|---------| | data-fit-value="true" | Auto-resize text to fit | | data-clamp="N" | Limit to N lines | | data-overflow="true" | Enable overflow management |
layout + title_bar structurevalue--tnums for numbersdata-fit-value on primary metricsbg--gray-* dithered classes| Problem | Solution | |---------|----------| | trmnl: command not found | Run npm install -g trmnl-cli@latest | | No plugins configured | Run trmnl plugin add | | Webhook fails | trmnl config - verify plugin URL | | Payload too large | trmnl validate --file - check size | | Numbers misaligned | Add value--tnums class | | Send history | trmnl history --failed |
安装 TRMNL Display 后,可以对 AI 说这些话来触发它
Help me get started with TRMNL Display
Explains what TRMNL Display does, walks through the setup, and runs a quick demo based on your current project
Use TRMNL Display to generate content for TRMNL e-ink display devices using the TRMNL CS...
Invokes TRMNL Display with the right parameters and returns the result directly in the conversation
What can I do with TRMNL Display in my developer & devops workflow?
Lists the top use cases for TRMNL Display, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/trmnl/ 目录(个人级,所有项目可用),或 .claude/skills/trmnl/(项目级)。重启 AI 客户端后,用 /trmnl 主动调用,或让 AI 根据上下文自动发现并使用。
TRMNL Display 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
TRMNL Display 可免费安装使用。请查阅仓库了解许可证信息。
Generate content for TRMNL e-ink display devices using the TRMNL CSS framework and send via the trmnl CLI. Use when the user wants to display information on their TRMNL device, send messages to an e-ink display, create dashboard content, show notifications, or update their terminal display. Supports rich layouts with the TRMNL framework (flexbox, grid, tables, progress bars, typography utilities).
Automate my developer & devops tasks using TRMNL Display
Identifies repetitive steps in your workflow and sets up TRMNL Display to handle them automatically
TRMNL Display 属于「Developer & DevOps」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。