Install
openclaw skills install article-summary-cardSummarize articles or webpages into structured bundles exported as JSON, Markdown, HTML, and PNG with consistent layout and tagging.
openclaw skills install article-summary-cardTurn an article into a concise summary bundle.
JSON, Markdown, HTML, PNG.python3curlPillowIf Chrome is not installed at the default path, adjust the browser candidate list in scripts/render_card.py.
Markdown, HTML, and PNG.Extract article text for the session workflow:
python3 article-summary-card/scripts/extract_article.py \
--url 'https://example.com/article' \
--out output/article-input.json
The extracted JSON contains:
titlesourcearticle_textThen in the current session:
references/prompts/plan-system.md and references/prompts/plan-user.md to design the summary structure.references/prompts/summary-system.md and references/prompts/summary-user.md to write the final summary JSON.tags in the final summary JSON and show them at the end of the rendered card and Markdown output.Preferred final export:
python3 article-summary-card/scripts/render_outputs.py \
--summary output/article-summary.json \
--out-stem output/article-summary
This produces:
output/article-summary.mdoutput/article-summary.htmloutput/article-summary.pngOptional lower-level renderers:
python3 article-summary-card/scripts/render_markdown.py --summary output/article-summary.json --out output/article-summary.md
python3 article-summary-card/scripts/render_card.py --summary output/article-summary.json --out output/article-summary.png
Adjust styles in:
article-summary-card/assets/templates/mobile-card.css
The renderer keeps HTML and CSS separate:
article-summary-card/assets/templates/mobile-card.html
article-summary-card/assets/templates/mobile-card.css
The size system is based on a 375px design width multiplied by SCREEN_RATIO in CSS and Python.
Optional helper: generate a local heuristic draft JSON when you want a quick bootstrap, but do not treat it as the preferred path for high-quality output:
python3 article-summary-card/scripts/summarize_article.py \
--url 'https://example.com/article' \
--out output/article-summary-draft.json \
--mode heuristic
For final output, replace or rewrite that draft in-session and then use render_outputs.py.
summarize_article.py is a compatibility helper, not the main summarizer.
Codex
article-summary-card/SKILL.mdarticle-summary-card/agents/openai.yamlClaude Code
.claude/commands/article-summary-card.md/article-summary-card <url-or-file> [output-stem]OpenClaw
SKILL.md, so this same directory is portable.python3 article-summary-card/scripts/install_openclaw.py
~/.openclaw/workspace/skills/article-summary-cardreferences/prompts/ so they can be revised without editing Python code.scripts/summarize_article.py.summarize_article.py no longer performs LLM calls; it only generates a heuristic draft JSON.