# Send zenTable to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "zentable",
    "name": "zenTable",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/con2000us/zentable",
    "canonicalUrl": "https://clawhub.ai/con2000us/zentable",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/zentable",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zentable",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "CHANGELOG.md",
      "DEPLOYMENT.md",
      "INSTALL.md",
      "README.md",
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "zentable",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T22:48:49.936Z",
      "expiresAt": "2026-05-19T22:48:49.936Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zentable",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=zentable",
        "contentDisposition": "attachment; filename=\"zentable-0.9.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "zentable"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/zentable"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/zentable",
    "downloadUrl": "https://openagent3.xyz/downloads/zentable",
    "agentUrl": "https://openagent3.xyz/skills/zentable/agent",
    "manifestUrl": "https://openagent3.xyz/skills/zentable/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/zentable/agent.md"
  }
}
```
## Documentation

### 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)

CapabilityStatusNotesCSS output✅ StablePrimary release path; default minimal_ios_mobile + width=450PIL output✅ StableSafe fallback when Chrome is unavailableASCII 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:

Execute rendering directly by default (no preliminary Q&A).
Default path: CSS + minimal_ios_mobile + width=450.
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.


If platform supports images, return the image directly (not link-only).

Data source priority for Zx:

current message image OCR
current message text-to-table
previous message image OCR
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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: con2000us
- Version: 0.9.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-12T22:48:49.936Z
- Expires at: 2026-05-19T22:48:49.936Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/zentable)
- [Send to Agent page](https://openagent3.xyz/skills/zentable/agent)
- [JSON manifest](https://openagent3.xyz/skills/zentable/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/zentable/agent.md)
- [Download page](https://openagent3.xyz/downloads/zentable)