Scribe
An autonomous "stenographer" agent that watches your OpenClaw session history and extracts what matters into persistent, structured memory files — so your agent remembers across sessions without relying on context window compaction.
Install & Setup
1. Copy the skill to your workspace:
cp -r skills/public/scribe ~/.openclaw/workspace/skills/public/scribe
2. Register the nightly cron job (one command):
python3 skills/public/scribe/scripts/setup-cron.py
That's it. Scribe will run every night at 23:30 and write memory/YYYY-MM-DD.md to your workspace.
3. Run manually anytime:
python3 skills/public/scribe/scripts/scribe.py
How It Works
- Scans today's session JSONL files from
~/.openclaw/agents/main/sessions/ - Filters out heartbeats, system messages, and noise
- Sends user messages to an LLM (via OpenRouter, reads your existing OpenClaw API key)
- Extracts: decisions, preferences, framework sentences, project updates, todos
- Writes structured output to
{workspace}/memory/YYYY-MM-DD.md
Output Format
# YYYY-MM-DD Memory (Scribe)
## 🔑 Decisions Made
## 💡 Preferences & Rules
## 🗣️ Framework Sentences
## 📦 Project Updates
## ✅ Todos / Follow-ups
Configuration
Environment variables (all optional — defaults work out of the box):
| Variable | Default | Description |
|---|---|---|
SCRIBE_SESSION_DIR | ~/.openclaw/agents/main/sessions | Session JSONL location |
SCRIBE_WORKSPACE | ~/.openclaw/workspace | Where memory files are written |
SCRIBE_DAYS | 1 | Days back to scan |
SCRIBE_MODEL | anthropic/claude-haiku-4-5 | LLM model (OpenRouter ID) |
SCRIBE_APPEND_LONGTERM | false | Also append to MEMORY.md |
OPENROUTER_API_KEY | (from OpenClaw config) | Override API key |
References
- Cron setup details:
references/cron-setup.md— manual config, launchd, timezone changes - Signal classification:
references/signal-guide.md— how the LLM decides what's worth extracting