Full automated memory pipeline for OpenClaw agents. Scribe session transcripts into structured daily memory files, ingest them into Supermemory for semantic...
---
name: synthetic-supermemory
description: Full automated memory pipeline for OpenClaw agents. Scribe session transcripts into structured daily memory files, ingest them into Supermemory for semantic recall, and retrieve enriched context at session startup. Use when you want persistent memory across sessions without agent self-reporting. Triggers on requests like "set up memory", "remember sessions", "recall context", "ingest memory files", "search memories", or any task requiring long-term agent memory. Requires SUPERMEMORY_API_KEY and OPENAI_API_KEY (or ANTHROPIC_API_KEY).
metadata:
openclaw:
emoji: "๐ง "
requires:
bins: ["node"]
env: ["SUPERMEMORY_API_KEY", "OPENAI_API_KEY"]
primaryEnv: "SUPERMEMORY_API_KEY"
---
# synthetic-supermemory
Full memory pipeline for OpenClaw agents. Three components that work together:
```
session transcripts
โ scribe.js (hourly system cron)
memory/YYYY-MM-DD.md
โ ingest.js (every 2h system cron)
Supermemory (containerTag per agent)
โ recall.js (session startup)
enriched context
```
No gateway involvement. No context bloat. Fully automated.
## โ ๏ธ Privacy notice
`scribe.js` sends conversation transcript content to an external LLM (OpenAI or Anthropic) for summarization. If your sessions contain secrets, API keys, or PII โ be aware that content will be sent to the provider. Use a dedicated low-privilege API key with spend limits.
## Quick setup
```bash
# Install dependencies
cd /path/to/skills/synthetic-supermemory && npm install
# Store keys securely (do NOT put secrets in crontab)
mkdir -p ~/.openclaw/secrets
echo "sk-your-openai-key" > ~/.openclaw/secrets/scribe-key && chmod 600 ~/.openclaw/secrets/scribe-key
echo "sm-your-supermemory-key" > ~/.openclaw/secrets/supermemory-key && chmod 600 ~/.openclaw/secrets/supermemory-key
# Test scribe (dry-run)
SUPERMEMORY_API_KEY=$(cat ~/.openclaw/secrets/supermemory-key) \
node scripts/scribe.js \
--agents-dir ~/.openclaw/agents \
--all-sessions \
--memory-dir ~/.openclaw/workspace/memory \
--api-key-file ~/.openclaw/secrets/scribe-key \
--dry-run
# Test recall
SUPERMEMORY_API_KEY=$(cat ~/.openclaw/secrets/supermemory-key) \
node scripts/recall.js --container my-agent
```
## Cron setup (add via `crontab -e`)
```bash
# Scribe active sessions hourly
0 * * * * SUPERMEMORY_API_KEY=$(cat ~/.openclaw/secrets/supermemory-key) node /path/to/synthetic-supermemory/scripts/scribe.js --agents-dir ~/.openclaw/agents --all-sessions --memory-dir ~/.openclaw/workspace/memory --api-key-file ~/.openclaw/secrets/scribe-key >> /tmp/scribe.log 2>&1
# Ingest changed memory files into Supermemory every 2 hours
0 */2 * * * SUPERMEMORY_API_KEY=$(cat ~/.openclaw/secrets/supermemory-key) node /path/to/synthetic-supermemory/scripts/ingest.js --dir ~/.openclaw/workspace/memory --container my-agent >> /tmp/ingest.log 2>&1
```
## Scripts
| Script | Purpose | Usage |
|--------|---------|-------|
| `scribe.js` | Summarize session transcripts โ daily memory files + Supermemory | Hourly cron |
| `ingest.js` | Ingest changed memory files โ Supermemory (upsert, change-tracked) | Every 2h cron |
| `recall.js` | Retrieve context at session startup | Session start |
| `add.js` | Add a single memory from CLI or stdin | On demand |
| `search.js` | Semantic search across memories | On demand |
## scribe.js options
| Flag | Description | Default |
|------|-------------|---------|
| `--agents-dir <dir>` | OpenClaw agents directory | โ |
| `--all-sessions` | Scribe all recently active sessions | โ |
| `--sessions <dir>` | Single agent sessions directory | โ |
| `--session-id <id>` | Specific session UUID | โ |
| `--auto-session <key>` | Auto-resolve session by key suffix | โ |
| `--memory-dir <dir>` | Directory for daily memory files | required |
| `--provider <name>` | LLM provider: `openai` or `anthropic` | auto-detected |
| `--model <model>` | Summarization model | `gpt-4o-mini` |
| `--api-key-file <path>` | LLM API key file (600 permissions) | โ |
| `--sm-container <tag>` | Supermemory container override | `--agent` value |
| `--agent <id>` | Agent label for memory headers | `agent` |
| `--active-within-hours <n>` | Only scribe sessions active within window | `1` |
| `--min-turns <n>` | Minimum new turns before scribing | `3` |
| `--dry-run` | Print without writing | false |
## ingest.js / recall.js / search.js / add.js options
All take `--container <tag>` to namespace memories per agent.
```bash
# Ingest a directory
node scripts/ingest.js --dir ~/.openclaw/workspace/memory --container sapphire
# Recall context at session start
node scripts/recall.js --container sapphire --query "recent projects and identity"
# Add a one-off memory
node scripts/add.js --container sapphire --content "Kitsune prefers dark mode"
# Search
node scripts/search.js --container sapphire --query "TokTeam deployment"
```
## References
- [references/api.md](references/api.md) โ Full Supermemory API reference (batch add, delete, container management)
- [references/transcript-format.md](references/transcript-format.md) โ OpenClaw session transcript JSONL structure
don't have the plugin yet? install it then click "run inline in claude" again.