🧠 EchoFadeMemory
by @hiparker
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...
clawhub install echo-fade-memory📖 About This Skill
name: echo-fade-memory version: 1.3.0 description: "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." author: hiparker keywords: [memory, ai-agent, long-term-memory, recall, store, forget, image-memory, multimodal, screenshot, ocr, dashboard, openclaw, cursor, codex, claude-code] metadata: requires: runtime: - "echo-fade-memory server on http://127.0.0.1:8080 or EFM_BASE_URL" - "embedding backend: Ollama or OpenAI or Gemini"
Echo Fade Memory
This skill turns echo-fade-memory into an installed agent memory operating layer.
The public agent contract is intentionally thin:
storerecallforgetImage 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:
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 ./scripts/recall.sh " |
| User states a durable preference / decision / correction | Store it immediately with ./scripts/store.sh " |
| User sends an image or screenshot worth keeping | Store it with ./scripts/store.sh " |
| Need old memory, image, or topic with one query | Use ./scripts/recall.sh " |
| User asks to delete wrong or obsolete memory | Use ./scripts/forget.sh " |
| Need debug analytics or dashboards | Open /dashboard or call /v1/dashboard/* |
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:
mixedmemoriesimagesentitiesIf a recalled memory is fuzzy, you can still ground it with GET /v1/memories/, 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-groupUse higher importance only for:
3. Store Images Through the Same Entry
When the conversation includes a screenshot, whiteboard, receipt, or other durable visual artifact.
Recommended minimal image shape:
file_path or urlcaptiontagsocr_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--urlUse 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
Memory Taxonomy
| Situation | memory_type | Notes |
|-----------|---------------|-------|
| User preference | preference | Use high importance |
| Project decision | project | Add conflict_group for versioning |
| Goal / pending work | goal | Good for future follow-ups |
| Error workaround | project | Prefix summary with error: or learning: |
| Capability request | goal or project | Prefix summary with feature-request: |
Scripts
| Script | Purpose |
|--------|---------|
| scripts/health-check.sh | Verify the server is reachable |
| scripts/store.sh | Unified store wrapper for memory and image objects |
| scripts/recall.sh | Unified federated recall wrapper |
| scripts/forget.sh | Unified forget wrapper for memory or image objects |
| scripts/activator.sh | Hook reminder for recall/store discipline |
| scripts/error-detector.sh | 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:
1. EFM_BASE_URL
2. skills.entries.echo-fade-memory.baseUrl
3. default http://127.0.0.1:8080
⚙️ Configuration
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:
1. EFM_BASE_URL
2. skills.entries.echo-fade-memory.baseUrl
3. default http://127.0.0.1:8080