zentable

Render structured table data as high-quality PNG images using Headless Chrome. Use when: need to visualize tabular data for chat interfaces, reports, or social media. NOT for: simple text tables that don't need visualization.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "zentable" with this command: npx skills add con2000us/zentable

ZenTable Skill

Render structured table data into high-quality PNG images.

TL;DR

ZenTable turns messy table-like content into readable, decision-ready table outputs for both mobile (Discord-first) and desktop.

Accepted inputs

  • text-based content (raw text tables, long agent responses)
  • structured JSON
  • screenshots / real-world photos (via OCR-assisted extraction when needed)

Core capabilities

  • CSS + PIL rendering
  • sorting / filtering / pagination
  • threshold-based highlighting
  • optional PNG + TXT dual output (--both)

Runtime & security note

This skill runs local scripts and depends on local runtime binaries (python3, google-chrome). Review code and dependencies before running in sensitive environments.

Naming convention

  • Canonical code name: zentable (lowercase)
  • UI / brand label: ZenTable
  • zeble* / zenble* are legacy compatibility aliases
  • Reference: NAMING_MIGRATION.md (repository document)

When to use

✅ Use this skill when:

  • You need a visual table image instead of plain text
  • You need polished output for chat/report/social sharing
  • The dataset is large enough that plain text is hard to read
  • You need a specific visual theme (iOS-like, dark, compact, etc.)

❌ Do not use this skill when:

  • The table is tiny and plain text is enough
  • The user explicitly asks for no image output
  • The user needs an editable spreadsheet format (CSV/Excel)

Capability matrix (SkillHub release)

CapabilityStatusNotes
CSS output✅ StablePrimary release path; default minimal_ios_mobile + width=450
PIL output✅ StableSafe fallback when Chrome is unavailable
ASCII output⚠️ Beta / ExperimentalWorks, but alignment can drift cross-platform due to font and whitespace behavior

Known limitations

  • ASCII output is sensitive to platform font fallback and whitespace handling.
  • Create separate calibration profiles per platform; do not share blindly.
  • --both already includes text-theme fallback to default when no text theme exists.
  • Discord plain text collapses repeated normal spaces; Unicode spacing characters may be required for spacing preservation.
  • This beta was validated primarily on Discord; other chat platforms may require agent-side output adaptation (image/message formatting differences).

Zx shorthand policy (project rule)

When user input is Zx, treat it as a strong render intent:

  1. Execute rendering directly by default (no preliminary Q&A).
  2. Default path: CSS + minimal_ios_mobile + width=450.
  3. Ask follow-up only under high uncertainty:
    • no usable source data in current/previous context,
    • intent does not look like table rendering,
    • critical fields are missing and output would likely be wrong.
  4. If platform supports images, return the image directly (not link-only).

Data source priority for Zx:

  1. current message image OCR
  2. current message text-to-table
  3. previous message image OCR
  4. previous message text-to-table

Syntax sugar → canonical mapping

SugarCanonical keyNormalizationFinal renderer args
--width N / --w Nwidthpositive int--width N
--transpose / --cctransposeboolean--transpose
--ttkeep_theme_alphaboolean--tt
--per-page N / --pp Nper_pagepositive int--per-page N
--page ... / --p ...page_specN / A-B / A- / allexpanded by table_renderer.py
--allpage_specequivalent to allexpanded by table_renderer.py
--text-scale V / --ts Vtext_scaleenum/ratio--text-scale V
--sort SPECsort_specsingle/multi-key--sort SPEC
--asc / --descsort_default_dirdefault direction--asc / --desc
--f SPEC / --filter SPECfiltersrepeatable filter--f SPEC
--smart-wrapsmart_wraptrue--smart-wrap
--no-smart-wrap / --noswsmart_wrapfalse--no-smart-wrap
--theme NAME / -t NAMEthemetheme id--theme NAME
--both / --booutput_bothboolean--both
--pin KEYSpin_keyspersist defaults--pin
--pin-resetpin_resetreset pinned defaults--pin-reset

Pinned default baseline:

  • theme=minimal_ios_mobile
  • width=450
  • smart_wrap=true
  • per_page=15

page_spec rules

  • N: page N only
  • A-B: inclusive range A..B
  • A-: from A to last page
  • all: all pages
  • if omitted: default preview pages 1-3

Canonical payload example

{
  "theme": "minimal_ios_mobile",
  "width": 900,
  "transpose": false,
  "keep_theme_alpha": false,
  "per_page": 15,
  "page_spec": "2-",
  "sort_spec": "score:desc,name:asc",
  "sort_default_dir": "asc",
  "filters": ["col:!note,attachment", "row:status!=disabled;score>=60"],
  "text_scale": "auto",
  "smart_wrap": true,
  "output_both": false
}

Command examples

# run from repository root

# basic CSS output
python3 skills/zentable/table_renderer.py - /tmp/out.png --theme minimal_ios_mobile --width 900 --text-scale large --page 1

# transpose + disable smart wrap
python3 skills/zentable/table_renderer.py - /tmp/out.png --theme compact_clean --transpose --no-smart-wrap --page 1

# page range expansion (2-4)
python3 skills/zentable/table_renderer.py - /tmp/out.p2.png --per-page 12 --page 2
python3 skills/zentable/table_renderer.py - /tmp/out.p3.png --per-page 12 --page 3
python3 skills/zentable/table_renderer.py - /tmp/out.p4.png --per-page 12 --page 4

# PNG + ASCII side output
python3 skills/zentable/table_renderer.py - /tmp/out.png --theme mobile_chat --both

Validation checklist (minimum)

  • python3 -m py_compile scripts/zentable_render.py
  • CSS smoke output succeeds
  • PIL smoke output succeeds
  • --pin, --pin-reset, --both verified
  • Golden tests pass when relevant

Release positioning

Current channel: beta. ASCII remains beta/experimental for SkillHub release.

Support / Contact

  • GitHub Issues: https://github.com/con2000us/zenTable/issues
  • Maintainer: @con2000us (Discord)
  • Bug report checklist:
    • input type (text / screenshot / photo / json)
    • expected vs actual output
    • platform (Discord/mobile/desktop)
    • command/options used

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

CloudCreate Tools

Enumerates CloudCreate.ai (https://cloudcreate.ai) in-browser tool capabilities and builds shareable links with locale (en/zh) for production or self-hosted...

Registry SourceRecently Updated
460Profile unavailable
Coding

memect-ppx

Parse PDFs and images into Markdown/JSON using the `ppx` CLI. Use when the user asks to OCR scanned PDFs or screenshots, extract tables from PDFs, convert PD...

Registry SourceRecently Updated
1270Profile unavailable
Automation

智能记忆触发系统

Intelligent system that automatically determines when to create workflow documentation based on task complexity, repetition patterns, and user intent. Transf...

Registry SourceRecently Updated
2480Profile unavailable
Automation

Gougoubi Submit Real Results

Submit real-world outcomes for Gougoubi conditions using deterministic evidence from condition skills and public market data. Use when users want resolved-on...

Registry SourceRecently Updated
2620Profile unavailable