Export Reply

Other

Save any agent reply or full conversation to a local file. Triggers on: 保存 / 导出 / save / export. Supports MD, TXT, HTML, PDF, DOCX. Two modes: verbatim or condensed bilingual summary. Remembers your last export settings for one-tap repeat.

Install

openclaw skills install export-reply

Export Reply 💾

Save any agent reply or full conversation to a local file.
Remembers your last export settings — repeat exports take one confirmation.

Highlights

📄 5 formatsMD · TXT · HTML · PDF · DOCX (or all at once)
✂️ 2 content modesVerbatim · Condensed bilingual summary
🧠 Preference memoryRecalls last scope / mode / format / path
🖨️ PDF with no extra setupUses Chrome headless automatically; falls back to fpdf2
🌐 Bilingual summariesChinese + English section headers and prose
Zero required depsMD / TXT / HTML work with python3 only

Usage

Just say 保存 / 导出 / save / export.
The agent asks all options in one message and infers what you already stated.
Next time: "Use same settings as last time? [yes / change]"

Install

clawhub install export-reply

Optional — better PDF / DOCX support:

pip3 install fpdf2 python-docx markdown

<!-- Agent instructions below. Not rendered on ClawHub. -->

Interaction Flow (MUST follow exactly)

Step 0 — Check saved preferences

Before asking anything, run:

python3 skills/export-reply/scripts/prefs.py --action get

Branch A — Preferences exist (output is JSON, not null): Show a single message:

上次你用的是:{scope} · {mode} · {format} → {path}({saved_at})
直接沿用这个方式,还是重新选?[好/是 = 沿用 | 改/新 = 重选]
  • User confirms (好/是/沿用/yes/ok or empty reply) → skip to Step 2 with saved prefs
  • User wants to change → show Step 1 prompt

Branch B — No preferences (output is null): Go directly to Step 1.

Step 1 — Ask all options in one message

Combine only the unknowns into one single message:

请确认导出选项:
📄 内容范围:仅当前回答 / 完整对话?
✂️ 内容模式:原文保留 / 精简摘要?
📁 格式:MD · TXT · HTML · PDF · DOCX · 全部?
💾 保存路径:默认 ~/Desktop/ 还是自定义?

Infer from trigger phrase — skip already-known fields:

User saysAlready known
"存成PDF到桌面"format=pdf, path=~/Desktop/
"把这个回答存下来"scope=reply
"导出摘要"mode=summary
"save everything as Word"scope=full, format=docx

Step 2 — Execute export

  1. Write content to temp file, then run:
python3 skills/export-reply/scripts/summarize_conversation.py \
  --input /tmp/export_raw.md \
  --output /tmp/export_staged.md \
  --mode {raw|summary} \
  --title "{TITLE}"

python3 skills/export-reply/scripts/export_reply.py \
  --file /tmp/export_staged.md \
  --format {fmt} \
  --output {path} \
  --title "{TITLE}"
  1. On success, save preferences:
python3 skills/export-reply/scripts/prefs.py --action set \
  --scope {full|reply} --mode {raw|summary} \
  --format {fmt} --path {path}
  1. Reply:
✅ 已保存:{full_path}({size} · {format})

Step 3 — Error handling

ErrorAction
PDF: no Chrome + no pip libsOffer HTML fallback; show pip3 install fpdf2
DOCX: no python-docxShow pip3 install python-docx; offer MD fallback
Permission deniedSuggest ~/Documents/ or ask for new path
Content too largeWarn but proceed; suggest summary mode

Content Modes

Raw (原文保留)

Verbatim, role-labeled:

## 用户
{user message}

## 助手
{agent reply}

Pass --mode raw.

Summary (精简摘要)

Bilingual condensed — every header and prose block must be Chinese + English.

  • Remove: greetings, filler, repeated clarifications, narration
  • Keep: core question, conclusions, code, decisions, action items
  • Headers (exact):
    • ## 核心问题 / Core Question
    • ## 结论 / Conclusions
    • ## 代码 / Code
    • ## 行动项 / Action Items
    • ## 关键决策 / Key Decisions
  • Prose: Chinese first, English below
  • Code: keep as-is, add bilingual caption above

Pass --mode summary.


Format Quick Reference

FormatZero-installNotes
mdBest for Obsidian, Git, developers
txtEmail, plain readers
htmlBrowser, shareable
pdf✅*Chrome headless → weasyprint → pdfkit → fpdf2
docxRequires pip3 install python-docx

Common Triggers → Inferred Defaults

User saysscopemodeformat
"保存这个回答"replyrawmd
"把对话存成PDF"fullrawpdf
"导出摘要到桌面"fullsummarymd
"save everything as Word"fullrawdocx
"export all formats"fullrawall

Preferences Script Reference

python3 skills/export-reply/scripts/prefs.py --action get    # read
python3 skills/export-reply/scripts/prefs.py --action set \
  --scope full --mode summary --format pdf --path ~/Desktop/  # save
python3 skills/export-reply/scripts/prefs.py --action clear  # reset

Stored at ~/.export_reply_prefs.json.


Related Skills

  • self-improving — Persist agent learnings permanently
  • ontology — Store structured knowledge from conversations