{"_id":"@atomicmemory/claude-code-plugin","_rev":"11-3767ba00eae9cf5fd59c71b3804fe404","name":"@atomicmemory/claude-code-plugin","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.10":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.10","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.10","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"dist":{"shasum":"ecb00d5dc720d3683845012ef55718b286092240","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.10.tgz","fileCount":17,"integrity":"sha512-wJfJH/iTiBYvAXVuYyM6OEIjzZl2R+n8slY9+3DmppR+L+p1nCsOxNCNU12TbCNubJ8LmPnMSvCT+sig2z2mFQ==","signatures":[{"sig":"MEYCIQCKxFNs3oB0CaehsZf36Q9YOL/eahIJBE/Y0q/qvEN8tAIhAJ+lobquVBCA3LQo5jiRe8JSFiYK/fyIAxUTyE/XlbV3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60497},"gitHead":"f5545bd93a195c3053f2cad66d403837e1e4d13e","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.10_1778775002711_0.3480823770808743","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.12","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.12","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"dist":{"shasum":"f9ebdae0ccabf66d69c8fc6d5fd9c9a5376edc0f","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.12.tgz","fileCount":17,"integrity":"sha512-4YgBK0a9HJ8F5Tkgaq6oHrm/1f1CzuTIsQrGFxI3XCWqapyJ6jodLwPo3+CQMtPcM+2x9tFjKji26mkXdDVOvg==","signatures":[{"sig":"MEUCIQDB0lDGCYMW6tNyy7mlaxor3UulFfwbiZA+L42Ry5A9lgIgVzmAM91kuB1UDpgTdhICun9jj4W2HuJk+NcKEuXjOHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60034},"gitHead":"0e1f6f806500b2766339e4e49a015ae12392ab31","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.12_1778866600241_0.8729882450342397","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.13","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.13","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"dist":{"shasum":"5eaf792e6a3ac078d5116444b25d70ff2fdfee2f","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.13.tgz","fileCount":19,"integrity":"sha512-5OVxJiqzAbSiyXixXsl/mEw9uNdnb75cfuQRX3kQcFrqtMPMNo7qWP/ryBD/4bSuRDaYp8FEVm6atUMkdznUOg==","signatures":[{"sig":"MEYCIQCLXFmeGCEOl65qXF+s2sRw4kelbaa8lLODDNR7XauJAAIhAKGMHB+tBvmk3ffqBGzyRad+RBxRdeuKaKPoC0CvnclJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70118},"gitHead":"1a56fe643015f72e1f2612ed01b45fb41cf699f1","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.13_1778883523285_0.8885630372728814","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.14","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.14","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory-integrations#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory-integrations/issues"},"dist":{"shasum":"99d7701c7324aef7597d8367fc6b6810e2b3867a","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.14.tgz","fileCount":19,"integrity":"sha512-uVLsbs8gCjWdbsCr/mDcup4inKm6CTsrbkO6SZw+IUlGgmPqDN4YN5I1pUcxmNNfoQFrDpshgz3hedGX9UTw6w==","signatures":[{"sig":"MEQCIAr05BvLyPrPfh4QBIcu781J6PWoca0Sqcoau1gt1MiPAiAoDdGqEBqL59Uzvk2t+28+VnWU/wG2MIZfAgOnulSxbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70118},"gitHead":"2b4dea2f1ed1fcc5bda99eff54db76c29b3b35e6","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory-integrations.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.14_1778999512180_0.9031532783521352","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.15","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.15","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"7fd991944008492bf9a85c3328ede825901b5df9","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.15.tgz","fileCount":19,"integrity":"sha512-+FB2ueSjWQZHWGc5S1AaDpaZO5i5lO/suzW6d48SRdAUnG0c7wp44WW9Dsn9gje3b0XIdp07IVhzJ7nCOA3Mig==","signatures":[{"sig":"MEYCIQCp93/BphIH6AHiuk+08L4kDSsm0+XRiI4M2/It8tXOHgIhANmrd3qIlp/ALQ8+CNeo6Eii007DixrzYIM335U80ssH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70298},"gitHead":"201677d74fbb3f3cfd5e0dbb5f6904e889dcbb07","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.15_1779188829811_0.25364686465239195","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.16","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.16","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"aada7c9e693e0c91a800eedf359afd245d2f63d1","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.16.tgz","fileCount":19,"integrity":"sha512-4BBAFnT3BRHKvYlqTe1F85Z86/gxdj1wgBFvPWFpfcczyzZFkz2/1pc4k4AYojAz7HMqmTzs4EcENkN/nXDpSg==","signatures":[{"sig":"MEUCIQCvqaJREd0vyVdWOv19T4Jv0E+3YMCTrm0bGFMdEdg9jgIgWTZHpf7FJbcxuYZtTUyqupKIhcUBNOCQr6bjAYi/WlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70298},"gitHead":"cff34e1033b868921d6c48e1c5988a9e4d2f372f","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.16_1779191818455_0.004688131846428911","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.17","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.17","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"f7915430f0c29950890ae70a64888c42f4eb7a60","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.17.tgz","fileCount":19,"integrity":"sha512-WGt+COd/AOO30wA3c6atgz8mg+lWexyaFVblWu8+ACEVb4KYvtRPSYMTgZc2us/4co2IcceO8gLvhSc7qJ7Cmg==","signatures":[{"sig":"MEUCIENzeIoVxeJsFuwshQHk3vtV0qXC2CbkvBvfitzB0ggnAiEAixOdMXp3TQehHu2jX7cw8Xf8VAD83ipSTWToEVPovEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71952},"gitHead":"65c9fe5b18faaa87b4b5768e7d04309672aeed4f","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh"},"_npmUser":{"name":"atomicstrata","email":"services@atomicstrata.ai"},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.14.1","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.17_1779342425167_0.8868882042887953","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@atomicmemory/claude-code-plugin","version":"0.1.18","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.1.18","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"b52d86131e99ab8012987a6c5eb4da6a840a5c31","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.1.18.tgz","fileCount":20,"integrity":"sha512-RnybQ6Jl7MCndAFf+gcX1Q4mfEAvVd0ZhIoRdHy4MEQRzaLgK4I+hdDi/oBLgk8jnd6ti9Kt5TUZE76zg+TgGw==","signatures":[{"sig":"MEUCIQDYafM8lqduWeXLdCG0xuCTSUtLsUwKKxCpCfR1nhdn3gIgawz0ndaEnn47jHrMY1X1HLDmujjoK8v7tUQCIrp/lfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fclaude-code-plugin@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84792},"gitHead":"94e957099ba8a6b936254719931e5bafda18fbce","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh && bash scripts/__tests__/prompt-context-sanitize.sh","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac6483-8164-46d9-8966-bee7eb7aaddb"}},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"11.17.0","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.1.18_1781600527706_0.0678767754610361","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atomicmemory/claude-code-plugin","version":"0.2.0","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.2.0","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"2acd0686e421e3f5da962a0fe07a1acd2781f011","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.2.0.tgz","fileCount":20,"integrity":"sha512-Q+mpahdqeLLwfta6nVoLpW0cs1BHNX41Y0+YBlhoOMxw/KdXN0v1T6hNSkjLyizGdUFtA2OumSzOvJCRvLzxxg==","signatures":[{"sig":"MEUCIF9AIoFmY0FkI8KtvTrkHtKJUganxt0kx3sf6GnCCOEoAiEA4yQP406o9/MJatmLEimJLu6FBRkAJq6GyV9EjPu9pqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fclaude-code-plugin@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84790},"gitHead":"2b9860f0a9e9b9129767c2969e91ed3f6a9d3579","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh && bash scripts/__tests__/prompt-context-sanitize.sh","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac6483-8164-46d9-8966-bee7eb7aaddb"}},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"12.0.2","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.2.0_1785396325760_0.5920549498539835","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@atomicmemory/claude-code-plugin","version":"0.2.1","license":"Apache-2.0","_id":"@atomicmemory/claude-code-plugin@0.2.1","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"dist":{"shasum":"fc05d466b4200d12254ff4703b9b66cb7fb694f0","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.2.1.tgz","fileCount":20,"integrity":"sha512-dC4O6i7pl7j4jUiRv7hKPHOD7B68BbcS4dW+kdQZrh4kbcu7CKeLJWDzHasJ05BMWN9QCcAfKxJoTZk8fwdWtA==","signatures":[{"sig":"MEUCIGJQwQbvmpRA35v2jctJidtwQXPO4OvPanl8CqjmKlLkAiEA7YVccmlh/m43vSa0Gzu4EY9XWeKVVL8WrpTz7Y0VvTU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fclaude-code-plugin@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84790},"gitHead":"279af130e1854882a194c54afafbcb4c65c03770","private":false,"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh && bash scripts/__tests__/prompt-context-sanitize.sh","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac6483-8164-46d9-8966-bee7eb7aaddb"}},"repository":{"url":"git+https://github.com/atomicstrata/atomicmemory.git","type":"git","directory":"plugins/claude-code"},"_npmVersion":"12.0.2","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/claude-code-plugin_0.2.1_1785474434496_0.03348155229553007","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@atomicmemory/claude-code-plugin","version":"0.2.2","description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","private":false,"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/atomicstrata/atomicmemory.git","directory":"plugins/claude-code"},"scripts":{"test":"bash scripts/__tests__/quick-ingest-body.sh && bash scripts/__tests__/load-env-defaults.sh && bash scripts/__tests__/auth-header.sh && bash scripts/__tests__/prompt-context-sanitize.sh","prepublishOnly":"node ../../scripts/guards/guard-npm-publish.mjs"},"bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"gitHead":"683bd92c9c77877962d7425e27b50cb83867fd9e","_id":"@atomicmemory/claude-code-plugin@0.2.2","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-6FPqcGViNhVyeXilo2IEU7jRIKXi84VBrrUJaZterJA8qGKZ9pC45j00lgH/3/5aGtCTKfkL6tlBpN9uhyPuyQ==","shasum":"8317e905dc7dcaf1ba91519c3e7b7607bf27106b","tarball":"https://registry.npmjs.org/@atomicmemory/claude-code-plugin/-/claude-code-plugin-0.2.2.tgz","fileCount":20,"unpackedSize":84310,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomicmemory%2fclaude-code-plugin@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHHCyfeMafdQU0ElEKxP2eNY3dc61leTWbWXE9bhnVZbAiEAlsE+wyL5jkmqEkAPSVvUyn5rvPkHxmnD/aUOrt+moGg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:41ac6483-8164-46d9-8966-bee7eb7aaddb"}},"directories":{},"maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-code-plugin_0.2.2_1786091736665_0.005307504399562513"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-14T16:10:02.622Z","modified":"2026-08-07T08:35:37.175Z","0.1.10":"2026-05-14T16:10:02.864Z","0.1.12":"2026-05-15T17:36:40.395Z","0.1.13":"2026-05-15T22:18:43.438Z","0.1.14":"2026-05-17T06:31:52.344Z","0.1.15":"2026-05-19T11:07:09.963Z","0.1.16":"2026-05-19T11:56:58.612Z","0.1.17":"2026-05-21T05:47:05.314Z","0.1.18":"2026-06-16T09:02:07.850Z","0.2.0":"2026-07-30T07:25:25.891Z","0.2.1":"2026-07-31T05:07:14.656Z","0.2.2":"2026-08-07T08:35:36.807Z"},"bugs":{"url":"https://github.com/atomicstrata/atomicmemory/issues"},"license":"Apache-2.0","homepage":"https://github.com/atomicstrata/atomicmemory/tree/main/plugins/claude-code#readme","repository":{"type":"git","url":"git+https://github.com/atomicstrata/atomicmemory.git","directory":"plugins/claude-code"},"description":"AtomicMemory plugin for Claude Code — persistent semantic memory across sessions.","maintainers":[{"name":"atomicstrata","email":"services@atomicstrata.ai"}],"readme":"# AtomicMemory for Claude Code\n\nPersistent semantic memory that survives across Claude Code sessions. Ships the MCP server spec, lifecycle hooks for automatic memory capture, and a skill that teaches Claude when to call the memory tools.\n\n## Install\n\n### 1. Install dependencies\n\nThe hook scripts are bash and depend on `jq` (for safe JSON input/output parsing) and `curl` (for `on_user_prompt.sh`'s direct HTTP search).\n\n```bash\n# macOS\nbrew install jq\n\n# Debian/Ubuntu\nsudo apt-get install -y jq\n```\n\n### 2. Configure (optional in local mode)\n\nThe MCP server and the lifecycle hook scripts read their config from the shell environment. None of the `ATOMICMEMORY_*` variables are required to run the plugin against a local AtomicMemory core — the documented defaults are:\n\n| Var | Local-mode default |\n|---|---|\n| `ATOMICMEMORY_API_URL` | `http://127.0.0.1:17350` |\n| `ATOMICMEMORY_API_KEY` | `local-dev-key` for the local URL |\n| `ATOMICMEMORY_PROVIDER` | `atomicmemory` |\n| `ATOMICMEMORY_SCOPE_USER` | derived from the host OS user |\n| `ATOMICMEMORY_CAPTURE_LEVEL` | `balanced` |\n\nSet them only when you need to override a default (for example, to talk to a hosted AtomicMemory service):\n\n```bash\nexport ATOMICMEMORY_API_URL=\"https://memory.yourco.com\"\nexport ATOMICMEMORY_API_KEY=\"am_live_…\"\nexport ATOMICMEMORY_SCOPE_USER=\"$USER\"\nexport ATOMICMEMORY_CAPTURE_LEVEL=\"balanced\" # minimal|balanced|full\n# Optional scope:\n# export ATOMICMEMORY_SCOPE_NAMESPACE=\"<repo-or-project>\"\n# export ATOMICMEMORY_SCOPE_AGENT=\"claude-code\"\n# export ATOMICMEMORY_SCOPE_THREAD=\"<thread-id>\"\n```\n\nSet `ATOMICMEMORY_SCOPE_USER` explicitly when multiple operators share a machine or when you need a stable cross-machine identity; otherwise the MCP server derives one from the host OS.\n\n#### Local extraction with Claude Code auth\n\nFor personal/local use, AtomicMemory core can use Claude Code's own local auth\nfor semantic extraction instead of an Anthropic API key:\n\n```bash\nclaude auth login\nexport LLM_PROVIDER=\"claude-code\"\n# Optional model override; omit to use Claude Code's configured default.\n# export LLM_MODEL=\"sonnet\"\n```\n\nThis setting belongs to the AtomicMemory core process, not the Claude Code hook\nenvironment. The plugin still needs the `ATOMICMEMORY_*` variables above so MCP\ntools and lifecycle hooks can reach core. Do not use `LLM_PROVIDER=claude-code`\nfor hosted/team deployments where a server would run under one operator's\nClaude Code subscription. Embeddings still use core's configured embedding\nprovider; select a local embedding provider separately for a fully local setup.\n\n- `_API_URL` / `_API_KEY` / `_PROVIDER` / `_SCOPE_USER` — read by **both** the MCP server (for `memory_search` / `memory_ingest` / `memory_package` tool calls) and lifecycle hooks. All optional in local mode (see defaults above).\n- `_CAPTURE_LEVEL` — controls lifecycle write volume. Valid values are `minimal`, `balanced`, and `full`. Defaults to `balanced` when unset; invalid values still fail closed.\n- `_SCOPE_NAMESPACE` — used by both, as a per-project isolation boundary.\n- `_SCOPE_AGENT` / `_SCOPE_THREAD` — forwarded to the MCP server as the request scope. The direct prompt-search path uses the core fast-search endpoint's supported user/namespace scope.\n\nLifecycle hooks attach a deterministic metadata payload to every captured record (`event`, `session_id`, `cwd`, `transcript_path`, `dedupe_key`, `schema_version`, plus per-hook fields such as `message_count` / `files_touched` / `tools_run` / `test_commands` on `on_stop`, and `task_id` / `tool_count` on `on_task_completed`). The payload is persisted to the memory's `metadata` column via core's `/v1/memories/ingest/quick` route. `_SCOPE_AGENT` / `_SCOPE_THREAD` are forwarded as scope, not embedded in the metadata blob itself today.\n\nOptional capture controls:\n\n- `ATOMICMEMORY_PROMPT_SEARCH_ENABLED=false` disables per-prompt retrieval.\n- `ATOMICMEMORY_PROMPT_SEARCH_MIN_CHARS=20` controls the prompt-search threshold. If set, it must be a positive integer.\n- `ATOMICMEMORY_PROMPT_SEARCH_LIMIT=5` controls prompt-search result count. If set, it must be a positive integer.\n- `ATOMICMEMORY_STOP_MIN_ASSISTANT_CHARS=200` controls the minimum assistant text size for `Stop` capture. If set, it must be a positive integer. The 200 default was empirically tuned for Claude Code's typical multi-paragraph assistant responses; lower it (for example to 40) if your workflow produces consistently shorter stop turns you still want captured. Codex hosts that share the bundled Node hook runtime should consult the Codex plugin README's stop-threshold guidance for a host-specific recommendation.\n- `ATOMICMEMORY_STOP_MAX_SUMMARY_CHARS=600` controls the maximum plain-text assistant response excerpt stored by `Stop`. If set, it must be a positive integer.\n- `ATOMICMEMORY_COMPACT_MAX_SUMMARY_CHARS=2400` controls the maximum cleaned `PostCompact` summary excerpt. If set, it must be a positive integer.\n- `ATOMICMEMORY_TASK_MIN_TOOL_CALLS=5` controls the `TaskCompleted` threshold under `minimal` capture. If set, it must be a positive integer.\n- `ATOMICMEMORY_TASK_MAX_DESCRIPTION_CHARS=600` controls the maximum cleaned task description excerpt stored by `TaskCompleted`. If set, it must be a positive integer.\n- `ATOMICMEMORY_SEMANTIC_PROMPTS_ENABLED=false` disables extra Stop prompts that ask Claude to extract semantic learnings. If set, it must be `true` or `false`.\n\nIf a helper tool is unavailable, an explicit `ATOMICMEMORY_*` value is invalid (bogus capture level, non-numeric integer var, non-boolean flag), or core is unreachable, hooks surface the error instead of running in a degraded mode.\n\n### 3. Install the plugin\n\nFrom the cloned repo:\n\n```bash\n# Register this repo as a local marketplace (one-time)\nclaude plugin marketplace add ./\n\n# Install the plugin\nclaude plugin install claude-code@atomicmemory\n```\n\n### 4. Update and verify an existing install\n\nClaude Code updates are version-gated. If hook scripts, `hooks.json`, `.claude-plugin/plugin.json`, skills, or marketplace metadata changed, bump plugin versions from the repo root before relying on `claude plugin update`:\n\n```bash\npnpm bump:plugin-versions patch\n```\n\nFor Claude, the helper keeps these files in sync:\n\n- `../../.claude-plugin/marketplace.json` at `/plugins/*/version`\n- `.claude-plugin/plugin.json` at `/version`\n- `package.json` at `/version`\n\nIf the version stays unchanged, `claude plugin update claude-code@atomicmemory` can report \"already at the latest version\" while the installed cache still contains older files.\n\nAfter changing this repo, refresh Claude's installed plugin cache:\n\n```bash\nclaude plugin marketplace list\n\n# If the plugin is already installed:\nclaude plugin update claude-code@atomicmemory\n\n# If the plugin is not installed yet:\nclaude plugin install claude-code@atomicmemory\n```\n\nThe plugin spawns `@atomicmemory/mcp-server` from the npm registry via `npx`, so no local build is needed. If you're developing the MCP server itself and want Claude Code to load a local checkout instead, override the manifest's `mcpServers.atomicmemory.command`/`args` in a local settings file rather than editing the published manifest.\n\nIf `claude plugin marketplace list` shows `atomicmemory` pointing at an old checkout, replace the marketplace entry from this repo first:\n\n```bash\nclaude plugin marketplace remove atomicmemory\nclaude plugin marketplace add ./ --scope user\nclaude plugin install claude-code@atomicmemory\n```\n\nFully restart Claude Code after updating. Existing sessions can keep the old hook registration in memory even when the cache on disk has changed.\n\nSmoke-test the installed PreCompact hook. It should print nothing and exit `0`:\n\n```bash\nPLUGIN_ROOT=$(ls -td ~/.claude/plugins/cache/atomicmemory/claude-code/* | head -n 1)\nprintf '{\"trigger\":\"manual\",\"session_id\":\"smoke\"}' \\\n  | bash \"$PLUGIN_ROOT/scripts/on_pre_compact.sh\"\n```\n\nThen verify:\n\n- `claude plugin list` shows `claude-code@atomicmemory` enabled.\n- `/compact` is not blocked by `PreCompact`.\n- A fresh Claude Code session can see `memory_search`, `memory_ingest`, `memory_package`, and `memory_list`.\n\n## What's in this directory\n\n```\nplugins/claude-code/\n├── .claude-plugin/\n│   └── plugin.json          # plugin manifest\n├── hooks/\n│   └── hooks.json           # Claude Code lifecycle hook registrations\n├── scripts/                 # lifecycle hook scripts\n│   ├── block_memory_write.sh\n│   ├── lib/\n│   │   └── atomicmemory.sh\n│   ├── on_post_compact.sh\n│   ├── on_pre_compact.sh\n│   ├── on_session_start.sh\n│   ├── on_session_end.sh\n│   ├── on_stop.sh\n│   ├── on_stop_failure.sh\n│   ├── on_task_completed.sh\n│   └── on_user_prompt.sh\n├── skills/\n│   └── atomicmemory/\n│       └── SKILL.md         # when/how the agent should call memory tools\n└── README.md\n```\n\nThe plugin spawns [`@atomicmemory/mcp-server`](../../packages/mcp-server) from the npm registry via `npx -y --package=@atomicmemory/mcp-server@^0.1.2 atomicmemory-mcp`, so a `claude plugin install` is self-contained — no local clone or build required. Most semantic memory operations go through the MCP tools. Latency-sensitive prompt retrieval uses `/v1/memories/search/fast` directly, and lifecycle scripts write deterministic records to `/v1/memories/ingest/quick` with `skip_extraction=true` and `content_class: \"summary\"` because command hooks cannot talk to Claude Code's already-running stdio MCP child. Hook record content is a distilled summary, not a raw transcript; lifecycle provenance, scope, dedupe keys, session IDs, cwd, transcript paths, tool counts, and validation details are sent separately in request `metadata` and persisted to the memory's `metadata` JSONB column, with `sourceSite` / `sourceUrl` continuing to carry the provider/route identity.\n\n## Lifecycle hooks\n\n| Hook | What it does |\n|---|---|\n| `SessionStart` | Injects a bootstrap prompt telling Claude to call `memory_search` early. Different prompt for `startup` / `resume` / `compact`. |\n| `UserPromptSubmit` | Searches memory for the current prompt via HTTP and injects matching memories as untrusted additional context. Skipped for short prompts, missing env, or `ATOMICMEMORY_PROMPT_SEARCH_ENABLED=false`. |\n| `PreCompact` | No-op by design. It never blocks compaction; `PostCompact` handles deterministic summary capture. |\n| `PostCompact` | Stores Claude Code's generated `compact_summary` as cleaned content, dropping `<analysis>` blocks, XML-ish tags, code blocks, and markdown-heavy formatting. Lifecycle event/source/session fields stay in metadata. |\n| `Stop` | For meaningful turns, stores only the cleaned last assistant response as content. Tool counts, changed files, validation commands, session IDs, cwd, transcript paths, dedupe keys, and scope stay in metadata so searchable content remains human-readable. Optionally prompts Claude for durable decisions/preferences/anti-patterns. Guards against infinite loops via `stop_hook_active`. |\n| `StopFailure` | Debug telemetry only; no memory write. |\n| `SessionEnd` | Cleans local dedupe/last-write markers for the session. |\n| `TaskCompleted` | Stores cleaned `task_subject` and optional cleaned `task_description` as content; task IDs, teammate/team names, tool counts, cwd, transcript paths, dedupe keys, and scope stay in metadata. |\n| `PreToolUse` (Write\\|Edit) | Blocks writes to `MEMORY.md` and adjacent memory-file paths — redirects agents to `memory_ingest`. |\n\nLifecycle writes are compact records, not raw prompt dumps. Hook scripts redact obvious secret-shaped values and strip fenced code blocks, XML-ish tags, markdown-heavy formatting, wrapper labels, and follow-up prompts from deterministic content before writing records.\n\n### Hook runtime choice\n\nThe installed Claude Code plugin still ships the versioned shell hooks above. For manual hook configs, use `am hooks` (three-event alternate — do not combine with plugin shell hooks on the same events):\n\n```bash\nam hooks install --host claude-code\nam hooks doctor --host claude-code\n```\n\nWhen debugging with `-o json` or `--agent`, skipped runs include `meta.reason`: `prompt_too_short`, `no_content`, `no_hits`, or `low_signal`. Generated hook snippets keep skipped runs quiet so Claude Code receives no extra output unless memory context is available.\n\n#### PATH verification\n\nClaude Code hook environments are commonly spawned with a thinner PATH than the interactive shell that ran `am hooks install`. Before relying on the generated snippet, confirm `am` resolves inside the hook environment:\n\n```bash\ncommand -v am\n```\n\nIf the command is not found, run `curl -fsSL https://get.atomicstrata.ai/install.sh | sh` and open a new terminal.\n\n## License\n\nApache-2.0.\n","readmeFilename":"README.md"}