It took my AI months to learn how I think, code, and ship. When a teammate joined the project, their AI started from zero — same codebase, same conventions, none of the context.
So I built memshare: peer-to-peer AI memory sharing, with consent on both sides.
Every AI tool today treats memory as a product feature locked inside one account. Claude remembers things for you. ChatGPT remembers things for you. Nobody else can get at it — not your teammate, not your other tools, not even you in a greppable format.
That means: A designer in Cursor builds up months of component conventions. A backend dev in Claude Code has none of it. You switch from one AI tool to another and start over. Onboarding a new teammate means weeks of their AI re-learning what yours already knows.
memshare treats AI memory as a data type — plain JSON files you own — not a feature of someone else's chat product.
"we went with Postgres — the JSONB support decided it" → the AI calls memoryset, saved as private
Alice picks each item individually. Everything lands private — receiving context is not consent to pass it on.
This is the part I care most about. Sharing someone's AI context without their control is a terrible idea. memshare has four gates: You tag at creation. Every item is private or shareable. Private items never leave, even if their tags match an export. PII is caught automatically. Before anything leaves your machine, memshare scans for emails, phone numbers, credentials, government IDs, and more. Flagged items are held back. You see the exact bundle. --preview runs the same code path as the real export — there's no separate preview implementation that can drift. They choose too. The recipient previews every item and accepts or rejects individually. Bundles are content-hashed, so a file edited in transit is refused.
memshare uses MCP (Model Context Protocol), which means it works with any MCP client:
A designer in Cursor can hand component conventions to backend devs in Claude Code, and get the API contract back. Different people, different tools, same bundle format.
The memory store is the product. The MCP server is one adapter over it, the CLI is another. If MCP disappears tomorrow, your data is still sitting in a folder — human-readable, diffable, git-friendly.
The honest risk: nothing in MCP can force a model to call a tool, so capture can quietly fail. memshare makes that visible:
Preview and the real action share one code path. selectForExport and planImport compute what would happen; the CLI renders that and then acts on it. No parallel implementation for a preview — consent based on a stale preview is not consent.
The script builds two fake stores in a temp directory and runs the full flow — capture, PII blocking, export, per-item import — then cleans up. Nothing touches your real config.
I'd love feedback — especially on the consent model and whether the sharing flow feels right. Issues and PRs welcome.
