Reads OpenClaw session transcripts and writes summarized bullet points to a daily memory file — automatically, via system cron.
No gateway involvement. No context bloat. Just cheap, reliable scribing.
This skill sends conversation transcript content to an external LLM (OpenAI or Anthropic). If your sessions contain secrets, API keys, PII, or sensitive data — be aware that content will be sent to the provider for summarization. Use a dedicated low-privilege API key with spend limits, and consider running --dry-run first to see exactly what gets sent.
/.jsonl for new entries since last rungpt-4o-mini by default — cheap)/YYYY-MM-DD.md (date auto-generated).scribe-state.json so next run only processes new entries# Install dependencies (one-time, in the skill directory)
cd /path/to/skills/session-scribe && npm install
# Set your API key — OpenAI or Anthropic both work
export OPENAI_API_KEY=sk-...
# or
export ANTHROPIC_API_KEY=sk-ant-api03-...
# Find your session ID
python3 -c "
import json, os
sessions = json.load(open(os.path.expanduser('~/.openclaw/agents/main/sessions/sessions.json')))
for k, v in sessions.items():
print(k, '->', v.get('sessionId'))
"
# Test run (dry-run, prints summary without writing)
node scripts/scribe.js \
--sessions ~/.openclaw/agents/main/sessions \
--session-id <your-session-id> \
--memory-dir ~/.openclaw/workspace/memory \
--dry-run
# Or auto-resolve session by key suffix (e.g. your Discord channel ID)
node scripts/scribe.js \
--sessions ~/.openclaw/agents/main/sessions \
--auto-session "discord:channel:YOUR_CHANNEL_ID" \
--memory-dir ~/.openclaw/workspace/memory \
--dry-run
> Note: OpenClaw's internal oat tokens cannot be used for direct API calls. Use a standard API key from platform.openai.com or console.anthropic.com.
Add to crontab (crontab -e) to run every hour:
# Store your key in a protected file (do NOT inline secrets in crontab)
echo "sk-your-key" > ~/.openclaw/secrets/scribe-key
chmod 600 ~/.openclaw/secrets/scribe-key
# Single session (via key file)
0 * * * * node /path/to/session-scribe/scripts/scribe.js \
--sessions ~/.openclaw/agents/main/sessions \
--auto-session "discord:channel:YOUR_CHANNEL_ID" \
--memory-dir ~/.openclaw/workspace/memory \
--api-key-file ~/.openclaw/secrets/scribe-key \
>> /tmp/scribe.log 2>&1
# All sessions across all agents
0 * * * * node /path/to/session-scribe/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
| Flag | Description | Default |
|---|---|---|
| ------ | ------------- | --------- |
--sessions | Path to OpenClaw sessions directory | required |
--session-id | Specific session UUID to scribe | — |
--auto-session | Auto-resolve session ID from sessions.json key suffix | — |
--memory-dir | Directory to write daily memory files | required |
--provider | LLM provider: openai or anthropic | auto-detected from env |
--model | Model to use | gpt-4o-mini |
--api-key | API key (alternative to env var) | — |
--api-key-file | Read API key from file | — |
--agent | Agent label shown in memory file headers | agent |
--dry-run | Print summary without writing to disk | false |
--min-turns | Minimum new turns before scribing | 3 |
--active-within-hours | Only scribe sessions active within this window (--all-sessions mode) | 1 |
For a full automated memory pipeline:
memory/YYYY-MM-DD.md共 1 个版本