{"_id":"@cairn-ink/memory","_rev":"16-14efb340d8b9b151a880d2964e2e40d4","name":"@cairn-ink/memory","dist-tags":{"latest":"0.6.7"},"versions":{"0.0.0-stage":{"name":"@cairn-ink/memory","version":"0.0.0-stage","_id":"@cairn-ink/memory@0.0.0-stage","stub":true,"maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"dist":{"shasum":"66d5dbee9decbe3d75bfabe2277f0378dee89335","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-7bdGppeZIrAjFL2+aZc81xxAvMaIir2DEOgVYXAGrnyy/tP25kMcy67OJSIsHGSqLTrMHhV7lAQdfQAXecp+Gw==","signatures":[{"sig":"MEUCIQD80MnUW17w4F0kzPWFyBhxvLzJRNAeQ4ikxMY1DiWRfwIgMLnYzdK7acA93ynhQHJWIgYgQc4hpe3xGmBj2WL/+8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.1.0":{"name":"@cairn-ink/memory","version":"0.1.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.1.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"0f4a910d35ff39bfee42baec2f86dd21099d072c","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.1.0.tgz","fileCount":5,"integrity":"sha512-8CF/DFgn3nKy5hgpLZOV2NTJI3wRf0e2g0FLey90C+w/PAUHbgsfUj9u+Tto8tjH8bphBYG24VupfbyETBdgJg==","signatures":[{"sig":"MEYCIQD32t6wBQL7Qo6gFTae9dbPEuNllxiTOeGAKSBtiSaDpwIhAMcV+B29sYmvRIH/MYMANZQbUs6fXYjdV9YvsezVthsx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRMmKn+6iWkwdFVtNHUFRiArAVnunH6znU+cXBYykF3QIgRZEZrhHSZNL6vBzgm7Im40AU2SLUm8teUHuEIaVpsTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33946},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"dda6e08210cda6b86c722c02e491c6ac3c3e9fc1","_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"One-command setup of the Cairn Memory Claude Code plugin.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.1.0_1791260890544_0.07432602024426282","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cairn-ink/memory","version":"0.2.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.2.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"09c729cfdd7d542ee4ddc380559e67c20a20355f","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.2.0.tgz","fileCount":12,"integrity":"sha512-NIvQJGRrN/8fY4GxGZ40eOI8DaauE2AxyHlmO3qxfzFmWf4yS74417gwpmLqPTkgU7y7lhT9WHoBSRjMvUi5BQ==","signatures":[{"sig":"MEYCIQCT8KPwt2Q3yGRSIe+25M6GmWq8XmAN+P0OvCzkRWYAFAIhALDTpBzSXO/9Vfp+lgjrhYHCH6naZgN7VtD/UTl6boP7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD01q0m4FQGwLFBG05tshxfT1b7D4DLF/Uw4pWJALL9HAIgIE3+dG64qU3Kkn8E1/LcHL0g4gOKPkuwKp5l1r94Cz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106212},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"d7f52b95ddc7f11a8982b4d85b1ca96aac1fb58c","_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"One-command setup of the Cairn Memory Claude Code plugin.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.2.0_1791438653917_0.7300305242396903","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cairn-ink/memory","version":"0.3.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.3.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"d4d0be2572d4bd137cb76b3a2dc7c3cf67c38dc1","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.3.0.tgz","fileCount":44,"integrity":"sha512-9efRNym55JdzMaewxYmIMIia8mXL/mX/PhOF66bei2PgCURHcyf9levgyQsz3N1sOxQkwoY9dikPMzFDSDEnSQ==","signatures":[{"sig":"MEUCIQCaVaamwE/fi2zQGTO4fqLL/Z6t5cK8DlsPMt2H+3+nvAIgaCO1X3fdud5vw6g+8C1CNbXriP0NL+5FWEe5OBEYXPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCEXhnozdr7hToV+XqMu6vSVrWtF5T0Bk6/giMuZmjwCgIhAMfhOrMOmhhVqF5jaAFLSM71yPrzdkN++akMt9rFoeuV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439955},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"253f5ddb10f6fa8e9b182521313077e42946d5e9","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.3.0_1791567396454_0.2485631296422095","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cairn-ink/memory","version":"0.4.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.4.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"a4ac6919eac3fb04e3d18e3e52b01f420f560cee","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.4.0.tgz","fileCount":46,"integrity":"sha512-5Kn/yRd3Y7xzjvA477ki9OtG1G6h/O3RfrLuUltrBbAweCpic9YjZ3JEiHE/48U+PHBjCMiB+vEMvoUd840W/Q==","signatures":[{"sig":"MEYCIQCTg6iBjhJzIxbrGeIqaxaboMtl/T6YvZRpzjKgvrMRbAIhAOcuzO+n9j7k77jlUBOkiSQ2fiSI60yjgXSvfcluARdS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdHL7OG2d6h+wxSFUAInZl+PCo0qXo3wBQ1J1IZukv1wIhAIxxogQ0uTdj9sLH4CUT8b7mBIeO9dkgmVxV6DaHCPuP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462873},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"523b8bfd88f8de280b85277e735ca1fb747379d8","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.4.0_1791622347122_0.6776271718915814","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cairn-ink/memory","version":"0.5.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.5.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"e8f71847d8924d666d721e2cab6d9fa15b7606df","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.5.0.tgz","fileCount":51,"integrity":"sha512-Rwa0v9ViJ7bGT2fDjD0JLl9aJrUDhyWr1c0u3pVhbKHoiWwlL61j4/3Wl5WLF/HCSl4MCHxp4GM6EYCnwoTn8A==","signatures":[{"sig":"MEUCIQD4PJJtLtcuUIkD1HFjr2j9NrH6m1fyBWYwYQTaDvl9xAIgH+44FnK8SQT+G4pizLBgcK4SW6LqBMqBX865j8gOQtI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCOdVVCKsfbYeV28iTd9o66RMeoTJQn1WosYWnQLv8f7wIgfw9L2uf+mBIdxCB5PS0CS+qcD7sZIWNQa4ppw0pQRcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":502355},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"b5644db184af8777b6ca9d306def7f01a391c9ef","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.0_1791661693595_0.6680094950170303","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@cairn-ink/memory","version":"0.5.1","license":"Apache-2.0","_id":"@cairn-ink/memory@0.5.1","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"2efdaacfee1a8beea48a3ec5390c259366b6a08c","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.5.1.tgz","fileCount":51,"integrity":"sha512-SK5F3TJALbTeKppdWziDIISwOvKhtg+tKeYwXR87XZNKVgYYYRkJwuFI7o63LsYcI5gEg53dNcSbdJe9u9azLg==","signatures":[{"sig":"MEUCIQDJO91kzK6u3k8IU36eptP1EfafkL6x78FcldzgB00XEgIgY1B2Gp6zBpWH4x6+SnAiK9aNdbXkMcqSwmqBFRVJ1sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEGX2rPxD60KOhYu/zMtljGKK0M5HeBlVzKce+ODDpFeAiEA7b26hlhS0B1NqwWbldV29cxO6pZyMcdCqQnFo5eGFVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503823},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"37c57822de3d4d65f50e15d54f4e2dda46608848","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.1_1791822519217_0.1883685698338482","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@cairn-ink/memory","version":"0.5.2","license":"Apache-2.0","_id":"@cairn-ink/memory@0.5.2","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"3ebc9a5209adf190b479ff28b3efcfaa49d37e08","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.5.2.tgz","fileCount":51,"integrity":"sha512-vch7uj3gEETBvOox/U/ZjJN+iyXHgGfbG10AFP5wjHOqT8HwV8emEpvgq1rMoTn3hBleEm0dWbfNAySXMtYAKw==","signatures":[{"sig":"MEQCIF28lvdx9w4OYXllC3AslhjP8GMD0l20U2SSOQIqAv1uAiBTHtJzddYLbV8NR9DK2aA9lWT5ZnKLbroy1BtqZO1aRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDJWp6Bje2vcv2VUg0gS3twBrx7KS5WtsDr4MPTVP7A8QIhALu2xUvgFA9xkgUR7m/F7hpZjn0mtYDK0qY98oSfWfao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":504092},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"b5c59d10fef9607cffc15ce8f72197a0774314b1","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.2_1791883291963_0.30920494969005263","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@cairn-ink/memory","version":"0.5.3","license":"Apache-2.0","_id":"@cairn-ink/memory@0.5.3","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"f796cc39ba32aea61b915912d32481f7eb5cd7f4","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.5.3.tgz","fileCount":52,"integrity":"sha512-aU5WmnA9RmaOZQLFXV50D8NUn3RA6NqywzYh2anCJZhDVCKe4ZXfoA61hh3Wro5Gxr/eYLaXstinUXZHjGO8nw==","signatures":[{"sig":"MEUCIHjpthEtvbFwJj3PSdrK0e4CvDTR3qVE14TGxeEFVFdaAiEAu+IIxA4vw9QbWikHu7yZrCWA5sHIxm7iOUe1wEr3/tE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHHj5jP1DjesuIhAbjPsk0xKNS76ERsLiNBJ7tb2a6f6AiEAgdLJkYwkR/salcrJ6ANnQ5MkRyvRiU0EU0HxHO0BA6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510545},"type":"module","engines":{"node":">=22.16.0"},"gitHead":"ad274b6117f86446fbf0ff16f503ae69d0278ce5","scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory automatic capture and recall for Claude Code and qualified Codex CLI.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.5.3_1792055047683_0.3561141403218042","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cairn-ink/memory","version":"0.6.0","license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.0","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"923b7713492d1ce5507bd88158e7ceedb9b7054f","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.0.tgz","fileCount":59,"integrity":"sha512-L08GjsEPxCI88fTqTi3l2SMJbRz3deTfcLEYVpPZwxJ3obRaY3gJL0bqBpyX2KTM9wnx2sW5K5cqoob36+6ZZw==","signatures":[{"sig":"MEUCIQCkp9JYCRsr4HCDpFBWG8bhgx/FYpWrRlw3ZOLwbug69QIgPRUFh/drFqCWSeosEB0Dlc95GvGR9wC3leo+P4t2xwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCTpfMHKNLL/ytueSrcKY8JBr6qI8NUZ5DnwYPjDXLD1QIgBmDZgtyTQcT38ESdUaPGhUQPqvRUTiUU565xxlw4oBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1365517},"type":"module","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory local MCP tools or cloud automatic memory for Claude Code and Codex.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.0_1792921186214_0.7749066493395553","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@cairn-ink/memory","version":"0.6.1","license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.1","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"7cf466ba14e60d9314c2226f901faac34d97058f","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.1.tgz","fileCount":59,"integrity":"sha512-dotDeNIoVDwWO068zVjtd6ygUSxDANFmLN0A3E8tYc5uu0hAW6FnU2uXG7HK94G5tVhuysbHMJVfNImtu01yNw==","signatures":[{"sig":"MEUCIF3dvWlXHKFxH/5KgTqWIWbto1CvqJz5OfxP588gGQTRAiEA+Zg2DP+3Bw9ENKV/VJXD/ZNpxvdwmyA1GL5T3I3OLvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCpto80WxhlpoIRWdwD++Da7grstwgPutdwP2XJFbTsJAIgHsehhZr8BExTFmt6S7Vil6+W2WRVw2zvHXdnXwx5Dqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1495429},"type":"module","_from":"file:cairn-ink-memory-0.6.1.tgz","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"_resolved":"/Users/admin/cairn-memory-061/packages/setup/cairn-ink-memory-0.6.1.tgz","_integrity":"sha512-dotDeNIoVDwWO068zVjtd6ygUSxDANFmLN0A3E8tYc5uu0hAW6FnU2uXG7HK94G5tVhuysbHMJVfNImtu01yNw==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory local MCP tools or cloud automatic memory for Claude Code and Codex.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.1_1793164073102_0.39731856267789945","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@cairn-ink/memory","version":"0.6.2","license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.2","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"b0d1b7a48b1e14e314be6644ed8bc15e47e54623","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.2.tgz","fileCount":59,"integrity":"sha512-h3tj+8wRmHCfcoGuthmrcBiDLcpfofoiQM6FUiQbRzywGSbKqp3R0kQBOJOmsr2aXdwHIN9SdJBXG7gcbt6d+A==","signatures":[{"sig":"MEUCIBX0EoROglC0hbiiXfHVwYe08IY+9fmO4C4KgylACBvNAiEA57fwoOW6fOd+nsssQtBrKpgVkmDp7OoT997TsllXQcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDJruVEO0D9OY6bLSakZa4I9bVEwUj21/OjuSBToYDLhQIhALoqLv5Zrb3nPgfCettoPxNi4yXflbjAGnebgA03JLmt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1495731},"type":"module","_from":"file:/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.2/cairn-ink-memory-0.6.2.tgz","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"_resolved":"/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.2/cairn-ink-memory-0.6.2.tgz","_integrity":"sha512-h3tj+8wRmHCfcoGuthmrcBiDLcpfofoiQM6FUiQbRzywGSbKqp3R0kQBOJOmsr2aXdwHIN9SdJBXG7gcbt6d+A==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory local MCP tools or cloud automatic memory for Claude Code and Codex.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.2_1793195439636_0.727824486618846","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@cairn-ink/memory","version":"0.6.3","license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.3","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://github.com/Cairn-ink/cairn-memory#install-for-claude-code-automatic-memory","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"86c31523023cf6946494ff96fb045b7485d5d0c8","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.3.tgz","fileCount":59,"integrity":"sha512-XvqmxdP2Yc0vrGykEaSyqC5NM7yJGxYgxhJNbHre62MPdRpfmhwmN5k1M7eMZFXfMybxuRQZ6lRM93agnTiMwA==","signatures":[{"sig":"MEUCIF96aytuvdjT9R1whhmy9EbPUoRtPvmUZhgbzRkEm7EQAiEA1SJqvwe7DGg1eIN6KNAr9/IsZudZOly19nI4zDz+nFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF3tB3aYrMeZ9VZt/eZhq0+3K69m6gMNhb6+sQNKZ8MlAiBfy8PlP3ocMYlcvHeEqRV1pjDgLR1xCZvdlgTl9lKrsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1496448},"type":"module","_from":"file:cairn-ink-memory-0.6.3.tgz","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"_resolved":"/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.3/cairn-ink-memory-0.6.3.tgz","_integrity":"sha512-XvqmxdP2Yc0vrGykEaSyqC5NM7yJGxYgxhJNbHre62MPdRpfmhwmN5k1M7eMZFXfMybxuRQZ6lRM93agnTiMwA==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Setup Cairn Memory local MCP tools or cloud automatic memory for Claude Code and Codex.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.3_1793636315795_0.30077734272464884","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@cairn-ink/memory","version":"0.6.5","keywords":["memory","ai-memory","agent-memory","mcp","model-context-protocol","claude-code","codex","cairn","cairn-ink"],"license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.5","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://cairn.ink","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"ee2db1ee292b1df4158e35b1377a764aa39beade","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.5.tgz","fileCount":59,"integrity":"sha512-MUTlzuka4NuTErG/v5yJFAHgl3eOPTohAF2EgG5K56hY7YwGU0S3uAHil7ZInBUGSa2YWQu6Yp+kXVjqrgintw==","signatures":[{"sig":"MEQCID1qq47ZgsFdw1ucy0csBYjTFKKcx3Vm6z4/N7xYuHyjAiBhQxRg5BQe7R08aP06BjKeGmN5DDyWkg9cfYHhbpR0ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCD0hvXG60LfCMZNMy3B5p3DMkLOpkD7CuPLRyciaf7mwIgRaV7FASw2r/L8yS+RWEu3bvp0G/4onznsm+rO5IEPHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1992504},"type":"module","_from":"file:cairn-ink-memory-0.6.5.tgz","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"_resolved":"/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.5/cairn-ink-memory-0.6.5.tgz","_integrity":"sha512-MUTlzuka4NuTErG/v5yJFAHgl3eOPTohAF2EgG5K56hY7YwGU0S3uAHil7ZInBUGSa2YWQu6Yp+kXVjqrgintw==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Cairn.ink AI memory for Claude Code and Codex: local MCP tools or cloud automatic memory.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.5_1794229615122_0.01916708999560024","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@cairn-ink/memory","version":"0.6.6","keywords":["memory","ai-memory","agent-memory","mcp","model-context-protocol","claude-code","codex","cairn","cairn-ink"],"license":"Apache-2.0","_id":"@cairn-ink/memory@0.6.6","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"homepage":"https://cairn.ink","bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"bin":{"cairn-memory":"bin/memory.mjs"},"dist":{"shasum":"f5fdfa7831d145973551c78522dd211f9278197a","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.6.tgz","fileCount":61,"integrity":"sha512-WPvtUUFGOcYt2Tvl5AwrmV1yNJcAsdEfKzcNahXGZiQp4PLs8Yul3LMZV54WU4yr5vlb50D4BnHsm6X7cInKcg==","signatures":[{"sig":"MEUCIDvRgJaT2MjNveveHHTKFTduRf4+eQ/yLTtv6FdwtDuRAiEA4fk0KRyEbPts4dytGEmezcNDR5neRQKXs8I2wmndGS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDbLZAuszkTEsIUk9O6CITDKMqtpOjHbIo8DVCrsPSrAIgeFbkJFY3HhJf4e+Zq3aVqc7bIdszBYj5MhtOdo1+Fu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2072942},"type":"module","_from":"file:cairn-ink-memory-0.6.6.tgz","engines":{"node":">=22.16.0"},"scripts":{"prepack":"node build-runtime.mjs --check"},"_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"_resolved":"/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.6/cairn-ink-memory-0.6.6.tgz","_integrity":"sha512-WPvtUUFGOcYt2Tvl5AwrmV1yNJcAsdEfKzcNahXGZiQp4PLs8Yul3LMZV54WU4yr5vlb50D4BnHsm6X7cInKcg==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Cairn.ink AI memory for Claude Code and Codex: local MCP tools or cloud automatic memory.","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memory_0.6.6_1794558438865_0.581546968552128","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"_id":"@cairn-ink/memory@0.6.7","bin":{"cairn-memory":"bin/memory.mjs"},"bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"dist":{"shasum":"9f70ad54e1c82941dd152e574bf9470161e6de8d","tarball":"https://registry.npmjs.org/@cairn-ink/memory/-/memory-0.6.7.tgz","fileCount":61,"integrity":"sha512-xUK5PqK1y80k4Io0vdi6YWGW+UZC6TKd/Mgv9KN4PI8MNLp0TcG+BJxV9EwA/dzfr2OFkmI+xSQiiSzjgeN9Rg==","signatures":[{"sig":"MEUCIQDCAZJf3onhTtOMGCwzuEdSTKTFZ8+tbHBRV+1WzTnzSAIgebe3+dn3PLrwLXVHBnrVfRljGvfzzJMLsOG21bx368g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHhVh9cz02yMFn3hVkQdxm62YLfm4PWxuaYm2vrlXqVbAiEAwPYH23R0qkDnguJXGinh9GSuRjb73nrlqrklkGegPao="}],"unpackedSize":2080491},"name":"@cairn-ink/memory","type":"module","_from":"file:cairn-ink-memory-0.6.7.tgz","engines":{"node":">=22.16.0"},"license":"Apache-2.0","scripts":{"prepack":"node build-runtime.mjs --check"},"version":"0.6.7","_npmUser":{"name":"chichieh","email":"cch.chichieh@cairn.ink"},"homepage":"https://cairn.ink","keywords":["memory","ai-memory","agent-memory","mcp","model-context-protocol","claude-code","codex","cairn","cairn-ink"],"_resolved":"/home/chichieh/cairn-memory-umv1/.research-private/release/installer-0.6.7/cairn-ink-memory-0.6.7.tgz","_integrity":"sha512-xUK5PqK1y80k4Io0vdi6YWGW+UZC6TKd/Mgv9KN4PI8MNLp0TcG+BJxV9EwA/dzfr2OFkmI+xSQiiSzjgeN9Rg==","repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"_npmVersion":"10.9.2","description":"Cairn.ink AI memory for Claude Code and Codex: local MCP tools or cloud automatic memory.","directories":{},"maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory_0.6.7_1794671765160_0.13336826886877007"}}},"time":{"created":"2026-10-06T04:27:16.093Z","modified":"2026-11-14T15:56:05.494Z","0.0.0-stage":"2026-10-06T04:27:16.093Z","0.1.0":"2026-10-06T04:28:10.631Z","0.2.0":"2026-10-08T05:50:54.018Z","0.3.0":"2026-10-09T17:36:36.558Z","0.4.0":"2026-10-10T08:52:27.240Z","0.5.0":"2026-10-10T19:48:13.735Z","0.5.1":"2026-10-12T16:28:39.382Z","0.5.2":"2026-10-13T09:21:32.125Z","0.5.3":"2026-10-15T09:04:07.775Z","0.6.0":"2026-10-25T09:39:46.329Z","0.6.1":"2026-10-28T05:07:53.229Z","0.6.2":"2026-10-28T13:50:39.794Z","0.6.3":"2026-11-02T16:18:35.914Z","0.6.5":"2026-11-09T13:06:55.274Z","0.6.6":"2026-11-13T08:27:19.115Z","0.6.7":"2026-11-14T15:56:05.273Z"},"bugs":{"url":"https://github.com/Cairn-ink/cairn-memory/issues"},"license":"Apache-2.0","homepage":"https://cairn.ink","keywords":["memory","ai-memory","agent-memory","mcp","model-context-protocol","claude-code","codex","cairn","cairn-ink"],"repository":{"url":"git+https://github.com/Cairn-ink/cairn-memory.git","type":"git","directory":"packages/setup"},"description":"Cairn.ink AI memory for Claude Code and Codex: local MCP tools or cloud automatic memory.","maintainers":[{"name":"chichieh","email":"cch.chichieh@cairn.ink"}],"readme":"# @cairn-ink/memory\n\n**Cairn.ink Memory** is Cairn.ink's AI memory toolkit for Claude Code and Codex, with\nlocal MCP tools or cloud automatic memory.\n\n[Cairn.ink](https://cairn.ink) ·\n[npm package](https://www.npmjs.com/package/@cairn-ink/memory) ·\n[GitHub repository](https://github.com/Cairn-ink/cairn-memory)\n\nRequires Node ≥22.16 and the selected CLI on PATH. The installer itself has no\nruntime dependencies.\nThis README describes **installer 0.6.7**. Claude Code automatic saving now works\non macOS. Codex automatic saving on macOS isn't supported yet; the memory tools\nwork. To set up only Claude Code, run\n`npx @cairn-ink/memory setup --local --client claude`. Codex CLI 0.167.0 and 0.167.2 are qualified\nfor automatic capture; if you already use Codex with Cairn, in local or cloud\nmode, rerun setup to pick up the new qualification.\n\n`setup --local` now installs automatic Raw capture by default for each selected\ntool. It saves conversation text from that tool's sessions on this computer as\nplaintext in the same local store used by `cairn-local`, without a key or model\ncalls. Both tools share the 200,000,000-byte Raw cap.\n\nTurn capture off with `setup --local --no-capture` or\n`config --local-capture off`; turn it back on with `config --local-capture on`.\nAdd `--client claude` or `--client codex` to select one tool. Off keeps data and\nremoves owned hooks. Setup remembers an explicit off preference. A notice appears\nonce per client installation. Codex users must approve new entries in `/hooks`.\nA failed or pending format qualification still installs the hooks; capture waits.\nAfter a Codex update, capture resumes once background qualification passes.\nIf it stays pending or failed, rerun setup. Status reads the engine's last observed\nqualification state and reason without launching Codex.\n\nForgetting or correcting a memory hides whole conversations with messages within\n30 minutes before or after its save time. This can include unrelated conversations\nand miss other conversations about the same subject. To remove a conversation,\nuse the commands below. A fork or resume of a hidden conversation stays hidden.\nCodex forks aren't saved locally. New Claude Code sessions are captured from\ntheir first turn, including when the transcript appears after session start.\nTurning capture back on preserves those hiding fences.\nExisting conversations resume at the next real hook's transcript end, skipping\ntext written while off. Claude Code also skips the first turn of an already-running\nconversation after re-enabling; subsequent turns resume.\n\n`uninstall --local` disables capture and removes its hooks and MCP registration,\nkeeping Raw, identity and the pinned engine runtime so setup can restore capture.\nTo inspect and remove one conversation:\n\n```sh\nnpx @cairn-ink/memory raw list\nnpx @cairn-ink/memory raw list --client claude\nnpx @cairn-ink/memory raw delete <conversation-id>\nnpx @cairn-ink/memory raw delete <conversation-id> --yes\n```\n\n`raw list` shows ids, clients, time ranges, counts and hidden/fenced status,\nnever text; `--client claude|codex` filters the list. Delete accepts one explicit\nid without wildcards. It previews counts, client and time range unless `--yes`\nis given. An unknown id fails without changes. Both commands require an installed\nlocal client and refuse cloud mode. They use the same store and namespace as MCP.\n\nDeletion removes the conversation's Raw messages and index rows and its Episodes, and invalidates dependent Cards under the existing lineage rule. Confirmed authored Card bodies may remain stored. Re-sent copies (fork, resume or cursor reset) are not archived again. Extracted Memories are kept; use each Memory's own forget operation to remove it.\n\n`raw delete <conversation-id> --yes` finishes in one command and shows progress\ncounts. The command retries automatically for up to about 10 minutes. If it stops before completion, run the same command again to continue.\nWhile a large conversation is being deleted, saving in other sessions\npauses and catches up afterwards: about 11–15 seconds for a 10,000-message\nconversation in the concurrent-saving workload described in the\n[local Raw guide](../../docs/raw-local-journal.md).\n\nSeveral sessions saving at once no longer stop one of them from saving. Default\nreads keep the Raw excerpts they already validated when a read reaches its time\nlimit, marked partial, instead of dropping them.\n\n**Search catches up after saving.** Each turn is saved to the local store as soon as it ends. Raw search covers a newly saved conversation only after the local index reaches it. Raw search builds its index in the background while Cairn is running, at roughly one saved message per second: allow about 15 minutes for 1,000 saved messages and roughly 2 hours for 10,000. After each new saved message it re-checks the whole index (about 6 minutes per 1,000 saved messages). Until a build or re-check finishes, Raw search still returns results but reports partial coverage. While you keep working, each new save restarts the indexing pass, so a conversation saved during a busy session may not be searchable until you pause. Until the index has caught up, newly saved conversations may be missing from results. The coverage report marks such results as partial, but assistants using the memory tool see only the results, so an empty answer then doesn't mean nothing was saved. Memories, and conversations the index already covers, are not affected and stay searchable as before.\n\nWith `--no-capture`, setup prints only the off capture status, without the\ndefault-on notice or Codex hook-approval prompt. After `--no-capture` or\n`config --local-capture off` completes, status reports capture as off on every platform.\nIf turning it off was interrupted, status asks you to run the off command again.\n\nUser-owned hardlinked transcript files are accepted, as on Linux.\n\nKnown limits in this release:\n- When capture resumes after being turned off, Cairn reads up to the last 4 KiB of the conversation file, and for Codex up to the first 4 KiB to find its session header; some of those bytes may have been written while capture was off. They are used only to identify the session and check the file wasn't replaced, never saved or sent.\n- On macOS, a process running as the same user or root can still redirect an open through precisely timed directory swaps during verification, without crossing a privilege boundary.\n- While new turns keep arriving, the local MCP server keeps indexing: about one small index write per second and roughly 3% of one CPU core.\n- Histories of about 50,000 messages or more may never finish indexing; search keeps reporting partial coverage for them.\n- Searches served by a reader that doesn't run index maintenance itself, such as keyword-only searches when an embedding model is configured, can keep reporting partial coverage even after indexing has finished. Their results are still returned.\n- With an embedding model configured, semantic search can still send the search text, and background index maintenance can send stored memory text, to that provider while saving is paused or disabled for that store; fixed in the next release.\n- With an OpenAI key configured for the MCP server, recall, classify, relate and review requests can still send the query and stored memory text to OpenAI while saving is paused or disabled; fixed in the next release. Installs without a key, and automatic capture, are not affected.\n- Local setup doesn't support a custom `CLAUDE_CONFIG_DIR` yet: setup stops with \"The Claude Code local entry could not be verified.\" Fixed in the next release.\n- If `~/.claude` or `~/.codex` (or `CLAUDE_CONFIG_DIR` / `CODEX_HOME`) is a symbolic link, local setup stops without connecting that tool. Fixed in the next release.\n- macOS with Node from Homebrew: setup records Node's versioned path, so rerun setup after `brew upgrade` updates Node. Fixed in the next release.\n- Claude Code runs started by scripts or the Agent SDK (for example `claude -p`) are saved like interactive sessions.\n- Deleting a conversation or forgetting a memory removes that text from Cairn's database at once, and it is never shown again; conversations a forget only hides stay saved until you delete them. Local search index files can keep word lists (and, with semantic search, vectors) from deleted items until background cleanup reaches them. Cleanup runs only while Cairn is running, may not reach them while new conversations keep being saved, and never covers index files for a search setup you no longer use. As with most databases, deleted text can also remain in unused file space until it is overwritten.\n- A later release indexes newly saved conversations first.\n\nGoing back to 0.6.5: an **attested base-33 store with card lineage revision 1**\n(physical 53, lineage 1) that 0.6.6 opened with Raw on is refused with\n`unsupported_database`. Reinstall 0.6.6 to recover access. **Attested lineage-0\nand ordinary local stores open in 0.6.5.** Captured Raw stays searchable, with\neligible excerpts readable through contextRead. Hidden conversations stay hidden\nin both current and history Raw search because 0.6.5 enforces the existing\n`raw_session_fences` rows. The new local tables remain intact and are ignored.\n0.6.5 itself does not capture automatically, so its engine does not use the new\nhide windows or fork fences for capture. Its setup leaves 0.6.6 hooks registered\nwith their retained engine; turn capture off with 0.6.6 before downgrading to\nstop them.\n\n本說明對應**安裝器 0.6.7**。Claude Code 現在也能在 macOS 自動保存對話。\nCodex 在 macOS 還不支援自動保存，但記憶工具可以正常使用。若只要設定\nClaude Code，請執行 `npx @cairn-ink/memory setup --local --client claude`。\nCodex CLI 0.167.0 與 0.167.2 已通過格式驗證，可以自動擷取；已經在 Cairn 使用\nCodex 的人（本機或雲端模式）請重新執行 setup，以套用新的驗證。\n\n`setup --local` 現在預設替所選工具安裝自動 Raw 擷取，把這台電腦上該工具的\n對話文字，以明文存進 `cairn-local` 使用的同一份資料庫，不需要金鑰，也不\n呼叫模型。兩個工具共用 200,000,000-byte 的 Raw 上限。\n\n用 `setup --local --no-capture` 或 `config --local-capture off` 關閉，\n`config --local-capture on` 重新開啟。可加 `--client claude` 或\n`--client codex` 只設定一個工具。關閉會移除擷取 hooks、保留資料，重跑 setup\n也會記住關閉偏好。每個工具的安裝提示只顯示一次。Codex 請到 `/hooks` 核准\n新增項目。格式驗證失敗或還在等待時，仍會安裝 hooks，擷取則等待驗證。\nCodex 更新後，背景驗證通過就會恢復擷取；若持續等待或驗證失敗，請重跑 setup。\nstatus 讀取引擎上次觀察到的驗證狀態與原因，不啟動 Codex。\n\n忘記或更正記憶時，也會隱藏在記憶保存時間前後 30 分鐘內有訊息的整段對話。\n這可能包含無關對話，也可能漏掉其他談到相同主題的對話。要移除對話，請用 raw delete。\n隱藏對話的分支或續接仍會保持隱藏。Codex 分支對話不會存進本機。\nClaude Code 新對話從第一輪開始保存，包含逐字稿在 session start 之後才建立的情況。\n重新開啟擷取會保留這些隱藏規則，既有對話從下一個實際 hook 看到的逐字稿結尾\n恢復，跳過關閉期間的文字。Claude Code 已在進行中的對話，重新開啟後的第一輪\n也不會保存，後續輪次才恢復。\n\n`uninstall --local` 會關閉擷取、移除 hooks 與 MCP 連接，保留 Raw、身分與綁定的\n引擎，讓重跑 setup 可以恢復。要查看或移除一段對話：\n\n```sh\nnpx @cairn-ink/memory raw list\nnpx @cairn-ink/memory raw list --client codex\nnpx @cairn-ink/memory raw delete <conversation-id>\nnpx @cairn-ink/memory raw delete <conversation-id> --yes\n```\n\n`raw list` 只列出 id、工具、時間範圍、數量與隱藏／封鎖狀態，不顯示文字；\n可用 `--client claude|codex` 篩選。刪除時一次只能指定一個明確的 id，不能用\n萬用字元。預設只預覽數量、工具與時間範圍，加上 `--yes` 才會刪除；未知 id\n會報錯且不改動資料。這兩個指令需要已安裝的本機工具，雲端模式不能使用，\n資料庫與命名空間都沿用 MCP 的設定。\n\n刪除會移除該對話的 Raw 訊息與索引列、Episodes，並依既有來源關聯規則讓相依 Cards 的來源支持失效。已確認、由使用者撰寫的 Card 本文可能仍保留在資料庫。分支、續接或游標重設後重送的副本不會再次保存。從對話抽取的 Memories 會保留；若要移除，仍須各自執行 forget。\n\n`raw delete <conversation-id> --yes` 會在一次執行中完成刪除，並顯示進度數量。\n指令會自動重試，最長約 10 分鐘。若停止時尚未完成，請重跑同一個指令來繼續。\n刪除大型對話時，\n其他工作階段會暫停保存，完成後再補存；依[本機 Raw 指南](../../docs/raw-local-journal.md)\n的同時保存情境，一段 10,000 則訊息的對話約會讓保存暫停 11–15 秒。\n\n多個工作階段同時保存，不再導致其中一個停止保存。預設讀取到達時間上限時，\n會保留已驗證的 Raw 片段並標示為 partial，不會把這些片段丟掉。\n\n**保存後，搜尋需要時間追上。** 每一輪對話結束時就會存進本機資料庫，但 Raw 搜尋要等本機索引處理到這段對話，才找得到它。Raw 搜尋會在 Cairn 執行時於背景建立索引，速度大約每秒一則已保存訊息：1,000 則約需 15 分鐘，10,000 則約 2 小時。每保存一則新訊息，它會重新檢查整個索引（每 1,000 則約 6 分鐘）。建立或重新檢查完成之前，Raw 搜尋仍會回傳結果，但會回報 partial（部分涵蓋）。持續使用時，每次新的保存都會讓索引從頭再跑一次，所以忙碌工作階段中保存的對話，可能要等你停下來後才搜得到。索引追上之前，新保存的對話可能不會出現在結果裡。涵蓋報告會把這類結果標為 partial，但透過記憶工具使用的助理只看得到結果本身，所以這段期間的空結果不代表沒有保存。Memories 與索引已涵蓋的對話不受影響，照常可以搜尋。\n\n使用 `--no-capture` 時，設定只會顯示擷取已關閉，不再顯示預設開啟通知或\nCodex 的 hooks 核准提示。執行 `--no-capture` 或 `config --local-capture off`\n完成之後，所有平台的 status 都會顯示擷取已關閉。\n若關閉作業中斷，status 會提示再次執行關閉指令。\n\n和 Linux 一樣，使用者擁有的對話檔案可以是硬連結。\n\n本版已知限制：\n- 從關閉狀態恢復擷取時，Cairn 會讀取對話檔最後至多 4 KiB，Codex 還會讀取開頭至多 4 KiB 來找出 session 標頭；其中一部分可能是關閉期間寫入的。這些位元組只用來辨識 session、確認檔案沒有被替換，不會保存或送出。\n- 在 macOS，同一使用者或 root 的程式仍可能在驗證期間精準切換目錄來重新導向開啟的檔案，但不會跨越權限邊界。\n- 只要新的對話持續進來，本機 MCP 伺服器就會持續建索引：大約每秒一次小量索引寫入，約佔一個 CPU 核心的 3%。\n- 約 50,000 則訊息以上的歷史可能永遠建不完索引，搜尋會一直回報 partial。\n- 由不自行維護索引的讀取端處理的搜尋（例如設定了 embedding 模型時的純關鍵字搜尋），即使索引已建完，也可能持續回報 partial；搜尋結果仍會照常回傳。\n- 若設定了 embedding 模型，在該資料庫暫停或停用保存時，語意搜尋仍可能把搜尋文字、背景索引維護仍可能把已保存的記憶文字送到該模型供應商；下一版修正。\n- 若替 MCP 伺服器設定了 OpenAI 金鑰，在暫停或停用保存期間，回想、分類、關聯與審閱請求仍可能把查詢和已保存的記憶文字送到 OpenAI；下一版修正。沒有設定金鑰的安裝、以及自動保存都不受影響。\n- 本機設定還不支援自訂的 `CLAUDE_CONFIG_DIR`：設定會停在「無法確認 Claude Code 的本機記憶項目」。下一版修正。\n- 若 `~/.claude` 或 `~/.codex`（或 `CLAUDE_CONFIG_DIR`／`CODEX_HOME`）是符號連結，本機設定會停止，不會連接該工具。下一版修正。\n- macOS 上用 Homebrew 安裝的 Node：設定會記下 Node 帶版本號的路徑，所以 `brew upgrade` 更新 Node 之後請重新執行 setup。下一版修正。\n- 由腳本或 Agent SDK 啟動的 Claude Code 執行（例如 `claude -p`）會和互動式工作階段一樣被保存。\n- 刪除對話或忘記記憶時，那段文字會立刻從 Cairn 的資料庫移除，之後不會再出現；只是因「忘記」而隱藏的對話仍然保存著，要刪除才會移除。本機搜尋索引檔可能還留著被刪內容的詞彙清單（開啟語意搜尋時還有向量），要等背景清理處理到才會移除。清理只在 Cairn 執行時進行，持續有新對話存入時可能一直輪不到，而不再使用的搜尋設定留下的索引檔不會被清理。和多數資料庫一樣，刪掉的文字也可能留在檔案未使用的空間，直到被覆寫。\n- 之後的版本會優先為新保存的對話建索引。\n\n降回 0.6.5 時，若 0.6.6 已在開啟 Raw 的情況下開過\n**經驗證的 base-33、card lineage revision 1 資料庫**（physical 53、lineage 1），\n0.6.5 會以 `unsupported_database` 拒絕開啟；重裝 0.6.6 就能恢復存取。\n**經驗證的 lineage-0 資料庫與一般本機資料庫，0.6.5 都能開啟。** 已保存的 Raw\n仍可搜尋，符合讀取條件的片段也能透過 contextRead 閱讀。已隱藏的對話在\ncurrent 與 history 兩種 Raw 搜尋中都會保持隱藏，因為 0.6.5 仍會遵守既有的\n`raw_session_fences` 記錄。新增的本機資料表會完整保留，0.6.5 不會使用它們。\n0.6.5 本身不會自動擷取，因此它的引擎不會在擷取時使用新的隱藏時間窗與\n分支封鎖規則。它的 setup 會保留 0.6.6 的 hooks，繼續使用原本保留的引擎；\n若要停止它們，請先用 0.6.6 關閉擷取再降版。\n\n## Setup / 安裝\n\n```sh\nnpx @cairn-ink/memory setup\n# Or run this checkout directly / 或直接執行這份原始碼\nnode packages/setup/bin/memory.mjs setup\n```\n\nOn a fresh interactive install, setup asks once where memory should live:\n**1. Local** keeps data on this computer, free and usable offline after\ninstallation, without sync across computers; **2. Cloud** shares memory across\ncomputers and tools with cairn.ink sign-in. Existing cloud users keep their\nflow without a new question.\nUse `setup --local` or `setup --cloud` to choose directly. A fresh\nnon-interactive run without either flag writes nothing and prints both rerun\ncommands.\n\n第一次互動安裝會先問一次記憶要存在哪裡：**1. 本機**把資料留在這台電腦，\n免費、安裝後可離線使用，無法跨電腦同步；**2. 雲端**透過 cairn.ink 登入，\n跨電腦和工具共用記憶。既有雲端使用者維持原流程，不會多問一次。\n也可以用 `setup --local` 或 `setup --cloud` 直接選擇；第一次在非互動終端機\n執行時，若沒選模式，不會寫入設定，會顯示兩個重跑指令。\n\n## Local mode / 本機模式\n\n```sh\nnpx @cairn-ink/memory setup --local\nnpx @cairn-ink/memory status\nnpx @cairn-ink/memory status --verbose\nnpx @cairn-ink/memory uninstall --local\n# Non-interactive confirmation / 非互動確認\nnpx @cairn-ink/memory uninstall --local --yes\n```\n\nNo Cairn account or sign-in is needed. Local mode uses one private root,\n`~/.cairn-memory`, or an absolute `CAIRN_MEMORY_HOME`. It keeps the installation\nrecord in `installation.json`,\nengine generations and the npm cache in `engine/`, and memory by default in\n`data/memory.sqlite` (created during capture setup or first engine use). Initial engine dependency\ninstallation needs npm registry access unless its cache is already populated.\nSetup registers a `cairn-local` stdio MCP server through each client's own CLI:\nuser scope for Claude Code, and `$CODEX_HOME/config.toml` (default `~/.codex`)\nfor Codex. Both use the same database and owner, with an absolute Node path.\nRestart the tools after setup. If Node moves, rerun `setup --local`.\n\n本機模式不需要 Cairn 帳號或登入，共用一個私有目錄，預設為\n`~/.cairn-memory`，也可用絕對路徑的 `CAIRN_MEMORY_HOME` 指定。\n`installation.json` 保存安裝紀錄，`engine/` 放引擎\n版本與 npm 快取，預設在 `data/memory.sqlite` 保存記憶，設定擷取或第一次使用引擎時建立資料庫。\n第一次安裝引擎相依套件需要連到 npm registry，除非快取已備妥。\n安裝器透過各工具的 CLI 註冊 `cairn-local` stdio MCP server：Claude Code\n使用 user scope，Codex 使用 `$CODEX_HOME/config.toml`，預設在 `~/.codex`。\n兩個工具共用資料庫與 owner，並使用 Node 的絕對路徑。安裝後請重開工具；\nNode 路徑變動時，重跑 `setup --local`。\n\n**0.6.7 local mode captures Raw automatically by default on supported platforms.** Use the explicit MCP tools:\n`remember_memory`, `recall_memory`, `inspect_memory`, `correct_memory`,\n`forget_memory`, alongside the default dated contextRead tools\n`find_memory_candidates`, `fetch_memory_candidate_evidence`, and\n`read_memory_context`. Automatic hooks fill Raw without a model; setup does not register `capture_memory`. Saving, inspecting, correcting and forgetting\nneed no model key. Semantic recall needs a model key; without one it reports\n`model_not_configured`. With `OPENAI_API_KEY` available to the Cairn MCP server, memories and search text\ngo to OpenAI for semantic search, up to an estimated US$1 per server run. Saved\nconversations are sent only if you opt in with `--raw-semantic` (or explicitly\nconfigure `--context-embedder`). To keep everything on this computer, don't give\nthe server a key. `--no-context-semantic` only turns off embeddings; with a key,\nrecall and other model features still send memory text to OpenAI.\nLocal storage does not mean all processing is offline. Setup sends no user data;\nit reads the Claude registration configuration file `~/.claude.json` with a\n4 MiB bound and extracts only `type`/`command`/`args` from the named `cairn` and\n`cairn-local` MCP registrations. It does not access credential stores or use\nauthentication fields. Unrelated entries and file contents are never printed.\n\n**0.6.7 本機模式在支援的平台預設自動保存 Raw。** 可明確呼叫 `remember_memory`、\n`recall_memory`、`inspect_memory`、`correct_memory`、`forget_memory`，\n也可使用預設開啟、附日期的 contextRead 工具 `find_memory_candidates`、\n`fetch_memory_candidate_evidence`、`read_memory_context`。自動 hooks 不需要模型就能保存 Raw，setup 不會註冊 `capture_memory`。\n保存、查看、更正與遺忘不需要模型金鑰；語意回想需要模型金鑰，\n沒有時回報 `model_not_configured`。若 Cairn MCP server 的環境有 `OPENAI_API_KEY`，語意搜尋會把記憶與搜尋文字\n傳給 OpenAI，每次 server 執行的預估費用上限為 US$1。已保存的對話只有在你用\n`--raw-semantic`（或明確設定 `--context-embedder`）啟用後才會傳送。\n要讓所有資料都留在這台電腦，請不要提供金鑰給 server。`--no-context-semantic` 只會關閉\nembeddings；有金鑰時，回想和其他模型功能仍會把記憶文字傳給 OpenAI。\n本機儲存不代表所有處理都離線。安裝器不會傳送你的資料；它會讀取上限 4 MiB 的 Claude 註冊設定檔\n`~/.claude.json`，只取出 `cairn`、`cairn-local` MCP 項目的\n`type`／`command`／`args`，不存取憑證儲存區，也不使用驗證欄位。\n無關項目與檔案內容不會印出。\n\nWhen both tools share the database, `storage_busy` is a retryable transient\nresult: retry the operation; it does not mean memory is empty. `status` reports\nregistration, engine, Node and per-client capture on/off/blocked state, reason and Raw cap through read-only engine status; it does not test a live connection. `--verbose` adds private paths, owner, engine ID and retained\nfailed installations. Uninstall disables capture, removes hooks and detaches selected registrations, retaining identity and its pinned runtime; **memory data is kept**.\n`--client claude|codex` limits registration or detachment, not conflict\ndetection.\n`uninstall --local --purge-config` also removes the descriptor and `.npmrc`,\nnever data; it cannot be combined with `--client`. A pending setup must be\nuninstalled without `--client`.\n\n兩個工具共用資料庫時，`storage_busy` 是暫時忙碌，請重試該操作，不能當成\n沒有記憶。`status` 顯示註冊、引擎與 Node 狀態，也會透過唯讀引擎 status 顯示各工具擷取狀態、原因與 Raw 上限，不測試實際連線；`--verbose` 會多顯示私有路徑、owner、引擎 ID 與保留的失敗安裝。\n解除安裝會移除所選工具的連接，保留擷取身分與綁定引擎，**記憶資料\n會保留**。`--client claude|codex` 只限制註冊或解除的工具，衝突仍檢查兩邊。\n`uninstall --local --purge-config` 會加刪安裝紀錄與 `.npmrc`，不刪資料，\n不能搭配 `--client`。尚未完成的安裝若要移除，不能只選單一工具。\n\n### Local options / 本機選項\n\n| Option | Local-mode behavior |\n| --- | --- |\n| `--owner ID` | `setup --local` only, with no descriptor. Otherwise setup generates and persists an owner. |\n| `--db ABS` | `setup --local` only, with no descriptor. Requires an absolute path; supports an external database. Default: `~/.cairn-memory/data/memory.sqlite`, under the selected root's `data/`. |\n| `--project ID` | `setup --local` only, with no descriptor or an `uninstalled` descriptor. Active/pending installations reject changes. |\n| `--yes` | Confirms `uninstall --local` without a prompt; required for non-interactive uninstall. |\n| `--purge-config` | With `uninstall --local`, removes the descriptor and `.npmrc` after detachment, keeping data. Cannot be used with `--client`. |\n| `--dry-run` | With local setup, shows the plan without changing settings, starting the engine or resuming a pending operation. |\n| Hosted setup options | `--endpoint`, `--reauthorize`, `--manual-token`, `--no-browser`, `--no-clipboard`, `--codex-daily-cap`, `--codex-capture-exec` are rejected with `local_option_invalid`. |\n| `--no-capture` / `config --local-capture off\\|on` | Setup opt-out / change local capture; off keeps data. |\n| Hosted controls | `disable`, `pause`, `resume`, `prompt-recall-on`, `prompt-recall-off` and other `config` options are rejected on local-only installations with `local_control_unsupported`. |\n\n| 選項 | 本機模式行為 |\n| --- | --- |\n| `--owner ID` | 只用於 `setup --local`，且不能已有安裝紀錄；省略時會產生並保存 owner。 |\n| `--db ABS` | 只用於 `setup --local`，且不能已有安裝紀錄；須為絕對路徑，可用外部資料庫。預設為所選根目錄下的 `data/memory.sqlite`，一般是 `~/.cairn-memory/data/memory.sqlite`。 |\n| `--project ID` | 只用於 `setup --local`，沒有安裝紀錄或紀錄為 `uninstalled` 時才接受；安裝中或使用中不能改。 |\n| `--yes` | 略過 `uninstall --local` 的確認問題，非互動移除時必須指定。 |\n| `--purge-config` | 搭配 `uninstall --local`，解除連接後加刪安裝紀錄與 `.npmrc`，保留資料，不能搭配 `--client`。 |\n| `--dry-run` | 本機安裝預演，不改設定、不啟動引擎，也不接續尚未完成的操作。 |\n| 雲端安裝選項 | `--endpoint`、`--reauthorize`、`--manual-token`、`--no-browser`、`--no-clipboard`、`--codex-daily-cap`、`--codex-capture-exec` 會回報 `local_option_invalid`。 |\n| `--no-capture` / `config --local-capture off\\|on` | 安裝時關閉／切換本機擷取；關閉保留資料。 |\n| 雲端控制 | 本機模式使用 `disable`、`pause`、`resume`、`prompt-recall-on`、`prompt-recall-off` 與其他 `config` 選項會回報 `local_control_unsupported`。 |\n\nIf `claude mcp` or `codex mcp` lacks the required subcommands, setup prints a\nmanual registration snippet, marks that client `manual`, and exits 1. Follow\nthe snippet; this result does not prove an active connection.\n\nIf setup is killed, it leaves `.setup.lock`. Recovery is blocked while setup\nor its npm child is still running. Once both have stopped, the next run prints\nthe stale-lock check and exact `rm` command. Confirm no install is running,\nthen use that command to remove only the stale lock. Rerun `setup --local` to\nresume the recorded operation. The lock is never auto-removed.\n\n若 `claude mcp` 或 `codex mcp` 缺少所需子指令，安裝器會印出手動註冊片段，\n把該工具標為 `manual`，並以 exit 1 結束。請依片段操作，這個結果不代表已連線。\n\n若安裝程序被強制結束，會留下 `.setup.lock`。安裝程序或 npm 子程序仍在執行\n時不能恢復；兩者都停止後，下次執行會顯示過期鎖檢查提示與完整 `rm` 指令。\n先確認沒有安裝仍在執行，再用該指令移除過期鎖，之後重跑 `setup --local`\n才會接續紀錄中的操作。安裝器不會自動刪鎖。\n\nLocal and cloud cannot be mixed across these clients. A conflict or unreadable\nconfiguration refuses setup without writes. To switch from cloud, follow the\nprinted commands in order, only for entries that exist:\n\n1. Codex: `npx @cairn-ink/memory uninstall --client codex`, then\n   `codex mcp remove cairn` (hosted uninstall keeps the MCP table).\n2. Claude Code: `claude plugin uninstall cairn-memory@cairn-memory --scope user`\n   for user scope; repeat with each scope printed by setup. If the legacy\n   user-scope server exists, run `claude mcp remove --scope user cairn`.\n3. Run `npx @cairn-ink/memory setup --local`.\n\nTo switch to cloud, run `npx @cairn-ink/memory uninstall --local`, then\n`npx @cairn-ink/memory setup --cloud`. There is no data migration between modes.\nIf Claude shows two `cairn-local` servers, check `claude mcp list`:\nproject/local\nscope can shadow user scope, which setup does not detect. Automatic saving runs on Linux, WSL and macOS (Claude Code). Codex automatic saving on macOS isn't supported yet. Native Windows local setup is refused (use WSL). The engine enables Raw retention for submitted captures, background Raw search\nand dated three-layer contextRead with its preferred tools by default.\nUse `--no-raw`, `--no-raw-search` or `--no-context-read` in the server registration\nto disable them. Library `openMemoryCore` keeps Raw off unless `raw:true` is\nsupplied; stores whose attested layout cannot hold Raw run Memory-only. It uses BM25 without a key;\n`OPENAI_API_KEY` enables bounded Memory and Card embeddings. Raw document and\nquery embeddings require `--raw-semantic` or an explicit `--context-embedder`\nconfiguration; otherwise Raw uses BM25. `--no-context-semantic` disables all\nsemantic search. See [defaults and off switches](../../docs/defaults.md).\n\n這兩個工具之間不能混用本機與雲端；遇到衝突或讀不到設定時，安裝器不改動設定。\n從雲端切換時，依畫面指令順序操作，只移除實際存在的項目：\n\n1. Codex：先執行 `npx @cairn-ink/memory uninstall --client codex`，\n   再執行 `codex mcp remove cairn`，因為雲端解除安裝會保留 MCP 項目。\n2. Claude Code：user scope 使用\n   `claude plugin uninstall cairn-memory@cairn-memory --scope user`，\n   其他 scope 依安裝器列出的指令逐一移除；有舊 user-scope MCP server 時，\n   再執行 `claude mcp remove --scope user cairn`。\n3. 執行 `npx @cairn-ink/memory setup --local`。\n\n切回雲端則先執行 `npx @cairn-ink/memory uninstall --local`，再執行\n`npx @cairn-ink/memory setup --cloud`，兩種模式不會搬移資料。\nClaude 若出現兩個 `cairn-local`，請用 `claude mcp list` 檢查；project／local\nscope 可能蓋過 user scope，安裝器不會偵測這種情況。自動保存支援 Linux、\nWSL 與 macOS（Claude Code）；Codex 在 macOS 還不支援自動保存。\nWindows 原生環境會拒絕本機安裝，請用 WSL。\n安裝器不會開啟引擎的選用功能。\n\n## Cloud mode / 雲端模式\n\nSetup finds both tools, asks about new connections, and updates tools already\nconnected. Claude defaults to yes; Codex requires yes. When sharing memory,\nclose both tools and wait for background work to finish, then confirm once.\nThe default server is cairn.ink, shown on the browser sign-in line. There is no\nendpoint or daily-cap question. `--endpoint https://your-server` remains supported.\n\n安裝器會找出兩個工具，只詢問尚未連接的工具；已連接的工具直接更新。\nClaude 預設同意，Codex 需要明確同意。共用記憶前，請完全關閉兩個工具、\n等背景工作結束，再回答「都關好了嗎？」。預設連到 cairn.ink，登入時會顯示；\n不用回答伺服器或每日上限的問題。需要自架伺服器時可用 `--endpoint`。\n\nA memory ID connects the same project across tools. Setup retains existing IDs\nand never silently switches them. Conflicting servers offer two choices. Codex\nMCP URL changes are allowed only for verified URL-bound OAuth storage (0.160.1)\nand configurations without explicit authentication fields; otherwise sign out\nand remove its MCP entry before retrying. Two independent IDs require a choice.\nThe other key is renamed to a unique backup only after sign-in and validation\nsucceed, under the existing setup lock. It is never deleted. This preserves the\nlocal key; old projects may no longer automatically match it. Setup does not\npromise that all old account memories remain recallable with the selected ID.\nNon-interactive conflict handling writes nothing and prints the rerun command.\n\n「記憶身分」讓兩個工具認得同一個專案。既有身分會保留，不會默默切換。\n兩邊連到不同伺服器時可選其中一邊；無法確認 Codex 憑證會依網址隔離時，\n會請你先登出並移除 MCP 設定。兩份獨立身分需要選擇，另一把 key 只在登入\n與驗證成功後才於鎖內改名備份，永不刪除。備份保留本機 key，但舊專案可能\n不再自動對上原來的記憶。非互動終端機遇到衝突不會改設定，會顯示重跑指令。\n\nOne browser grant connects both tools. Adding Claude after Codex validates and\nreuses the installer-owned credential. Adding Codex after Claude needs a browser\ngrant using the same account; Claude's sign-in is kept. Setup never reads Claude\nnative secret files. Enter the displayed one-time code on the device page;\npress Enter to open it, or use `--no-browser` to open it on another device.\n\n兩個工具第一次一起設定只需登入一次。先裝 Codex、後加 Claude，會驗證並\n沿用安裝器保存的登入；先裝 Claude、後加 Codex，需要用同一帳號登入一次。\nClaude 原有登入會保留。安裝器不讀取 Claude 原生秘密檔案。\n\nTo stop prompt recall while keeping automatic capture, run\n`npx @cairn-ink/memory prompt-recall-off --client codex`.\nUse `prompt-recall-on --client codex` to enable it again. This does not change MCP.\n\n要關閉提問回想、保留自動保存，請執行\n`npx @cairn-ink/memory prompt-recall-off --client codex`。\n用 `prompt-recall-on --client codex` 重新開啟；MCP 不受影響。\n\n## Cloud privacy / 雲端隱私\n\nConversations are saved after best-effort local masking. Each prompt sends a\nmasked, length-limited copy for recall. Claude plugin usage stats are on by\ndefault and can be turned off. Codex's sign-in is an unencrypted file readable\nonly by its owner. Details and controls: [privacy](https://cairn.ink/memory/privacy).\n\n對話會先在本機盡力遮蔽敏感內容，再保存。每次提問也會傳送遮蔽、限制長度的\n副本來找相關記憶。Claude 外掛預設傳送使用統計，可以關閉；Codex 登入存於\n未加密、僅使用者可讀的檔案。詳情與控制方式見上方隱私頁。\n\n## Cloud commands / 雲端指令\n\n```sh\nnpx @cairn-ink/memory setup --client claude\nnpx @cairn-ink/memory setup --client codex\nnpx @cairn-ink/memory setup --reauthorize\nnpx @cairn-ink/memory setup --no-browser --no-clipboard\nnpx @cairn-ink/memory setup --dry-run\nnpx @cairn-ink/memory status\nnpx @cairn-ink/memory prompt-recall-off --client codex\nnpx @cairn-ink/memory pause\nnpx @cairn-ink/memory resume\nnpx @cairn-ink/memory config --codex-daily-cap 300\nnpx @cairn-ink/memory uninstall --client codex\n```\n\nAutomated `codex exec` runs are not saved or given prompt-recall context by\ndefault. Opt in with `npx @cairn-ink/memory config --codex-capture-exec on`\n(or add `--codex-capture-exec on` during setup); `off` restores the default.\nThe setting enables both capture and recall for exec. Setup preserves it and\n`status` shows it only when on. The signal is the verified, session-bound\n`session_meta.payload.source` in the transcript header, plus a native exec\nancestor for `exec resume` of a thread originally created interactively. Missing, partial or\nunverifiable headers skip capture and recall. Interactive CLI sessions continue\nnormally once their header is available. App-server threads (the TUI since Codex\n0.160, the VS Code extension and the desktop app) count as interactive only when\ntheir header `originator` names one of those clients; any other app-server client\nis treated like exec and needs the same opt-in. Older frozen runtimes need a setup\nupdate first; config prints the exact setup command before changing anything.\n\nCodex 只會記下你自己的對話。`codex exec` 和其他由程式自動跑的\nCodex 工作預設不會記下，也不會注入提問回想。\n若需要，可用 `npx @cairn-ink/memory config --codex-capture-exec on` 開啟，\n或安裝時加上同名選項；改成 `off` 就能關閉。這個設定同時開啟保存與回想。\n重跑安裝會保留設定；只有開啟時，`status` 才會顯示。\n來源以 transcript 首筆經驗證、符合本次 session ID 的\n`session_meta.payload.source` 判斷；也檢查原生程序的 exec 指令，\n避免自動續跑互動對話時漏判。無法確認 transcript 時，略過保存與回想。\n走 app-server 的對話（Codex 0.160 起的 TUI、VS Code extension、桌面 app）\n只有 header 的 `originator` 是這三種用戶端之一時才算互動；\n其他 app-server 用戶端視同 exec，同樣要先開啟上面的設定。\n\nCodex defaults to 200 automatic captures per day. Existing installs keep their\nstored cap. Use `setup --codex-daily-cap N` or `config --codex-daily-cap N` to change\nit (integer 1–100000). With an existing daily counter, cap changes apply at the next daily reset.\nStatus shows today's effective cap and any pending change; reaching the cap pauses\nCodex automatic capture until the next day. Claude's quota remains independent.\n`pause` and `resume` select installed Codex automatically; a paired installation\nshares the pause with Claude. A Claude-only installation prints its plugin command.\nPausing does not backfill conversations. `disable --client codex` removes hooks\nand retains settings. Uninstall preserves memories, keys and MCP settings.\n\nCodex 預設每天自動保存 200 次，既有安裝保留原上限。可用上方 `config` 指令，\n或安裝時加 `--codex-daily-cap N` 修改。已有當日計數時，新上限在下次每日重置套用，不會重設已用次數。\n`status` 顯示「今日 12 / 200」這類計數與待套用的變更；\n用完後停止自動保存，隔天重新計數。Claude 的額度獨立計算。\n省略 `--client` 的暫停、恢復指令會使用已安裝的 Codex；共用身分時也暫停 Claude。\n只有 Claude 時會顯示外掛指令。暫停期間的對話不會事後補存。\n\n`--verbose` shows technical diagnostics without tokens. `status` reads local\nstate; it does not verify remote service or hooks. Review the four Cairn hooks\nin Codex `/hooks` after setup. Unqualified formats do not enable automatic memory;\nCodex-only setup can offer manual MCP tools. `--manual-token` is a single-client\nMCP/Claude fallback; shared automatic hooks require browser authorization.\nLegacy Claude MCP removal asks explicitly before writes.\n\n`--verbose` 顯示技術診斷，不會印出 token。`status` 只讀本機狀態，不驗證遠端或\nhooks。安裝後請在 Codex `/hooks` 檢查並允許四項 Cairn 設定。\n\n[Format qualification and runtime safeguards](../../docs/codex-setup.md) ·\n[0.5.0 investigation and safe copy decisions](../../docs/setup-v05-investigation.md)\n\n## Verification\n\n```sh\nTMPDIR=/absolute/dedicated/test-tmp npm run test:setup\nnode packages/setup/build-runtime.mjs --check\nnpm pack --dry-run --prefix packages/setup\n```\n\nTests use synthetic CLIs, authorization and credentials. No personal memories\nor native credentials are read. Run suites serially in a dedicated TMPDIR.\n","readmeFilename":"README.md"}