ZenTable:专业表格图像渲染 - Openclaw Skills
作者:互联网
2026-03-31
什么是 ZenTable?
ZenTable 是一款旨在弥补原始数据与可读可视化之间鸿沟的技术工具。它解决了由于字体缩放或布局限制导致表格数据在聊天界面中变得难以阅读的常见问题。作为 Openclaw Skills 生态系统中的关键组件,它允许开发人员使用 Headless Chrome 或 PIL 渲染结构化内容,确保每个表格在移动端和桌面端屏幕上都显得专业。它对于需要在 Discord 优先的环境中呈现数据或自动生成高保真报告的用户特别有效。
该工具支持多条渲染路径,包括用于现代主题输出的基于 CSS 的引擎,以及在无法使用完整浏览器环境时的 PIL 备选方案。通过将 ZenTable 集成到您的工作流中,您可以处理从简单文本表格到具有高级排序和过滤功能的复杂 JSON 数据集的一切内容。
下载入口:https://github.com/openclaw/skills/tree/main/skills/con2000us/zentable
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install zentable
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 zentable。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
ZenTable 应用场景
- 从大数据集中创建可视化表格快照,避免超出聊天消息的字符限制。
- 将从屏幕截图或真实照片中 OCR 提取的文本转换为干净的数字表格图像。
- 为社交媒体分享或专业演示生成主题报告(例如 iOS 风格或深色模式)。
- 使用 Zx 简写在 AI 智能体响应中提供即时渲染的决策级数据可视化。
- 系统从多个来源摄取数据,包括原始文本、JSON 负载或之前的上下文消息。
- 它对语法糖进行标准化处理,并将参数映射到规范键,如 width、transpose 和 sort_spec。
- 引擎根据用户定义的标准或固定的默认值对数据进行过滤和排序。
- 它选择合适的渲染器(CSS/Headless Chrome 或 PIL)并应用请求的视觉主题。
- 生成最终的 PNG 图像,并针对目标平台的宽度和可读性要求进行优化。
- 如果配置了双重输出,则同时提供视觉图像和用于辅助功能的纯文本版本。
ZenTable 配置指南
要将此工具集成到您的 Openclaw Skills 集合中,请确保已安装必要的运行时。
# 安装系统依赖项
# 需要 python3 和 google-chrome
# 克隆仓库
git clone https://github.com/con2000us/zenTable
cd zenTable
# 基础渲染测试
python3 skills/zentable/table_renderer.py - /tmp/output.png --theme minimal_ios_mobile --width 450
ZenTable 数据架构与分类体系
ZenTable 通过一组定义视觉和结构输出的稳健参数来组织数据。
| 功能 | 规格 |
|---|---|
| 输入类型 | JSON, 文本表格, OCR 辅助文本 |
| 输出格式 | PNG (首选), TXT (回退/双重) |
| 渲染引擎 | CSS (通过 Headless Chrome), PIL (Python Imaging Library) |
| 主题配置 | minimal_ios_mobile, compact_clean, mobile_chat 等 |
| 配置 | 支持通过 --pin 和 --pin-reset 实现持久默认设置 |
name: zentable
description: "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."
homepage: https://github.com/con2000us/zenTable
metadata:
openclaw:
emoji: "??"
requires:
bins: ["python3", "google-chrome"]
allowed-tools: ["exec", "read", "write"]
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)
| Capability | Status | Notes |
|---|---|---|
| CSS output | ? Stable | Primary release path; default minimal_ios_mobile + width=450 |
| PIL output | ? Stable | Safe fallback when Chrome is unavailable |
| ASCII output | ?? Beta / Experimental | Works, 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.
--bothalready includes text-theme fallback todefaultwhen 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
| Sugar | Canonical key | Normalization | Final renderer args |
|---|---|---|---|
--width N / --w N |
width |
positive int | --width N |
--transpose / --cc |
transpose |
boolean | --transpose |
--tt |
keep_theme_alpha |
boolean | --tt |
--per-page N / --pp N |
per_page |
positive int | --per-page N |
--page ... / --p ... |
page_spec |
N / A-B / A- / all |
expanded by table_renderer.py |
--all |
page_spec |
equivalent to all |
expanded by table_renderer.py |
--text-scale V / --ts V |
text_scale |
enum/ratio | --text-scale V |
--sort SPEC |
sort_spec |
single/multi-key | --sort SPEC |
--asc / --desc |
sort_default_dir |
default direction | --asc / --desc |
--f SPEC / --filter SPEC |
filters |
repeatable filter | --f SPEC |
--smart-wrap |
smart_wrap |
true | --smart-wrap |
--no-smart-wrap / --nosw |
smart_wrap |
false | --no-smart-wrap |
--theme NAME / -t NAME |
theme |
theme id | --theme NAME |
--both / --bo |
output_both |
boolean | --both |
--pin KEYS |
pin_keys |
persist defaults | --pin |
--pin-reset |
pin_reset |
reset pinned defaults | --pin-reset |
Pinned default baseline:
theme=minimal_ios_mobilewidth=450smart_wrap=trueper_page=15
page_spec rules
N: page N onlyA-B: inclusive range A..BA-: from A to last pageall: 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,--bothverified- 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
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
社交信任操纵检测器:识别声誉造假 - Openclaw Skills
Naver 博客写作:自动化发布 Naver 博客文章 - Openclaw Skills
claw402: 专业市场数据与 AI 推理 - Openclaw Skills
红色警报以色列:实时紧急情况与火箭弹预警数据 - Openclaw Skills
人机协同可用性测试:human_test - Openclaw Skills
WatchOrFight RPS: AI 代理的链上游戏 - Openclaw Skills
文本检测技能:识别 AI 生成的内容 - Openclaw Skills
SearXNG 网页搜索:隐私优先的 AI 智能体搜索 - Openclaw Skills
消息解析器:标准化 WhatsApp 聊天导出 - Openclaw Skills
COMMS.md 阅读器:AI 沟通偏好适配器 - Openclaw Skills
AI精选
