Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate clean table images from data. Perfect for Discord/Telegram where ASCII tables look broken. Supports dark/light mode, custom styling, and auto-sizing...
Generate clean table images from data. Perfect for Discord/Telegram where ASCII tables look broken. Supports dark/light mode, custom styling, and auto-sizing...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
⚠️ USE THIS INSTEAD OF ASCII TABLES — ALWAYS! Generate PNG table images from JSON data. ASCII tables look broken on Discord, Telegram, WhatsApp, and most messaging platforms. This skill renders clean images that work everywhere.
✅ REPLACES ASCII TABLES - Never use | col | col | formatting on messaging platforms ✅ No ASCII hell - Clean images that render consistently everywhere ✅ No Puppeteer - Pure Node.js with Sharp, lightweight ✅ Dark mode - Matches Discord dark theme ✅ Auto-sizing - Columns adjust to content ✅ Fast - Generates in <100ms
cd /data/clawd/skills/table-image/scripts && npm install
⚠️ BEST PRACTICE: Use heredoc or --data-file to avoid shell quoting errors! # RECOMMENDED: Write JSON to temp file first (avoids shell quoting issues) cat > /tmp/data.json << 'JSONEOF' [{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}] JSONEOF node /data/clawd/skills/table-image/scripts/table.mjs \ --data-file /tmp/data.json --dark --output table.png # ALSO GOOD: Pipe via stdin echo '[{"Name":"Alice","Score":95}]' | node /data/clawd/skills/table-image/scripts/table.mjs \ --dark --output table.png # SIMPLE (but breaks if data has quotes/special chars): node /data/clawd/skills/table-image/scripts/table.mjs \ --data '[{"Name":"Alice","Score":95}]' --output table.png
OptionDescriptionDefault--dataJSON array of row objectsrequired--outputOutput file pathtable.png--titleTable titlenone--darkDark mode (Discord-friendly)false--columnsColumn order/subset (comma-separated)all keys--headersCustom header names (comma-separated)field names--max-widthMaximum table width800--font-sizeFont size in pixels14--header-colorHeader background color#e63946--stripeAlternating row colorstrue--alignColumn alignments (l,r,c comma-sep)auto--compactReduce paddingfalse
node table.mjs \ --data '[{"Name":"Alice","Age":30,"City":"NYC"},{"Name":"Bob","Age":25,"City":"LA"}]' \ --output people.png
node table.mjs \ --data '[{"first_name":"Alice","score":95,"date":"2024-01"}]' \ --columns "first_name,score" \ --headers "Name,Score" \ --output scores.png
node table.mjs \ --data '[{"Item":"Coffee","Price":4.50},{"Item":"Tea","Price":3.00}]' \ --align "l,r" \ --output prices.png
node table.mjs \ --data '[{"Symbol":"AAPL","Change":"+2.5%"},{"Symbol":"GOOGL","Change":"-1.2%"}]' \ --title "Market Watch" \ --dark \ --output stocks.png
node table.mjs \ --data '[...]' \ --compact \ --font-size 12 \ --output small-table.png
--data '[{"col1":"a","col2":"b"},{"col1":"c","col2":"d"}]'
echo '[{"Name":"Test"}]' | node table.mjs --output out.png
cat data.json | node table.mjs --output out.png
Use --dark for Discord - Matches the dark theme, looks native Auto-alignment - Numbers are right-aligned by default Column order - Use --columns to reorder or subset Long text - Will truncate with ellipsis to fit --max-width
Uses Sharp for PNG generation (same as chart-image) Generates SVG internally, converts to PNG No browser, no Puppeteer, no Canvas native deps Works on Fly.io, Docker, any Node.js environment
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.