OpenClaw Maintenance
Two scripts that keep your OpenClaw instance lean: memory organization and session cleanup.
1. Memory Organizer
Sorts loose .md files from ~/.openclaw/workspace/memory/ root into topic subfolders.
What it does
- Scans
memory/*.mdfor files sitting in the root (not already in a subfolder) - Routes each file to a topic folder based on keyword matching:
cabinet/— agent, cron, delegation, cabinet agent namescontent/— post, blog, marketing, seo, clipsproducts/— copanion, hypercho, feature, ui, roadmaptechnical/— bug, error, config, docs, gatewayx/— twitter, viral, engagement, followersuser/— ziwen, founder, personaldaily/— fallback for everything else
- Adds YAML frontmatter (topic, date, tags) if missing
- Updates
INDEX.mdin each topic folder with the new file - Idempotent — safe to run repeatedly
- No LLM dependency — pure keyword matching
Run
python3 <skill_dir>/scripts/memory_organize.py
2. Session Cleanup
Cleans session storage across ALL registered agents.
What it cleans
| Target | Retention | Action |
|---|---|---|
Tombstones (.reset.*, .deleted.*, .bak-*) | 0 days | Always delete |
Cron session .jsonl files | 7 days | Delete after 7 days |
Orphan .jsonl (on disk, not in sessions.json) | 0 days | Delete |
| Stale sessions.json entries (cron, file missing) | 0 days | Remove entry |
| Non-cron sessions | 30 days | Keep |
| Main sessions | Forever | Never touched |
Active sessions (.lock) | Forever | Never touched |
Safety
- Auto-discovers agents by scanning
~/.openclaw/agents/*/sessions/ - Backs up
sessions.jsonbefore modifying - Never touches locked/active sessions
Run
# All agents
python3 <skill_dir>/scripts/session_cleanup.py
# Preview only
python3 <skill_dir>/scripts/session_cleanup.py --dry-run
# Single agent
python3 <skill_dir>/scripts/session_cleanup.py --agent main
Cron Setup
Set up a single midnight cron that runs both scripts:
Schedule: 0 0 * * * (midnight local time)
Model: any cheap/fast model
Thinking: low
Timeout: 600s
Delivery: none
Cron task message:
Single task only: run memory organizer and session cleanup.
Command 1 (memory):
bash -lc 'python3 <skill_dir>/scripts/memory_organize.py'
Command 2 (sessions):
bash -lc 'python3 <skill_dir>/scripts/session_cleanup.py'
Return ONLY the combined stdout (no extra commentary).