echo-fade-memory
Runs a thin long-term memory workflow on top of the echo-fade-memory service. Use proactively whenever an answer may depend on prior session context, durable user facts, preferences, recent personal state, past decisions, corrections, unresolved work, or previously shared images/screenshots/files. Prefer low-cost recall before answering and store durable facts or visual artifacts early.
git clone https://github.com/hiparker/echo-fade-memory
T=$(mktemp -d) && git clone --depth=1 https://github.com/hiparker/echo-fade-memory "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skill/echo-fade-memory" ~/.claude/skills/hiparker-echo-fade-memory-echo-fade-memory && rm -rf "$T"
skill/echo-fade-memory/SKILL.mdEcho Fade Memory
This skill turns
echo-fade-memory into an installed agent memory operating layer.
The public agent contract is intentionally thin:
storerecallforget
Image memory is folded into the same
store/recall/forget contract. Dashboard and debugging routes live under /v1/dashboard/* and are not part of the agent-facing tool surface.
Natural Triggers in OpenClaw
Use this skill implicitly when the conversation includes:
- remember this / 记住这个
- what did we decide before / 上次定的是什么
- user preferences, durable constraints, corrections
- project decisions worth carrying across sessions
- screenshots, diagrams, receipts, whiteboards, or UI states that may matter later
- repeated failures that reveal a reusable workaround
- elliptical continuity prompts such as 那个、这个、继续刚才的、你知道的
- time-indexed prompts such as 今天、刚刚、最近、这次、又、还、还是、依然
- continuity checks such as 你记得吗、你不是知道吗、你忘了?
Prefer over-triggering low-cost recall to under-triggering and answering as if no history exists.
If
http://127.0.0.1:8080 is unreachable in a containerized environment, set:
export EFM_BASE_URL=http://host.docker.internal:8080
Quick Reference
| Situation | Action |
|---|---|
| Start of a task or session | Recall relevant context with |
| User states a durable preference / decision / correction | Store it immediately with |
| User sends an image or screenshot worth keeping | Store it with |
| Need old memory, image, or topic with one query | Use |
| User asks to delete wrong or obsolete memory | Use |
| Need debug analytics or dashboards | Open or call |
Core Workflow
1. Recall Before Responding
Before answering about prior decisions, preferences, goals, screenshots, or unresolved issues:
./scripts/recall.sh "database choice for this project"
Inspect:
mixedmemoriesimagesentities
If a recalled memory is fuzzy, you can still ground it with
GET /v1/memories/<id>/ground, but keep that as an internal troubleshooting path rather than the default agent contract.
2. Store Durable Facts Early
When the user says something durable, store it before moving on.
Recommended minimal memory shape:
contentsummarytype
./scripts/store.sh \ "User prefers dark mode and minimal UI" \ --summary "dark mode preference" \ --type preference
Advanced fields still exist, but only add them when you have a clear reason:
--importance--ref--kind--conflict-group
Use higher
importance only for:
- preferences
- corrections
- project decisions
- constraints
- explicit "remember this" statements
3. Store Images Through the Same Entry
When the conversation includes a screenshot, whiteboard, receipt, or other durable visual artifact.
Recommended minimal image shape:
orfile_pathurl- optional
caption - optional
tags - optional
ocr_text
./scripts/store.sh \ "/absolute/path/to/meeting-whiteboard.png" \ --object-type image \ --caption "meeting whiteboard about rollout" \ --tag rollout \ --ocr-text "Deployment Checklist"
Advanced image flags still exist, but they are not the default mental model:
--session--kind--actor--memory-id--url
Use image memory when the user is likely to ask:
- "上次那张图"
- "有猫那张图"
- "包含某句话的截图"
- "和那个决定相关的图片"
4. Forget Wrong or Obsolete State
If a memory or image is incorrect, unsafe, or obsolete:
./scripts/forget.sh "that obsolete deployment note" ./scripts/forget.sh "<image-id-or-query>" image
Memory Taxonomy
| Situation | | Notes |
|---|---|---|
| User preference | | Use high importance |
| Project decision | | Add for versioning |
| Goal / pending work | | Good for future follow-ups |
| Error workaround | | Prefix summary with or |
| Capability request | or | Prefix summary with |
Scripts
| Script | Purpose |
|---|---|
| Verify the server is reachable |
| Unified store wrapper for memory and image objects |
| Unified federated recall wrapper |
| Unified forget wrapper for memory or image objects |
| Hook reminder for recall/store discipline |
| Hook reminder when command output looks like a failure |
Setup
Service Availability
./scripts/health-check.sh
OpenClaw Config
Recommended entry in
openclaw.json:
{ "skills": { "entries": { "echo-fade-memory": { "baseUrl": "http://host.docker.internal:8080" } } } }
Recommended precedence:
EFM_BASE_URLskills.entries.echo-fade-memory.baseUrl- default
http://127.0.0.1:8080