{"_id":"@andrewb36/membridge","_rev":"2-09882c2f300677f2a6be0e4e1eb72c39","name":"@andrewb36/membridge","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@andrewb36/membridge","version":"0.1.1","keywords":["ai","claude-code","codex","agents","memory","context","sync","developer-tools"],"author":{"name":"Andrew Brown & Marco Melika"},"license":"FSL-1.1-ALv2","_id":"@andrewb36/membridge@0.1.1","maintainers":[{"name":"andrewb36","email":"andrewludwigbrown@gmail.com"}],"homepage":"https://github.com/mmelika/membridge#readme","bugs":{"url":"https://github.com/mmelika/membridge/issues"},"bin":{"membridge":"bin/membridge.js"},"dist":{"shasum":"42c0c5186aa30e2f185e77eda1226c5098e8f739","tarball":"https://registry.npmjs.org/@andrewb36/membridge/-/membridge-0.1.1.tgz","fileCount":40,"integrity":"sha512-nr1IrfjhZN/Cwh4b0D7FRCynWoCwuW3228Ij4CxNEquc8UlJpXgVnDC85PBEJc68CkYNn/EFwzH5JaKMybGz0Q==","signatures":[{"sig":"MEUCIQCaXWcSOSE3Jzpx43yZCvIqYWJP2UOelXRPCCjeytgsnAIgfQ2Vnc4FrVIQnP6CyjAG2mRQHHAttKGtZHKggX6GQ3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":772936},"main":"lib/scan.js","build":{"mac":{"icon":"app/assets/icon.png","target":[{"arch":["arm64"],"target":"zip"}],"category":"public.app-category.developer-tools","artifactName":"MemBridge-${version}-${arch}.${ext}"},"win":{"icon":"app/assets/icon.png","target":["zip"]},"appId":"com.membridge.app","afterPack":"scripts/afterPack.js","directories":{"app":"app","output":"dist"},"productName":"MemBridge"},"engines":{"node":">=18"},"gitHead":"ece0b74b46d21ddbc618484edea068bc348b5be1","scripts":{"app":"node scripts/prepare-app.js && electron app","test":"node test/run-tests.js","start":"node bin/membridge.js start","dist:mac":"node scripts/prepare-app.js && electron-builder --mac --publish never","dist:win":"node scripts/prepare-app.js && electron-builder --win --publish never","prepublishOnly":"npm install --no-save --no-audit --no-fund @modelcontextprotocol/sdk@^1 zod@^4 && npm test"},"_npmUser":{"name":"andrewb36","email":"andrewludwigbrown@gmail.com"},"repository":{"url":"git+https://github.com/mmelika/membridge.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared memory across your AI coding tools. A tiny background daemon that watches Claude Code, Codex and any other agent's session logs, distills a brief per-project memory, and syncs it into the context files every tool reads (CLAUDE.md, AGENTS.md, ...).","directories":{},"_nodeVersion":"24.16.0","dependencies":{"libsodium-wrappers":"^0.8.4"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^43.1.0","electron-builder":"^26.15.3"},"_npmOperationalInternal":{"tmp":"tmp/membridge_0.1.1_1784772650669_0.8174929743210202","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@andrewb36/membridge","version":"0.1.2","description":"Shared memory across your AI coding tools. A tiny background daemon that watches Claude Code, Codex and any other agent's session logs, distills a brief per-project memory, and syncs it into the context files every tool reads (CLAUDE.md, AGENTS.md, ...).","keywords":["ai","claude-code","codex","agents","memory","context","sync","developer-tools"],"license":"FSL-1.1-ALv2","author":{"name":"Andrew Brown & Marco Melika"},"homepage":"https://github.com/mmelika/membridge#readme","bugs":{"url":"https://github.com/mmelika/membridge/issues"},"bin":{"membridge":"bin/membridge.js"},"main":"lib/scan.js","scripts":{"test":"node test/run-tests.js","prepublishOnly":"npm install --no-save --no-audit --no-fund @modelcontextprotocol/sdk@^1 zod@^4 && npm test","start":"node bin/membridge.js start","app":"node scripts/prepare-app.js && electron app","dist:mac":"node scripts/prepare-app.js && electron-builder --mac --publish never","dist:win":"node scripts/prepare-app.js && electron-builder --win --publish never"},"build":{"appId":"com.membridge.app","productName":"MemBridge","directories":{"app":"app","output":"dist"},"afterPack":"scripts/afterPack.js","mac":{"target":[{"target":"zip","arch":["arm64"]}],"artifactName":"MemBridge-${version}-${arch}.${ext}","category":"public.app-category.developer-tools","icon":"app/assets/icon.png"},"win":{"target":["zip"],"icon":"app/assets/icon.png"}},"engines":{"node":">=18"},"repository":{"type":"git","url":"git+https://github.com/mmelika/membridge.git"},"devDependencies":{"electron":"^43.1.0","electron-builder":"^26.15.3"},"dependencies":{"libsodium-wrappers":"^0.8.4"},"gitHead":"ece0b74b46d21ddbc618484edea068bc348b5be1","_id":"@andrewb36/membridge@0.1.2","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-wRCKCsEiApSbEtoPByMYlKAy2u1MCb51SChOguDXYMoYwC5cLIG1pkLJ20SVAK8ktbWBiSVQrFuAYTynxozIXw==","shasum":"8868c43bbd05f876174cbb8ffa264c4351a84a0b","tarball":"https://registry.npmjs.org/@andrewb36/membridge/-/membridge-0.1.2.tgz","fileCount":40,"unpackedSize":772936,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICHKYnx6DCuIfxs3hJ/77sBrRLF7ZscfO3l3MBPP5GKdAiEAtFPMXBePLSm5TvtFH/zj9fmZxN6n2/93VGvRftbBmTA="}]},"_npmUser":{"name":"andrewb36","email":"andrewludwigbrown@gmail.com"},"directories":{},"maintainers":[{"name":"andrewb36","email":"andrewludwigbrown@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/membridge_0.1.2_1784774246338_0.275903666071438"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-23T02:10:50.444Z","modified":"2026-07-23T02:37:26.696Z","0.1.1":"2026-07-23T02:10:50.876Z","0.1.2":"2026-07-23T02:37:26.545Z"},"bugs":{"url":"https://github.com/mmelika/membridge/issues"},"author":{"name":"Andrew Brown & Marco Melika"},"license":"FSL-1.1-ALv2","homepage":"https://github.com/mmelika/membridge#readme","keywords":["ai","claude-code","codex","agents","memory","context","sync","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/mmelika/membridge.git"},"description":"Shared memory across your AI coding tools. A tiny background daemon that watches Claude Code, Codex and any other agent's session logs, distills a brief per-project memory, and syncs it into the context files every tool reads (CLAUDE.md, AGENTS.md, ...).","maintainers":[{"name":"andrewb36","email":"andrewludwigbrown@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"docs/brand/svg/membridge-mark-blue.svg\" width=\"72\" alt=\"MemBridge\">\n</p>\n\n<h1 align=\"center\">Your team shares a codebase.<br>Now your AI shares a memory.</h1>\n\n<p align=\"center\">\n  <a href=\"https://github.com/mmelika/membridge/actions/workflows/ci.yml\"><img src=\"https://github.com/mmelika/membridge/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"></a>\n  <a href=\"package.json\"><img src=\"https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg\" alt=\"node >= 18\"></a>\n</p>\n\nMemBridge is a menu-bar app and CLI for teams that code with AI. A tiny\nlocal daemon watches the session logs your tools already write, distills\neach one into a small per-project memory, and injects it into the context\nfiles every agent reads at startup.\n\n```sh\ncurl -fsSL https://membridge.me/install.sh | sh\n```\n\n<p align=\"center\"><sub><code>local-first · no account · no API keys</code></sub></p>\n\nThe one-liner is macOS (Apple Silicon). Everywhere else:\n`npm install -g membridge && membridge start`. Every install option, the\nfull CLI, configuration, and the FAQ live in **[the guide](docs/guide.md)** —\nand this page has an animated twin at\n**[docs/readme.html](docs/readme.html)** ([membridge.me](https://membridge.me)).\n\n## One session ends. Every agent remembers.\n\nWhen Andrew's Codex refactors checkout validation, a redacted digest syncs\nto the team. Next time you open the project, your Claude Code already knows.\n\n<img src=\"docs/readme-sync.svg\" width=\"100%\" alt=\"Animated demo: andrew's Codex session ends and its memory is distilled; a dot carries the digest across the MemBridge tile; your Claude Code answers from project memory: andrew capped retries at 3 with exponential backoff in checkout/validate.ts, two hours ago.\">\n\n## Three quiet steps\n\n| 01 · Watch — **Session logs** | 02 · Distill — **Per-project memory** | 03 · Inject — **Context files** |\n| --- | --- | --- |\n| A tiny local daemon tails the JSONL session logs your tools already write — Claude Code, Codex, Gemini CLI, any JSONL logger. | Each session is distilled into a small per-project memory: decisions made, gotchas found, who owns what. | The memory lands between markers in `CLAUDE.md`, `AGENTS.md` and `GEMINI.md` — read by every tool at startup. |\n\n## A memory block, between markers\n\nMemBridge owns only what sits between its markers. The rest of your file is\nnever touched.\n\n```markdown\n<!-- membridge:begin -->\n## Project memory · updated 2h ago\ncheckout retries cap at 3 with exponential backoff (validate.ts)\npayment webhooks replay from stripe-cli in dev — never mocked\ne2e tests need POSTGRES_ISOLATION=strict or they flake              ← new\nandrew owns the pricing service — ask before touching rate tables   ← new\n<!-- membridge:end -->\n```\n\n## Small surface, sharp edges\n\n- **Team feed** — a redacted digest syncs to your team — optionally.\n  Everything starts local: no cloud, no account, no API keys until you\n  join one.\n- **Summaries by the agent itself** — session summaries are written by the\n  agent that did the work, not reconstructed by a heuristic after the fact.\n- **Copy-for-AI digest** — one click copies a compact project digest for\n  any chat window that can't read your files.\n- **MCP server** — project memory is also exposed over MCP, for tools that\n  would rather query than read a file.\n- **Custom adapters** — point MemBridge at any tool that logs JSONL with a\n  small adapter. If it writes sessions, it can share them.\n- **Secret redaction** — keys, tokens and private paths are scrubbed before\n  anything leaves your machine.\n\nThere's more in **[the guide](docs/guide.md)**: the dashboard tour with\nscreenshots, session summaries and the Stop hook, team sync and privacy,\nself-hosting, BYOK roadmaps, the CLI table, custom adapter config, and\ndevelopment docs.\n\n---\n\n<p align=\"center\"><sub><code>source-available · free core, zero runtime dependencies · <a href=\"https://membridge.me\">membridge.me</a></code></sub></p>\n","readmeFilename":"README.md"}