OpenClaw and Claude Code Shared Memory Setup
If you want OpenClaw and Claude Code shared memory, the trick is not installing another memory system. It is making both tools point at the same Hindsight bank on purpose. Once that is true, context learned in chat can show up in coding sessions, and discoveries from coding sessions can come back into chat without anyone retyping the whole backstory.
This setup is useful when one workflow spans both tools. You might discuss product requirements with an OpenClaw assistant, switch to Claude Code to implement them, then return to OpenClaw for status updates. Without shared memory, each tool starts from zero. With a shared bank, they can reuse the same project facts, preferences, and working context.
This guide shows the safest way to wire that up, when to use a fixed shared bankId, how to keep the bank narrow enough to stay useful, and how to test that context really moves from one tool to the other. Keep the OpenClaw integration docs, the Claude Code post, and the quickstart guide open while you configure it.
Quick answer
- Pick a single shared
bankIdfor the workflow, for exampleteam-product-alpha.- Configure Claude Code and OpenClaw to use the same Hindsight backend and the same bank.
- Use a focused retain mission so both tools store compatible, durable context.
- Write one memory in OpenClaw, recall it in Claude Code, then test the reverse path.
- Split the bank later if unrelated projects begin to pollute recall.
Prerequisites
Before you share memory between tools, make sure:
- Hindsight is already running, local or cloud.
- OpenClaw is installed and the Hindsight plugin is healthy.
- Claude Code has the Hindsight plugin installed.
- You understand which project or team should own the shared bank.
If you still need the base setup, start with the quickstart guide, the OpenClaw integration docs, the docs home, and the Retain API reference.
Step by step
1. Choose one intentional shared bank ID
A shared bank should map to one real workflow, not your entire life. Good examples:
team-product-alphacustomer-support-escalationslaunch-ops-q2
Bad examples:
defaultsharedeverything
The bank name should tell you who the memory is for and what work belongs in it. That one decision does more for recall quality than almost any token-setting tweak.
2. Point OpenClaw at the shared bank
Update the OpenClaw plugin config to use a fixed bankId:
python3 - <<'PY'
import json, pathlib
path = pathlib.Path.home() / '.openclaw' / 'openclaw.json'
config = json.loads(path.read_text())
entries = config.setdefault('plugins', {}).setdefault('entries', {})
plugin = entries.setdefault('hindsight-openclaw', {'enabled': True, 'config': {}})
plugin['enabled'] = True
cfg = plugin.setdefault('config', {})
cfg['dynamicBankId'] = False
cfg['bankId'] = 'team-product-alpha'
path.write_text(json.dumps(config, indent=2) + '\n')
print(f'Updated {path}')
PY
This intentionally overrides the default dynamic bank behavior. You are telling OpenClaw, “for this agent, always write and recall from the same shared brain.”
3. Point Claude Code at the same bank
In the Claude Code Hindsight plugin config, use the same bankId and the same backend credentials:
{
"hindsightApiUrl": "https://api.hindsight.vectorize.io",
"hindsightApiToken": "YOUR_TOKEN",
"bankId": "team-product-alpha",
"retainMission": "Extract durable project decisions, coding conventions, important constraints, and user preferences that should help across chat and coding sessions."
}
The exact location of your Claude Code plugin config can vary with install method, so use the plugin's own config surface, but the important thing is the shared bankId. If Claude Code points at team-product-alpha and OpenClaw points at team-product-alpha, they are reading and writing the same bank.
4. Align the retention mission across both tools
A shared bank only works if the stored memories make sense in both environments. That means both tools should prioritize:
- project decisions
- user preferences
- open tasks and constraints
- architecture context
- naming conventions and patterns
They should avoid storing:
- transient chat filler
- duplicate logs
- one-off operational noise
This is where the team shared memory post and Adding memory to Codex with Hindsight are helpful, because they show what a useful shared bank looks like in practice.
5. Test both directions
First, write in OpenClaw and recall in Claude Code.
- In OpenClaw, tell the assistant: “Remember that the new launch checklist must include billing smoke tests and the team prefers concise summaries.”
- Let the turn finish.
- In Claude Code, ask it to continue launch work or summarize what it knows about the checklist.
Then test the reverse path.
- In Claude Code, make a decision during implementation, for example: “We are using background jobs for webhook retries, not in-request processing.”
- End the session so retention runs.
- In OpenClaw, ask for a status summary.
If the shared bank is wired correctly, context should move both ways.
Verifying it works
Check the bank configuration
OpenClaw should show a fixed bankId:
python3 - <<'PY'
import json, pathlib
path = pathlib.Path.home() / '.openclaw' / 'openclaw.json'
config = json.loads(path.read_text())
cfg = config['plugins']['entries']['hindsight-openclaw']['config']
print('dynamicBankId:', cfg.get('dynamicBankId'))
print('bankId:', cfg.get('bankId'))
PY
Claude Code should show the same bank in its Hindsight plugin config.
Check cross-tool recall, not just local recall
The real success criterion is cross-tool continuity. If each tool recalls only what it retained itself, you still do not have shared memory.
Troubleshooting / common errors
OpenClaw and Claude Code still feel separate
One of them is almost always pointing at a different bank or a different backend URL.
Recall quality is noisy
Your bank is too broad. Split by team, project, or customer workflow instead of using one bank for everything.
One tool stores useful context, the other stores junk
Align the retainMission. Shared memory breaks down when one tool writes durable facts and the other writes conversation clutter.
FAQ
Should I use a fixed bank or dynamic banks here?
For true cross-tool sharing, use a fixed bank. Dynamic banks are great when you want automatic isolation, but a fixed bank is simpler when the whole point is sharing.
Can multiple Claude Code users share the same bank too?
Yes, but only if that is intentional. A shared bank should match a real shared workflow, not a vague convenience setting.
Is this better than copying notes manually between tools?
Yes, when the workflow is active and ongoing. Manual notes still matter, but shared memory reduces the repeated “catch-up” work.
Next Steps
- Start with Hindsight Cloud if you want one backend shared between chat and coding tools.
- Keep the OpenClaw integration docs and the Claude Code persistent memory post open while you configure both sides.
- Use the quickstart guide if you still need a Hindsight server.
- Review the Recall API reference and Retain API reference to tune how much context moves between tools.
- Read Team Shared Memory for AI Coding Agents if you want to expand the pattern to a whole team.
