memory-sync

Scrape and analyze OpenClaw JSONL session logs to reconstruct and backfill agent memory files. Use when: (1) Memory appears incomplete after model switches, (2) Verifying memory coverage, (3) Reconstructing lost memory, (4) Automated daily memory sync via cron/heartbeat. Supports simple extraction and LLM-based narrative summaries with automatic secret sanitization.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "memory-sync" with this command: npx skills add mpesavento/memory-sync

Memory Sync

Tool for maintaining agent memory continuity across model switches with automatic secret sanitization.

Installation

Requires Python 3.11+ and click:

pip install click

# Optional: for direct API summarization (only if not using OpenClaw backend)
pip install openai

Quick Start

# Run directly from skill directory
python ~/.openclaw/skills/memory-sync/memory_sync.py compare

# Or create an alias for convenience
alias memory-sync="python ~/.openclaw/skills/memory-sync/memory_sync.py"

# Check for gaps
memory-sync compare

# Backfill today's memory (simple extraction - fast, no LLM)
memory-sync backfill --today

# Backfill with LLM narrative (uses OpenClaw's native model - no API key needed)
memory-sync backfill --today --summarize

# Backfill all missing
memory-sync backfill --all

Commands

CommandDescription
compareFind gaps between session logs and memory files
backfill --todayGenerate memory for current day
backfill --since YYYY-MM-DDBackfill from date to present
backfill --allBackfill all missing dates
backfill --incrementalBackfill only changed dates since last run
extractExtract conversations matching criteria
summarize --date YYYY-MM-DDGenerate LLM summary for a single day
transitionsList model transitions
validateCheck memory files for consistency issues
statsShow coverage statistics

Simple Extraction vs LLM Summarization

The backfill command supports two modes:

Simple Extraction (default, without --summarize):

  • Fast, no LLM or API calls needed
  • Extracts topics via keyword frequency analysis
  • Identifies key user questions and assistant responses
  • Detects decision markers from text patterns
  • Produces structured output with Topics, Key Exchanges, Decisions sections
  • With --preserve: Hand-written content is appended to the end of the new file
  • Best for: Quick backfills, initial setup, systems without LLM access

LLM Summarization (with --summarize) - Recommended:

  • Uses LLM to generate narrative summaries
  • Produces coherent 2-4 paragraph prose
  • Better context and insight extraction
  • With --preserve: Existing content is passed to the LLM with instructions to incorporate it into the new summary, maintaining temporal order and thematic structure
  • Best for: Daily automation, high-quality memory files

Recommended for regular use:

# Best quality: LLM summary that incorporates any existing notes
memory-sync backfill --today --summarize --preserve

Both modes automatically sanitize secrets before writing.

Common Workflows

Initial Setup

# Check what's missing
memory-sync compare

# Backfill everything (may take time)
memory-sync backfill --all

Nightly Automation (Recommended)

# Best: LLM summary that incorporates any existing notes
memory-sync backfill --today --summarize --preserve

# Smart: Process only days changed since last run
memory-sync backfill --incremental --summarize --preserve

# Or use a specific backend if preferred
memory-sync backfill --today --summarize --preserve --summarize-backend anthropic

Catch-Up After Gaps

# Backfill from last week to present
memory-sync backfill --since 2026-01-28 --summarize

Regenerate with Preserved Content

# Keep hand-written notes when regenerating
memory-sync backfill --date 2026-02-05 --force --preserve --summarize

Secret Sanitization

All content is automatically sanitized to prevent secret leakage:

  • 30+ explicit patterns: OpenAI, Anthropic, GitHub, AWS, Stripe, Discord, Slack, Notion, Google, Brave, Tavily, SerpAPI, etc.
  • Structural detection: JWT tokens, SSH keys, database connection strings, high-entropy base64
  • Generic patterns: API keys, tokens, passwords, environment variables
  • Defense-in-depth: Secrets redacted at every stage (extraction, LLM processing, file writes, CLI display)

Secrets are replaced with [REDACTED-TYPE] placeholders.

See SECRET_PATTERNS.md for complete pattern list.

Summarization Backends

The --summarize flag supports multiple backends via --summarize-backend:

