skills$openclaw/table-image-generator
dannyshmueli8.2k

by dannyshmueli

table-image-generator – OpenClaw Skill

table-image-generator is an OpenClaw Skills integration for coding workflows. Generate clean table images from data. Perfect for Discord/Telegram where ASCII tables look broken. Supports dark/light mode, custom styling, and auto-sizing. No Puppeteer required. Companion to chart-image skill.

8.2k stars9.9k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nametable-image-generator
descriptionGenerate clean table images from data. Perfect for Discord/Telegram where ASCII tables look broken. Supports dark/light mode, custom styling, and auto-sizing. No Puppeteer required. Companion to chart-image skill. OpenClaw Skills integration.
ownerdannyshmueli
repositorydannyshmueli/table-image-generator
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @dannyshmueli/table-image-generator
last updatedFeb 7, 2026

Maintainer

dannyshmueli

dannyshmueli

Maintains table-image-generator in the OpenClaw Skills directory.

View GitHub profile
File Explorer
8 files
.
scripts
discord-wrap.mjs
5.3 KB
package-lock.json
16.6 KB
package.json
104 B
table.mjs
10.0 KB
_meta.json
290 B
README.md
1.5 KB
SKILL.md
3.5 KB
SKILL.md

name: table-image-generator version: 1.1.1 description: Generate clean table images from data. Perfect for Discord/Telegram where ASCII tables look broken. Supports dark/light mode, custom styling, and auto-sizing. No Puppeteer required. Companion to chart-image skill. author: dannyshmueli provides:

  • capability: table-rendering methods: [tableImage]

Table Image Generator

Generate PNG table images from JSON data. Perfect for messaging platforms where ASCII tables break.

Why This Skill?

  • 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

Setup (one-time)

cd /data/clawd/skills/table-image/scripts && npm install

Quick Usage

# Simple table
node /data/clawd/skills/table-image/scripts/table.mjs \
  --data '[{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}]' \
  --output table.png

# With title and dark mode
node table.mjs \
  --data '[{"Item":"Coffee","Price":"$4.50"},{"Item":"Tea","Price":"$3.00"}]' \
  --title "Menu" \
  --dark \
  --output menu.png

Options

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

Examples

Basic Table

node table.mjs \
  --data '[{"Name":"Alice","Age":30,"City":"NYC"},{"Name":"Bob","Age":25,"City":"LA"}]' \
  --output people.png

Custom Columns & Headers

node table.mjs \
  --data '[{"first_name":"Alice","score":95,"date":"2024-01"}]' \
  --columns "first_name,score" \
  --headers "Name,Score" \
  --output scores.png

Right-Align Numbers

node table.mjs \
  --data '[{"Item":"Coffee","Price":4.50},{"Item":"Tea","Price":3.00}]' \
  --align "l,r" \
  --output prices.png

Dark Mode for Discord

node table.mjs \
  --data '[{"Symbol":"AAPL","Change":"+2.5%"},{"Symbol":"GOOGL","Change":"-1.2%"}]' \
  --title "Market Watch" \
  --dark \
  --output stocks.png

Compact Mode

node table.mjs \
  --data '[...]' \
  --compact \
  --font-size 12 \
  --output small-table.png

Input Formats

JSON Array (default)

--data '[{"col1":"a","col2":"b"},{"col1":"c","col2":"d"}]'

Pipe from stdin

echo '[{"Name":"Test"}]' | node table.mjs --output out.png

From file

cat data.json | node table.mjs --output out.png

Tips

  1. Use --dark for Discord - Matches the dark theme, looks native
  2. Auto-alignment - Numbers are right-aligned by default
  3. Column order - Use --columns to reorder or subset
  4. Long text - Will truncate with ellipsis to fit --max-width

Technical Notes

  • 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
README.md

Table Image Generator 📋

Generate clean PNG table images from JSON data. Perfect for messaging platforms where ASCII tables break.

Why This?

  • 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

Installation

npm install

Usage

# Simple table
node scripts/table.mjs \
  --data '[{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}]' \
  --output table.png

# With title and dark mode
node scripts/table.mjs \
  --data '[{"Item":"Coffee","Price":"$4.50"},{"Item":"Tea","Price":"$3.00"}]' \
  --title "Menu" \
  --dark \
  --output menu.png

Options

OptionDescriptionDefault
--dataJSON array of row objectsrequired
--outputOutput file pathtable.png
--titleTable titlenone
--darkDark mode (Discord-style)false
--font-sizeBase font size14
--paddingCell padding12
--max-widthMax table width800

ClawHub

Install via ClawHub:

clawhub install table-image-generator

License

MIT

RTL Support (v1.1.0)

Auto-detects Hebrew, Arabic, and other RTL scripts:

node scripts/table.mjs \
  --data '[{"שם":"דני","גיל":28,"עיר":"תל אביב"}]' \
  --dark --output hebrew.png

Or force RTL manually with --rtl flag.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install table-image-generator?

Run openclaw add @dannyshmueli/table-image-generator in your terminal. This installs table-image-generator into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/dannyshmueli/table-image-generator. Review commits and README documentation before installing.