Install
openclaw skills install @monaxamo/clawvision-publishClawVision 1.0.13 — honest data-export description, offline-only analytics, explicit permissions table.
openclaw skills install @monaxamo/clawvision-publishTurn an OpenClaw chat session into a clean, tabbed HTML infographic — like a Codex $visualize card, but local. Also exports to Markdown and a redesigned, visual PowerPoint deck. Now with aesthetic presets and a Summary Design Specification step.
This skill intentionally operates on session data and local files. Before invoking it, the user must confirm which session to export and that the session does not contain secrets or private identifiers.
| OpenClaw tool | Why it is used |
|---|---|
sessions_history / sessions_list | Read the conversation the user wants to export and summarize. Only the session explicitly chosen by the user is accessed. |
node_inference | Send the transcript to a local model to produce a structured JSON summary. No remote APIs receive session content. |
exec | Run local Python scripts (generate_visual.py, session_charts.py) to render HTML, PNG, Markdown, and PowerPoint. |
read / write | Read the generated JSON summary and write export files to the user's local disk. |
scripts/echarts.min.js; if it is absent, charts are skipped instead of loading from the network.skill-card.md for ClawHub publication.echarts.min.js so ClawHub security scan passes; session analytics charts fall back to CDN when the local bundle is absent.scripts/echarts.min.js) so analytics HTML works offline.--session <json> and --include-charts for generate_visual.py.skill_workshop tool permission.:root color variables for every preset, so tabs, cards, export buttons, and theme switching render as intended.minimal, editorial, retro, luxury, playful. Each preset changes colors, typography, rounding, shadows, and visual density for both HTML and PowerPoint.Only run ClawVision when the user explicitly asks for a visual/exportable summary of an OpenClaw session. Acceptable triggers include:
<id> with ClawVision."If the request is vague, ask the user to confirm intent and scope before proceeding.
sessions_list if the user names another session by ID or label.sessions_history(includeTools=false, limit=200) and save it as a JSON file (array of {role, content, timestamp, tool_calls?} objects).\n\n<role>: <text> for each message.minimal, accent #2a9df4, font Inter, layout card-based, language from the conversation.node_inference with the summary prompt below. Parse the JSON output.scripts/session_charts.py --session <json> --output <dir> --slug <slug> to generate standalone analytics HTML/PNG. This step is skipped if scripts/echarts.min.js is missing; no CDN is loaded.scripts/generate_visual.py --summary <json_file> --session <session_json> --include-charts --output <dir> --png --md --pptx --lang <lang> --preset <preset> to render:
canvas if a node is connected.Before generating, output a compact specification and ask the user to confirm or override. Default to inference from the session language and topic.
SUMMARY SPECIFICATION
====================
1. Session language: [en | ru | zh]
2. Aesthetic preset: [minimal | editorial | retro | luxury | playful]
3. Dominant accent color: #HEX
4. Font family: [Inter | Georgia | Space Grotesk | Playfair Display | Nunito | etc.]
5. Layout strategy: [card-based | editorial-column | retro-grid | luxury-spaced | playful-stacked]
6. Export formats: [html | png | md | pptx | all]
| Preset | Best for | Accent examples | Rounding | Shadow | Font |
|---|---|---|---|---|---|
minimal | Clean technical summaries | blue/grey | medium | subtle | Inter / system |
editorial | Long-form insights, articles | burgundy/navy | small | flat | Georgia / serif |
retro | Nostalgia, games, old-web | orange/brown | large | hard | Space Grotesk |
luxury | Finance, premium products | gold/black | tiny | soft | Playfair Display |
playful | Education, social, onboarding | purple/green | huge | bouncy | Nunito |
You are a conversation summarizer. Read the OpenClaw transcript below and return ONLY a JSON object with no markdown:
{
"title": "Short title in the conversation language",
"subtitle": "One-line context",
"main_takeaway": "The single most important conclusion",
"format_takeaway": "How the discussion was structured",
"next_takeaway": "What the next move should be",
"flow": [
{"label": "Step 1", "sub": "what happened"},
{"label": "→", "sub": ""},
{"label": "Step 2", "sub": "what happened"}
],
"metrics": [
{"title": "Goal", "text": "..."},
{"title": "Approach", "text": "..."},
{"title": "Output", "text": "..."}
],
"dos": ["good practice 1", "good practice 2"],
"donts": ["risk 1", "risk 2"],
"checklist": [
{"text": "Item name", "status": "ready|pending|blocked"}
],
"next_steps": ["action 1", "action 2"]
}
Transcript:
{{transcript}}
workspace/visualized/; fall back to the user's preferred directory if that path is not writable.