Passive journaling skill that scans daily conversations from ALL session paths (main, agents, cron) via cron to generate markdown journals using semantic und...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install phoenixclaw或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install phoenixclaw⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/phoenixclaw/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: phoenixclaw description: | Passive journaling skill that scans daily conversations from ALL session paths (main, agents, cron) via cron to generate markdown journals using semantic understanding.
Use when: - User requests journaling ("Show me my journal", "What did I do today?") - User asks for pattern analysis ("Analyze my patterns", "How am I doing?") - User requests summaries ("Generate weekly/monthly summary") metadata: version: 0.0.19 ---
PhoenixClaw automatically distills daily conversations into meaningful reflections using semantic intelligence.
Automatically identifies journal-worthy moments, patterns, and growth opportunities.
> [!critical] MANDATORY: Complete Workflow Execution > This 9-step workflow MUST be executed in full regardless of invocation method: > - Cron execution (10 PM nightly) > - Manual invocation ("Show me my journal", "Generate today's journal", etc.) > - Regeneration requests ("Regenerate my journal", "Update today's entry") > > Never skip steps. Partial execution causes: > - Missing images (session logs not scanned) > - Missing finance data (Ledger plugin not triggered) > - Incomplete journals (plugins not executed)
PhoenixClaw follows a structured pipeline to ensure consistency and depth:
~/.phoenixclaw/config.yaml. If missing, initiate the onboarding flow defined in references/user-config.md. - Scan memory files (NEW): Read memory/YYYY-MM-DD.md and memory/YYYY-MM-DD-*.md files for manually recorded daily reflections. These files contain personal thoughts, emotions, and context that users explicitly ask the AI to remember via commands like "记一下" (remember this). CRITICAL: Do not skip these files - they contain explicit user reflections that session logs may miss. - Scan session logs: Call memory_get for the current day's memory, then CRITICAL: Scan ALL raw session logs and filter by message timestamp. Session files are often split across multiple files. Do NOT classify images by session file mtime: ```bash # Read all session logs from ALL known OpenClaw locations, then filter by per-message timestamp # Use timezone-aware epoch range to avoid UTC/local-day mismatches. TARGET_DAY="$(date +%Y-%m-%d)" TARGET_TZ="${TARGET_TZ:-Asia/Shanghai}" read START_EPOCH END_EPOCH < <( python3 - <<'PY' "$TARGET_DAY" "$TARGET_TZ" from datetime import datetime, timedelta from zoneinfo import ZoneInfo import sys
day, tz = sys.argv[1], sys.argv[2] start = datetime.strptime(day, "%Y-%m-%d").replace(tzinfo=ZoneInfo(tz)) end = start + timedelta(days=1) print(int(start.timestamp()), int(end.timestamp())) PY )
# Recursively scan all session directories (multi-agent architecture support) for dir in "$HOME/.openclaw/sessions" \ "$HOME/.openclaw/agents" \ "$HOME/.openclaw/cron/runs" \ "$HOME/.agent/sessions"; do [ -d "$dir" ] || continue find "$dir" -type f -name "*.jsonl" -print0 done | xargs -0 jq -cr --argjson start "$START_EPOCH" --argjson end "$END_EPOCH" ' (.timestamp // .created_at // empty) as $ts | ($ts | split(".")[0] + "Z" | fromdateiso8601?) as $epoch | select($epoch != null and $epoch >= $start and $epoch < $end) ' ``` Read all matching files regardless of their numeric naming (e.g., file_22, file_23 may be earlier in name but still contain today's messages). - EXTRACT IMAGES FROM SESSION LOGS: Session logs contain type: "image" entries with file paths. You MUST: 1. Find all image entries (e.g., "type":"image") 2. Keep only entries where message timestamp is in the target date range 3. Extract the file_path or url fields 4. Copy files into assets/YYYY-MM-DD/ 5. Rename with descriptive names when possible - Why session logs are mandatory: memory_get returns text only. Image metadata, photo references, and media attachments are only available in session logs. Skipping session logs = missing all photos. - Activity signal quality: Do not treat heartbeat/cron system noise as user activity. Extract user/assistant conversational content and media events first, then classify moments. - FILTER HEARTBEAT MESSAGES (CRITICAL): Session logs contain system heartbeat messages that MUST be excluded from journaling. When scanning messages, SKIP any message matching these criteria: 1. User heartbeat prompts: Messages containing "Read HEARTBEAT.md" AND "reply HEARTBEAT_OK" 2. Assistant heartbeat responses: Messages containing ONLY "HEARTBEAT_OK" (with optional leading/trailing whitespace) 3. Cron system messages: Messages with role "system" or "cron" containing job execution summaries (e.g., "Cron job completed", "A cron job")
Example jq filter to exclude heartbeats: ```jq # Exclude heartbeat messages | select( (.message.content? | type == "array" and (.message.content | map(.text?) | join("") | test("Read HEARTBEAT\.md"; "i") | not)) and (.message.content? | type == "array" and (.message.content | map(.text?) | join("") | test("^\\sHEARTBEAT_OK\\s$"; "i") | not)) ) ``` - Edge case - Midnight boundary: For late-night activity that spans midnight, expand the timestamp range to include spillover windows (for example, previous day 23:00-24:00) and still filter per-message by timestamp. - Merge sources: Combine content from both memory files and session logs. Memory files capture explicit user reflections; session logs capture conversational flow and media. Use both to build complete context. - Fallback: If memory is sparse, reconstruct context from session logs, then update memory so future runs use the enriched memory. Incorporate historical context via memory_search (skip if embeddings unavailable)
references/media-handling.md for photo processing. This step generates the moments data structure that plugins depend on.Image Processing (CRITICAL): - For each extracted image, generate descriptive alt-text via Vision Analysis - Categorize images (food, selfie, screenshot, document, etc.)
Filter Finance Screenshots (NEW): Payment screenshots (WeChat Pay, Alipay, etc.) should NOT be included in the journal narrative. These are tool images, not life moments.
Detection criteria (check any): 1. OCR keywords: "支付成功", "支付完成", "微信支付", "支付宝", "订单号", "交易单号", "¥" + amount 2. Context clues: Image sent with nearby text containing "记账", "支付", "付款", "转账" 3. Visual patterns: Standard payment app UI layouts (green WeChat, blue Alipay)
Handling rules: - Mark as finance_screenshot type - Route to Ledger plugin (if enabled) for transaction recording - EXCLUDE from journal main narrative unless explicitly described as part of a life moment (e.g., "今天请朋友吃饭" with payment screenshot) - Never include raw payment screenshots in daily journal images section
- Match images to moments (e.g., breakfast photo → breakfast moment) - Store image metadata with moments for journal embedding
references/skill-recommendations.md....
安装 phoenixclaw 后,可以对 AI 说这些话来触发它
Help me get started with phoenixclaw
Explains what phoenixclaw does, walks through the setup, and runs a quick demo based on your current project
Use phoenixclaw to passive journaling skill that scans daily conversations from ALL se...
Invokes phoenixclaw with the right parameters and returns the result directly in the conversation
What can I do with phoenixclaw in my developer & devops workflow?
Lists the top use cases for phoenixclaw, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/phoenixclaw/ 目录(个人级,所有项目可用),或 .claude/skills/phoenixclaw/(项目级)。重启 AI 客户端后,用 /phoenixclaw 主动调用,或让 AI 根据上下文自动发现并使用。
phoenixclaw 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
phoenixclaw 可免费安装使用。请查阅仓库了解许可证信息。
Passive journaling skill that scans daily conversations from ALL session paths (main, agents, cron) via cron to generate markdown journals using semantic und...
phoenixclaw 属于「Developer & DevOps」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my developer & devops tasks using phoenixclaw
Identifies repetitive steps in your workflow and sets up phoenixclaw to handle them automatically