Complete reference for the shared memory architecture connecting Claude Code, OpenClaw/Kimi, and LM Studio subagents through Obsidian vault + MemPalace (Chro...
Shared memory architecture for a multi-agent system: Claude Code + OpenClaw/Kimi + LM Studio. No idea gets lost. All agents read and write the same memory.
text
┌─────────────────────────────────────────────────────┐
│ SHARED MEMORY │
│ │
│ Obsidian vault (structural) │
│ /Volumes/2TB_APFS/openclaw-data/workspace/ │
│ obsidian-memory/ │
│ ├── wiki/ ← MOCs, documentation │
│ ├── daily/ ← session logs, daily notes │
│ ├── answers/ ← resolved Q&A │
│ ├── source/ ← raw research, clips │
│ └── ideas/ ← captured ideas (searchable) │
│ │
│ MemPalace (semantic / ChromaDB) │
│ /Volumes/2TB_APFS/openclaw-data/workspace/ │
│ memory/palace/ ← vector index (25 drawers) │
└─────────────────────────────────────────────────────┘
▲ ▲
│ reads/writes │ mines vault
┌──────┴──────┐ ┌───────┴───────┐
│ OpenClaw │◄───────►│ Claude Code │
│ (Kimi) │ bridge │ (this agent) │
└──────┬──────┘ └───────────────┘
│
┌──────┴──────┐
│ LM Studio │
│ subagents │
└─────────────┘
WhatPathObsidian vault/Volumes/2TB_APFS/openclaw-data/workspace/obsidian-memory/Ideas dir/Volumes/2TB_APFS/openclaw-data/workspace/obsidian-memory/ideas/MemPalace palace/Volumes/2TB_APFS/openclaw-data/workspace/memory/palace/mempalace.yaml/Volumes/2TB_APFS/openclaw-data/workspace/obsidian-memory/mempalace.yamlPython 3.12 venv/Volumes/2TB_APFS/openclaw-data/workspace/memory/mempalace-venv/capture-idea script/Volumes/2TB_APFS/openclaw-data/workspace/scripts/capture-idea.shcapture-idea binary/opt/homebrew/bin/capture-ideaOpenClaw skills/Volumes/2TB_APFS/openclaw-data/workspace/skills/Claude Code skills~/.claude/skills/vault/
macOS ships Python 3.14 which breaks chromadb (pydantic v1 incompatibility).
MemPalace runs in a dedicated Python 3.12 venv.
text
/opt/homebrew/bin/mempalace ← wrapper (zsh)
→ VENV/bin/mempalace --palace PALACE "$@"
The wrapper auto-injects --palace so no flag needed in daily use.
bash
# Mine entire vault (run after adding new files)
mempalace mine /Volumes/2TB_APFS/openclaw-data/workspace/obsidian-memory/ --wing obsidian_memory
# Dry run first
mempalace mine ... --dry-run
# Status
mempalace status
bash
# Semantic search
mempalace search "oauth token expiry mobile"
# Search by topic/tag (frontmatter grep)
grep -r "topic: bezpieczenstwo" obsidian-memory/ideas/ -l
grep -r "tags:.*oauth" obsidian-memory/ideas/ -l
# Search by date range
ls obsidian-memory/ideas/2026-04-*.md
RoomSource dirKeywordsdocumentation``wiki/documentation, wikidaily``daily/dailyideas``ideas/idea, pomysl, insight, problemanswers``answers/answersgeneral(fallback)—
Every valuable idea, observation, or problem from any agent session → saved to vault → indexed in MemPalace.
bash
capture-idea \
--title "OAuth token expiry zbyt krótki na mobile" \
--topic bezpieczenstwo \
--tags "oauth,token,mobile,auth" \
--body "Tokeny wygasają po 1h, użytkownicy mobilni są wylogowywani." \
--source openclaw # or: claude-code | lmstudio | manual
Simple mode:
bash
capture-idea "Krótki opis idei"
text
/capture problem z oauth tokenami wygasającymi za szybko na mobile
markdown
---
date: 2026-04-12
source: openclaw
topic: bezpieczenstwo
tags: [oauth, token, mobile]
related: []
status: seedling
---
# Tytuł
Treść...
Topic values: architektura | bezpieczenstwo | ux | performance | integracja | ai | devops | dane | inne
Status values: seedling → growing → mature
Files land in: obsidian-memory/ideas/YYYY-MM-DD-slug.md
Auto-mined into MemPalace after each capture.
Claude Code and OpenClaw communicate via the local OpenClaw gateway (port 18789).
bash
openclaw agent --message "Twoja wiadomość" --agent main --json
Parse response:
bash
openclaw agent --message "..." --agent main --json | python3 -c "
import json, sys
d = json.load(sys.stdin)
for p in d['result']['payloads']:
if p.get('text'): print(p['text'])
"
Load with /skill openclaw-bridge or invoke directly:
text
/ask-openclaw Czy ta migracja SQL jest bezpieczna?
OpenClaw writes to shared vault/files. Claude Code reads on next session via memory files at:
~/.claude/projects/-Volumes-2TB-APFS/memory/
Both agents publish to GitHub under nerua1. SSH key and gh are configured.
bash
# Claude Code skills
cd ~/.claude/skills/vault/SKILL_NAME
git init && git add . && git commit -m "feat: SKILL_NAME v1.0.0"
gh repo create SKILL_NAME --public --source . --remote origin --push
# OpenClaw skills
/publish-skill SKILL_NAME
Configured:
~/.ssh/github_nerua1 (added to github.com/nerua1)gh authenticated as nerua1git config: user.name=nerua1, user.email= neru_a1@icloud.combash
# Health check
mempalace status
openclaw health
# Mine vault after changes
mempalace mine /Volumes/2TB_APFS/openclaw-data/workspace/obsidian-memory/ --wing obsidian_memory
# Capture idea
capture-idea --title "..." --topic ai --tags "..." --body "..."
# Search memory
mempalace search "keyword"
# Ask OpenClaw
openclaw agent --message "..." --agent main --json
# Publish a skill
gh repo create SKILL_NAME --public --source . --remote origin --push
IssueWorkaroundPython 3.14 breaks chromadbUse /opt/homebrew/bin/mempalace wrapper (Python 3.12 venv)mempalace skips symlinksMine real vault path, not sources/obsidian/ symlink dirOpenClaw gateway loopback onlyCommunication only works on same machineClaude Code has no persistent processShared state via filesystem only