BackendDescriptionAPI Key Required
openclaw (default)Uses OpenClaw's sessions spawn with your configured modelNo
anthropicDirect Anthropic API via openai packageANTHROPIC_API_KEY
openaiDirect OpenAI API via openai packageOPENAI_API_KEY

Examples

# Default: use OpenClaw's native model (no API key needed)
memory-sync backfill --today --summarize

# Explicit backend selection
memory-sync backfill --today --summarize --summarize-backend openclaw
memory-sync backfill --today --summarize --summarize-backend anthropic
memory-sync backfill --today --summarize --summarize-backend openai

# Override model for any backend
memory-sync backfill --today --summarize --model claude-sonnet-4-20250514
memory-sync backfill --today --summarize --summarize-backend openai --model gpt-4o

The openclaw backend is recommended as it:

  • Uses your existing OpenClaw configuration
  • Requires no separate API keys
  • Leverages whatever model you have configured in OpenClaw

Automated Usage

Nightly Cron (3am)

Process today with LLM summary, preserving any existing notes:

0 3 * * * cd ~/.openclaw/skills/memory-sync && python memory_sync.py backfill --today --summarize --preserve >> ~/.memory-sync/cron.log 2>&1

Smart Incremental Mode

Automatically detects changes since last run:

# Initial backfill (run once, simple extraction for speed)
python memory_sync.py backfill --all

# Then set up nightly incremental with LLM summaries
0 3 * * * cd ~/.openclaw/skills/memory-sync && python memory_sync.py backfill --incremental --summarize --preserve >> ~/.memory-sync/cron.log 2>&1

State is tracked in ~/.memory-sync/state.json.

Configuration

Default paths:

  • Session logs: ~/.openclaw/agents/main/sessions/*.jsonl
  • Memory files: ~/.openclaw/workspace/memory/

Override with CLI flags:

  • --sessions-dir /path/to/sessions
  • --memory-dir /path/to/memory

Environment variables (only for direct API backends):

  • ANTHROPIC_API_KEY - Required for --summarize-backend anthropic
  • OPENAI_API_KEY - Required for --summarize-backend openai

The default openclaw backend requires no API keys - it uses your OpenClaw configuration.

# Only needed if using direct API backends
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...

Content Preservation

The --preserve flag behavior depends on whether --summarize is used:

Without --summarize (simple extraction):

  • Hand-written content (after footer marker) is appended verbatim to the end of the newly generated file
  • The new extraction replaces the auto-generated portion, your notes are kept at the end

With --summarize (LLM mode):

  • Existing hand-written content is passed to the LLM as context
  • The LLM is instructed to incorporate your notes into the new summary
  • Result: Your insights are woven into a coherent narrative, not just appended

Example:

# Regenerate with LLM, incorporating existing notes into the summary
memory-sync backfill --date 2026-02-05 --force --preserve --summarize

Auto-generated markers:

  • Header: *Auto-generated from N session messages*
  • Footer: *Review and edit this draft to capture what's actually important.*

Content after the footer marker is considered hand-written and will be preserved.

Backfill Options

Date selection (choose one):

  • --date YYYY-MM-DD - Single specific date
  • --today - Current date only (for nightly automation)
  • --since YYYY-MM-DD - From date to present (for catch-up)
  • --all - All missing dates (for initial setup)
  • --incremental - Only dates changed since last run (smart automation)

Additional flags:

  • --dry-run - Show what would be created without creating files
  • --force - Overwrite existing files (required for regeneration)
  • --preserve - Keep hand-written content when regenerating
  • --summarize - Use LLM for narrative summaries
  • --summarize-backend BACKEND - Backend for summarization: openclaw (default), anthropic, openai
  • --model MODEL - Model override for summarization (default varies by backend)

Performance

ModeTime per DayBest For
--all5-10 min × N daysInitial setup only
--since5-10 min × N daysRecovery after gaps
--today30-60 secNightly automation
--incremental30-60 sec × changed daysSmart automation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Ai Automation Consulting

AI 自动化咨询服务 - 帮你用 AI 省时省钱。适合:中小企业、自由职业者、想提效的人。

Registry SourceRecently Updated
Automation

myskill

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express...

Registry SourceRecently Updated
Automation

GridClash

Battle in Grid Clash - join 8-agent grid battles. Fetch equipment data to choose the best weapon, armor, and tier. Use when user wants to participate in Grid...

Registry SourceRecently Updated