{"slug": "the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows", "title": "The missing layer in AI tooling: sharing what your assistant already knows", "summary": "A developer built memshare, an open-source tool that lets users share AI assistant memory between teammates as plain JSON files rather than locking it inside a single chat product. The tool uses the Model Context Protocol (MCP) to work with clients like Claude Code, Cursor, and Windsurf, and enforces four consent gates so private memories never leave a user's machine without explicit approval. The developer notes an honest risk: since MCP cannot force a model to call a tool, memory capture can silently fail, so memshare surfaces capture statistics to make gaps visible.", "body_md": "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.\n\nSo I built [memshare](https://github.com/kampana/memshare): peer-to-peer AI memory sharing, with consent on both sides.\n\nEvery 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.\n\nThat means:\n\nmemshare treats AI memory as a **data type** — plain JSON files you own — not a feature of someone else's chat product.\n\n```\nnpm install -g memshare-mcp\nmemshare init\n```\n\nConnect it to your AI tool once, and capture happens in conversation:\n\n*\"we went with Postgres — the JSONB support decided it\"*\n\n→ the AI calls `memory_set`, saved as `private`\n\n*\"what do you know about this project?\"*\n\n→ the AI calls `memory_get`\n\nNo commands to run. No copy-pasting. Your AI saves what it learns as you work.\n\nWhen you want to share context with a teammate:\n\n```\n# See exactly what would go out\nmemshare export --tags \"project-x,architecture\" --for alice --preview\n\n# Happy with it? Write the bundle\nmemshare export --tags \"project-x,architecture\" --for alice --expires 30d\n# → ~/.memshare/bundles/bundle-a3f8c2d1.memshare.json\n```\n\nSend that file however you want — Slack, email, AirDrop. On Alice's machine:\n\n``` python\nmemshare preview bundle-a3f8c2d1.memshare.json   # look, import nothing\nmemshare import  bundle-a3f8c2d1.memshare.json   # choose item by item\n```\n\nAlice picks each item individually. Everything lands `private` — receiving context is not consent to pass it on.\n\nThis is the part I care most about. Sharing someone's AI context without their control is a terrible idea. memshare has four gates:\n\n`private` or `shareable`. Private items never leave, even if their tags match an export.`--preview` runs the same code path as the real export — there's no separate preview implementation that can drift.\nmemshare uses [MCP](https://modelcontextprotocol.io/) (Model Context Protocol), which means it works with any MCP client:\n\n```\n// Cursor / Windsurf / GitHub Copilot — add to your MCP config\n{\n  \"mcpServers\": {\n    \"memshare\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"memshare-mcp\", \"serve\"]\n    }\n  }\n}\n# Claude Code\nclaude mcp add memshare --scope user -- npx -y memshare-mcp serve\n```\n\nA 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.\n\n```\n          ~/.memshare/memories/*.json\n          the actual product — plain JSON files\n            ▲        ▲         ▲\n            │        │         │\n      MCP server    CLI    (future adapters)\n            │\n  Claude · Cursor · VS Code · Windsurf · any MCP client\n```\n\nThe 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.\n\n```\n~/.memshare/\n├── config.json\n├── memories/\n│   └── mem_<uuid>.json      # one file per memory\n└── bundles/\n    └── bundle_<id>.memshare.json\n```\n\nNo database. No server. `grep` works. `diff` works. `git` works.\n\nThe honest risk: nothing in MCP can *force* a model to call a tool, so capture can quietly fail. memshare makes that visible:\n\n```\nmemshare stats\n12 memories, 5 in the last 14 days\n\n  ▂▁▄█▂ ▁▃    14d ago → today\n\n- 9 captured by an assistant, 3 added by hand\n- 5 shareable, 7 private\n```\n\nA flat line means capture isn't firing, and you know within days.\n\n``` js\nimport { MemoryStore, selectForExport, planImport } from \"memshare-mcp\";\n\nconst store = new MemoryStore();\nawait store.add({\n  content: \"Team chose Postgres over MySQL\",\n  tags: [\"db\"]\n});\n\nconst { included, blocked } = await selectForExport(store, {\n  tags: [\"db\"]\n});\n```\n\nPreview 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.\n\n```\ngit clone https://github.com/kampana/memshare.git\ncd memshare && npm install && npm run build\nbash examples/try-it.sh\n```\n\nThe 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.\n\nOr just install it:\n\n```\nnpm install -g memshare-mcp\nmemshare init\n```\n\nOpen source, MIT licensed, no server, no signup.\n\nI'd love feedback — especially on the consent model and whether the sharing flow feels right. Issues and PRs welcome.", "url": "https://wpnews.pro/news/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows", "canonical_source": "https://dev.to/uri_shmueli_a403e7acc04a8/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows-1nch", "published_at": "2026-09-22 16:59:06+00:00", "updated_at": "2026-09-22 17:22:52.644521+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools", "ai-products"], "entities": ["memshare", "Model Context Protocol", "Claude Code", "Cursor", "Windsurf", "GitHub Copilot", "VS Code", "npm"], "alternates": {"html": "https://wpnews.pro/news/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows", "markdown": "https://wpnews.pro/news/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows.md", "text": "https://wpnews.pro/news/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows.txt", "jsonld": "https://wpnews.pro/news/the-missing-layer-in-ai-tooling-sharing-what-your-assistant-already-knows.jsonld"}}