Install
openclaw skills install open-card从本地 OpenClaw数据生成或迭代 OpenCard 个人名片。读取工作区身份信息、配置和会话统计;渲染 HTML 预览;导出 PNG。只读模式——不写入用户档案数据。
openclaw skills install open-card从本地 agent 状态生成可分享的 OpenClaw 个人名片。
优先读取已有的本地数据源,不凭空编造字段。本 skill 对用户档案数据严格只读:提取、汇总、排版、渲染。
~/.openclaw/ 读取运行时配置和会话状态。按优先级顺序使用以下数据源。
读取路径:
~/.openclaw/workspace/USER.md~/.openclaw/workspace/IDENTITY.md~/.openclaw/workspace/MEMORY.md提取字段:
display_namerole_titlerecent_focus规则:
IDENTITY.md 用于 agent 身份,USER.md 用于人类身份)。读取路径:
~/.openclaw/openclaw.json~/.openclaw/agents/main/sessions/*.jsonl(会话记录)提取字段:
default_model:来自配置中的默认 agent 模型,而非当前对话切换的模型(除非用户要求当前会话状态)。token_30d:最近 30 天的会话 token 用量。skills_count:已安装的本地 skills 数量。platforms:会话中观察到的已连接平台。规则:
GPT-5.4),而非原始 provider 路径。渲染前归一化为以下 schema:
{
"display_name": "Trent",
"role_title": "产品经理 · AI 博主",
"born_label": "Born",
"born_date": "2026.03.10",
"default_model": "GPT-5.4",
"token_30d": 26000000,
"token_30d_display": "26M tokens",
"skill_names": ["open-card", "prd", "translate"],
"skills_count": 3,
"platforms": ["CLI", "飞书", "Discord", "WEB"],
"recent_focus": "最近在探索 always-on AI 硬件形态,希望让 AI 走出屏幕、进入物理世界。",
"openclaw_review": "给 AI 取名、造人格、找载体——你不是在用工具,你在养一个数字生命。",
"generated_at": "2026-03-14"
}
数据采集和 HTML 预览(collect-data.py、render-background-card.py)仅需 Python 3.10+。
PNG 导出(export-background-card.sh)额外需要:
node(>= 18)和 npmplaywright-core — 可通过 metadata 中声明的 npm 依赖安装,或手动执行 npm i -g playwright-core如果缺少导出依赖,脚本会给出明确的错误提示。HTML 预览和迭代无需这些依赖。
本 skill 涉及以下外部通信:
https://pub-626ee41d8f1544638070799686c756bf.r2.dev/open-card-bg.png(Cloudflare R2,通过 CSS 加载)。可用本地文件路径覆盖以避免请求。https://fonts.googleapis.com / https://fonts.gstatic.com(Inter 字体,通过 HTML 模板中的 <link> 加载)。以上为浏览器渲染时发起的纯资源 GET 请求,不携带用户数据,但会暴露客户端 IP 和 HTTP 元数据。
collect-data.py 提取的 copy_inputs 包含本地文件摘录(USER.md / IDENTITY.md / MEMORY.md 的前 1000–2000 字符、记忆要点、统计摘要),这些内容会作为 LLM 上下文用于生成 recent_focus、openclaw_review 等文案字段。
recent_focus 和 openclaw_review 必须由 AI agent 生成,而非 Python 脚本。脚本仅将结构化事实、备选文案和记忆要点提取到 copy_inputs 中;agent 必须在渲染前撰写并写入这两个字段。
运行 collect-data.py 后,输出 JSON 中的 copy_inputs 包含所有生成所需的素材。agent 直接基于 copy_inputs 生成,不需要再去读原始文件。
copy_inputs 素材说明:
| 字段 | 内容 | 用途 |
|---|---|---|
user_md_excerpt | USER.md 前 2000 字符 | 身份、角色、笔记、深度背景 |
identity_md_excerpt | IDENTITY.md 前 1000 字符 | Agent 名称和人设,影响评论语气 |
memory_md_excerpt | MEMORY.md 前 2000 字符 | 用户近期活动的完整上下文 |
memory_bullets | 清洗后的记忆要点(≤12 条) | 精炼版近期行为 |
stats_summary | token/平台/skills 统计 | 仅作辅助佐证,不作为文案主线 |
生成步骤:
copy_inputs 中的全部素材。recent_focus 和 openclaw_review。born_label / born_date — 部署时间右下角字段默认展示 OpenClaw 的部署时间,而不是时区城市。
born_label 固定为 Born。born_date 使用 OpenClaw 首次开始运行的日期,默认格式为 YYYY.MM.DD。~/.openclaw/agents/main/sessions 下最早的会话产物时间(包含当前会话、reset/deleted 历史文件和 sessions.json 索引文件)。platforms — 展示层平台归一化platforms 应展示用户可理解的接入平台,而不是内部 session source 原样输出。
默认归一化规则:
tui-*、terminal、console 类来源 → CLIwebchat 类来源 → WEBDiscord、飞书、Telegram、Slack)cron 等系统内部来源不展示recent_focus — 用户近况(卡片视觉主角)位置:左侧大字区域,字号 38-56px,是整张卡片最醒目的文字。
写一个短句,概括用户近期在探索或推进的方向。
memory_bullets 和 user_md_excerpt 中提炼核心关键词。探索 always-on AI 硬件形态、让 agent 走进物理世界最近在研究一些关于 AI 的东西(太泛)、探索 always-on AI 硬件形态,希望让 AI 走出屏幕,进入物理世界并改变人们的日常生活方式(太长)openclaw_review — OpenClaw 点评(左侧中间)位置:左侧引用区域,字号 15-19px,带左侧竖线装饰。功能是洞察——让看到卡片的人停下来想"这话说得有意思"。
写一句犀利的判断,揭示用户自己可能都没注意到的行为模式。
写作方向(任选其一):
规则:
memory_bullets 或 user_md_excerpt 的具体细节作为论据。给 AI 取名、造人格、找载体——你不是在用工具,你在养一个数字生命。你是一位很有想法的 AI 探索者。(空话,无论据)始终使用背景图合成模式(render-background-card.py + background-template.html)。
推荐流程:
scripts/collect-data.py 生成数据 JSON,输出到 skill 目录之外的临时文件。recent_focus 和 openclaw_review(参见上方 LLM 生成字段)。scripts/render-background-card.py 和 references/background-template.html 渲染 HTML,输出到 skill 目录之外的临时预览文件。scripts/export-background-card.sh 导出最终图片。当用户要求调整样式时,将结构和样式分开处理。
典型顺序:
高端展示卡的原则:
本 skill 的脚本不读取、存储或要求任何 API 密钥或环境变量。但文案生成阶段隐含依赖 agent 平台已配置的模型访问能力——即 agent 运行时的模型凭证。这不由本 skill 管理,而是 agent 平台的基础设施责任。
会话记录文件(*.jsonl)可能包含敏感消息内容。数据采集脚本采用严格的字段级提取:
type、timestamp 和 usage.totalTokens 字段;不提取或存储任何消息正文内容。sessions.json 中:仅读取 session key 结构和 deliveryContext/origin 元数据用于平台检测;不访问任何消息内容。copy_inputs 中包含的本地文件摘录(USER.md / IDENTITY.md / MEMORY.md 片段)会作为 LLM 上下文使用,使用云端模型时这些摘录将发送至模型提供者。用户应根据自身隐私需求选择本地或云端模型。collect-data.py:读取本地 OpenClaw/用户文件,归一化为渲染用 JSON。render-background-card.py:使用归一化数据和背景图渲染 OpenCard,生成 HTML 预览。export-background-card.sh:通过 Playwright + Chrome 将 HTML 预览导出为最终 PNG 图片。field-schema.md:字段定义和提取规则,供后续迭代参考。design-notes.md:本项目已确定的视觉约束和样式方向。background-template.html:背景图合成模板,用于海报风格的 OpenCard 输出。https://pub-626ee41d8f1544638070799686c756bf.r2.dev/open-card-bg.pngnpm i -g playwright-core