npx skills add ...
npx skills add ar9av/obsidian-wiki --skill openclaw-history-ingest
npx skills add ar9av/obsidian-wiki --skill openclaw-history-ingest
Ingest OpenClaw agent history into the Obsidian wiki. Use this skill when the user wants to mine their past OpenClaw sessions for knowledge, import their ~/.openclaw folder, extract insights from previous OpenClaw conversations, or says things like "process my OpenClaw history", "add my OpenClaw sessions to the wiki", "ingest ~/.openclaw", or "what have I worked on in OpenClaw". Also triggers when the user mentions OpenClaw session logs, MEMORY.md, daily notes, or ~/.openclaw/workspace.
You are extracting knowledge from the user's OpenClaw agent history and distilling it into the Obsidian wiki. OpenClaw stores both a structured long-term MEMORY.md and per-session JSONL transcripts — focus on durable knowledge, not operational telemetry.
This skill can be invoked directly or via the wiki-history-ingest router (/wiki-history-ingest openclaw).
llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → ~/.obsidian-wiki/config → prompt setup). This gives OBSIDIAN_VAULT_PATH and OPENCLAW_HISTORY_PATH (defaults to ~/.openclaw).manifest.json at the vault root to check what has already been ingestedindex.md at the vault root to understand what the wiki already containsCheck .manifest.json for each source file. Only process:
ingested_at in the manifestUse this mode for regular syncs.
Process everything regardless of manifest. Use after wiki-rebuild or if the user explicitly asks for a full re-ingest.
OpenClaw stores all local artifacts under ~/.openclaw/.
workspace/MEMORY.md — highest signal; long-term durable facts the agent accumulatedworkspace/memory/YYYY-MM-DD.md — daily notes; recent entries often contain active project contextagents/*/sessions/<id>.jsonl — session transcripts; rich but noisyagents/*/sessions/sessions.json — session index for inventory and timestampsworkspace/DREAMS.md — optional summaries; ingest if presentSkip credentials/ entirely. Skip agents/*/agent/models.json (runtime config, not user knowledge).
Scan OPENCLAW_HISTORY_PATH and compare against .manifest.json:
~/.openclaw/workspace/MEMORY.md~/.openclaw/workspace/DREAMS.md (if present)~/.openclaw/workspace/memory/*.md~/.openclaw/agents/*/sessions/sessions.json~/.openclaw/agents/*/sessions/*.jsonlClassify each file:
ingested_atReport a concise delta summary before deep parsing.
MEMORY.md is the highest-value source. It is plain markdown, human-readable and human-editable. It typically contains:
Read it in full and extract concept-level knowledge. Do not create one wiki page per MEMORY.md entry — cluster by topic.
workspace/memory/YYYY-MM-DD.md files contain time-stamped notes from that day's sessions. Prioritize recent files (last 30–90 days). Extract:
Older daily notes have diminishing signal — summarize in bulk rather than extracting line-by-line.
Each session file is JSONL (append-only, one JSON object per line):
sessions.json index to get session names/labels before opening individual transcriptsSession transcripts can include injected instructions, tool payloads, and sensitive text. Do not ingest verbatim.
Do not create one wiki page per session or per MEMORY.md entry.
cwd or workspace path to infer project scope when availableRoute extracted knowledge using existing wiki conventions:
projects/<name>/...concepts/skills/entities/synthesis/For each impacted project, create/update projects/<name>/<name>.md.
summary: frontmatter on each new/updated page (1–2 sentences, ≤ 200 chars)lifecycle unchanged on update.^[extracted] when directly grounded in explicit session/memory content^[inferred] when synthesizing patterns across multiple sessions^[ambiguous] when sessions conflictprovenance: frontmatter mix for each changed page.manifest.jsonFor each processed source file:
ingested_at, size_bytes, modified_atsource_type: openclaw_memory | openclaw_daily_note | openclaw_session | openclaw_dreamsagent_id: agent directory name (when applicable)pages_created, pages_updatedAdd/update a top-level summary block:
Update index.md and log.md:
hot.md — Read $OBSIDIAN_VAULT_PATH/hot.md (create from the template in wiki-ingest if missing). Update Recent Activity with a one-line summary — e.g. "Ingested OpenClaw MEMORY.md and 14 daily notes; surfaced automation patterns and multi-agent coordination knowledge." Keep the last 3 operations. Update updated timestamp.
See references/openclaw-data-format.md for field-level notes and parsing guidance.
QMD is a search index, not the source of truth. If $QMD_WIKI_COLLECTION is empty or unset, skip this step. Run it only after this skill has written or rewritten vault markdown. If QMD refresh fails, do not roll back the vault changes; report the QMD status separately.
Use $QMD_CLI if set; otherwise use qmd.
If the output says vectors are needed or embeddings may be stale, run:
Verify the collection with either:
or, when a specific page path is known:
Record one of:
QMD refreshed: update + embed + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>{"role": "user", "content": "...", "timestamp": "..."}
{"role": "assistant", "content": "...", "timestamp": "..."}
{"role": "tool", "name": "...", "content": "...", "timestamp": "..."}