{"_id":"@avi-total-recall/total-recall","_rev":"7-b82074e876443c195c91a1e2de2dba49","name":"@avi-total-recall/total-recall","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@avi-total-recall/total-recall","version":"0.1.0","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.1.0","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"71c6f7b73867c42f79b897322310b9c7559c9e28","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.1.0.tgz","fileCount":52,"integrity":"sha512-MrcwEv9eWx50HWJMScE1kqHmHl+waaHFO28q9W6UHW8787y4h3UUSfrb8QSyCn255D48XDhDE+L2+X8766kP8g==","signatures":[{"sig":"MEYCIQDGwQsB2TZEhcY6ey9xq0Gk2G3pHPNueeSXaWUN4OX9ZwIhAPaQaWxE+e93sQvCRC/A6wb1qkvoXiq19hEGw+W++477","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":563187},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"f7aac518fd6a4c7d54eaad83edd39bea013147eb","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","express":"^5.2.1","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.1.0_1774506577544_0.7533777519365046","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@avi-total-recall/total-recall","version":"0.2.0","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.2.0","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"6b723cd89952317ca0658fb9fc72b9eea4de842d","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.2.0.tgz","fileCount":58,"integrity":"sha512-zJNBij0+CwCx5YMaQjNYcQZY0e4vQ7DAvJmlk114uAXfiqck+Bpgd3cwOchty17x36CqcFlhjEKf4NQjWtYr2w==","signatures":[{"sig":"MEQCIGqZGvNOkpuf8UQihUuNaJ56rXlgo1rVUQ0BMcU/1NbOAiBD46J02zy9PRi6zP0JGD/8lmTTGT186Vi3Dd0tuczBeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661787},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"8087dc55789285732ec8313bf2dd12962d6c6f35","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","express":"^5.2.1","natural":"^8.1.1","@libsql/client":"^0.17.2","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.2.0_1774528348284_0.6474118153163257","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@avi-total-recall/total-recall","version":"0.2.1","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.2.1","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"b0abc88f9fa65dfcd1aae3f44ab7ceeaf40c8732","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.2.1.tgz","fileCount":60,"integrity":"sha512-lIuV/5WCcKu0h5l8wD3S8f1Bx8bsUyHU8OK+SYg2VoUzDk/kCd9ec80frHd/Cau/poPfINxigFOXLHtMELLbVA==","signatures":[{"sig":"MEUCIQDtypaSAsUOYjxyVZpL1+DArkSyZApSzxZ5SGRSCEwmzwIgcyCY9vjKuJSQ3T1svVDQkBTn6zSzXE3E7PZ9d2YhRXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692984},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"39394873d0cc3661ccb9f6533e5ed14765108ab9","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","stripe":"^21.0.0","express":"^5.2.1","natural":"^8.1.1","@libsql/client":"^0.17.2","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.2.1_1774534615125_0.5491403939865303","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@avi-total-recall/total-recall","version":"0.2.2","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.2.2","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"homepage":"https://github.com/BAS-More/Total-Recall#readme","bugs":{"url":"https://github.com/BAS-More/Total-Recall/issues"},"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"4c4b4f91a470c507fecd182b69c944e9299b52aa","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.2.2.tgz","fileCount":62,"integrity":"sha512-+W5A9kZXai/0T+ComKt9ACqNC7MoCBUXCYngzX/Aci5n43NYuIqt2z43jFa0a6FiRmIkCk1acXLrp7IqOYr1Mg==","signatures":[{"sig":"MEYCIQCktzegIXiaTKKgBsUnOZPqnado5v58vSruhVXFJ+M66QIhANL27NliQ4u1GC/m7248BLFSihP9QurD2nMlA8ktLFA3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706169},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"041b578722b57499f0d05368aa89bfa8019da07e","mcpName":"io.github.bas-more/total-recall","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"repository":{"url":"git+https://github.com/BAS-More/Total-Recall.git","type":"git"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","stripe":"^21.0.0","express":"^5.2.1","natural":"^8.1.1","@libsql/client":"^0.17.2","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.2.2_1774538602254_0.5556616391079396","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@avi-total-recall/total-recall","version":"0.2.3","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.2.3","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"homepage":"https://github.com/BAS-More/Total-Recall#readme","bugs":{"url":"https://github.com/BAS-More/Total-Recall/issues"},"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"db9a4915265e295ce7f77c19507666c656cf9e91","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.2.3.tgz","fileCount":62,"integrity":"sha512-ufTAmoWJfpfptawxqb+qu7Ql2PgLk7G0Yz+/3f3XrhJa5ce5wQkLd5ISqml9AQv0zQaf4EvMAY2yXm5nb3gbaQ==","signatures":[{"sig":"MEUCIFQkJNTvnwiFCz19LBYHTy/kvJXK/ghZoJ4tf6SaAw1CAiEAileFunu1WZblw6mFtyAoYLRfo5NacXJj6e2XAwsHScg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706174},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"041b578722b57499f0d05368aa89bfa8019da07e","mcpName":"io.github.Avi-Bendetsky/total-recall","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"repository":{"url":"git+https://github.com/BAS-More/Total-Recall.git","type":"git"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","stripe":"^21.0.0","express":"^5.2.1","natural":"^8.1.1","@libsql/client":"^0.17.2","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.2.3_1774538920833_0.560770374068096","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@avi-total-recall/total-recall","version":"0.2.4","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","_id":"@avi-total-recall/total-recall@0.2.4","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"homepage":"https://github.com/BAS-More/Total-Recall#readme","bugs":{"url":"https://github.com/BAS-More/Total-Recall/issues"},"bin":{"total-recall":"bin/total-recall.js"},"dist":{"shasum":"818ac7c5b6ee91deb08a9ef05b31807d625fd62e","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.2.4.tgz","fileCount":62,"integrity":"sha512-VdSwcOJhqTxNNnvmqli7URSI7XCWXcVXjy0la+33UzfwvJL6xZIWlPohr6dzuQkgzBtTPYYz3PCufnrQ3IaiiQ==","signatures":[{"sig":"MEYCIQDLCu7If5H9nbr9zrpLKlzDOVineO6a8s/kaDgPXy41FQIhAI5wpVVpU6X0/rnLoZFNKDmiOJp2soC7kEYZ047ffc3w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706169},"main":"src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"a0b9fef6541cb8540f77c38d68f6702150763648","mcpName":"io.github.BAS-More/total-recall","scripts":{"api":"node src/api.js","lint":"eslint src/ test/ bin/","test":"node --test test/*.test.js test/tools/*.test.js","start":"node src/index.js","doctor":"node bin/total-recall.js doctor","pretest":"npm run lint","lint:fix":"eslint --fix src/ test/ bin/","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js"},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"repository":{"url":"git+https://github.com/BAS-More/Total-Recall.git","type":"git"},"_npmVersion":"11.9.0","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^3.24.4","cors":"^2.8.6","uuid":"^11.1.0","chalk":"^5.4.1","helmet":"^8.1.0","stripe":"^21.0.0","express":"^5.2.1","natural":"^8.1.1","@libsql/client":"^0.17.2","better-sqlite3":"^11.9.1","express-rate-limit":"^8.3.1","@supabase/supabase-js":"^2.100.0","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"_npmOperationalInternal":{"tmp":"tmp/total-recall_0.2.4_1774539077447_0.9723577123310849","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@avi-total-recall/total-recall","version":"0.3.0","mcpName":"io.github.BAS-More/total-recall","description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","type":"module","main":"src/index.js","repository":{"type":"git","url":"git+https://github.com/BAS-More/Total-Recall.git"},"bin":{"total-recall":"bin/total-recall.js"},"scripts":{"start":"node src/index.js","api":"node src/api.js","lint":"eslint src/ test/ bin/","lint:fix":"eslint --fix src/ test/ bin/","pretest":"npm run lint","test":"node --test test/*.test.js test/tools/*.test.js","test:coverage":"npx c8 --check-coverage --lines 80 --branches 80 --functions 80 --statements 80 --reporter=text --reporter=lcov node --test test/*.test.js test/tools/*.test.js","doctor":"node bin/total-recall.js doctor"},"engines":{"node":">=20"},"keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","dependencies":{"@libsql/client":"^0.17.2","@modelcontextprotocol/sdk":"^1.27.1","@supabase/supabase-js":"^2.100.0","better-sqlite3":"^11.9.1","chalk":"^5.4.1","cors":"^2.8.6","express":"^5.2.1","express-rate-limit":"^8.3.1","helmet":"^8.1.0","natural":"^8.1.1","stripe":"^21.0.0","uuid":"^11.1.0","zod":"^3.24.4"},"devDependencies":{"eslint":"^10.1.0","globals":"^17.4.0"},"gitHead":"6a29c05b5aca25a58e266809c2ba984aba9aae57","_id":"@avi-total-recall/total-recall@0.3.0","bugs":{"url":"https://github.com/BAS-More/Total-Recall/issues"},"homepage":"https://github.com/BAS-More/Total-Recall#readme","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-NfIZXqsecESmOMVa3RsBljE95Ae+5tcrZRIFQ1VpzPYjeLdb7QTE87oMg0VfGHrgsOoe6XHAtvuowC0/9NEeFQ==","shasum":"ac8eda2936d17cf3a7cef043917f7d2bffbc227f","tarball":"https://registry.npmjs.org/@avi-total-recall/total-recall/-/total-recall-0.3.0.tgz","fileCount":75,"unpackedSize":904152,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/66HQZ40RGFG5JreLYvslJl2W9CQJOoFRC9HslHu75QIgZenWOZXM8VnzipKfSp1ayej3pIZNQJBkqa7Kh3NU/Tk="}]},"_npmUser":{"name":"avi770","email":"avi@basnmore.com.au"},"directories":{},"maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/total-recall_0.3.0_1774552078128_0.40642290158052563"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T06:29:37.416Z","modified":"2026-03-26T19:07:58.485Z","0.1.0":"2026-03-26T06:29:37.704Z","0.2.0":"2026-03-26T12:32:28.519Z","0.2.1":"2026-03-26T14:16:55.346Z","0.2.2":"2026-03-26T15:23:22.450Z","0.2.3":"2026-03-26T15:28:41.023Z","0.2.4":"2026-03-26T15:31:17.645Z","0.3.0":"2026-03-26T19:07:58.311Z"},"bugs":{"url":"https://github.com/BAS-More/Total-Recall/issues"},"author":{"name":"Avi Bendetsky — BAS & More"},"license":"MIT","homepage":"https://github.com/BAS-More/Total-Recall#readme","keywords":["mcp","ai-memory","sqlite","claude","total-recall","avi-os"],"repository":{"type":"git","url":"git+https://github.com/BAS-More/Total-Recall.git"},"description":"Portable MCP server giving AI agents persistent, verified, cross-session memory","maintainers":[{"name":"avi770","email":"avi@basnmore.com.au"}],"readme":"<p align=\"center\">\r\n  <img src=\"https://img.shields.io/badge/MCP-Compatible-blue?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiIvPjwvc3ZnPg==\" alt=\"MCP Compatible\">\r\n  <img src=\"https://img.shields.io/badge/Tools-26-green?style=for-the-badge\" alt=\"26 Tools\">\r\n  <img src=\"https://img.shields.io/badge/Tests-204%20passing-brightgreen?style=for-the-badge\" alt=\"204 Tests Passing\">\r\n  <img src=\"https://img.shields.io/badge/SQLite-WAL%20Mode-orange?style=for-the-badge&logo=sqlite&logoColor=white\" alt=\"SQLite WAL\">\r\n  <img src=\"https://img.shields.io/badge/Node.js-20%2B-339933?style=for-the-badge&logo=nodedotjs&logoColor=white\" alt=\"Node.js 20+\">\r\n  <img src=\"https://img.shields.io/badge/Chrome%20Extension-Manifest%20v3-yellow?style=for-the-badge&logo=googlechrome&logoColor=white\" alt=\"Chrome Extension\">\r\n</p>\r\n\r\n<h1 align=\"center\">Total Recall</h1>\r\n\r\n<p align=\"center\">\r\n  <strong>Portable AI memory — persistent, verified, universal.</strong>\r\n  <br>\r\n  <em>MCP server + REST API + Chrome Extension. Works everywhere AI does.</em>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"#quick-start\">Quick Start</a> &bull;\r\n  <a href=\"#connection-matrix\">Platform Matrix</a> &bull;\r\n  <a href=\"#architecture\">Architecture</a> &bull;\r\n  <a href=\"#tools\">26 Tools</a> &bull;\r\n  <a href=\"docs/USER-MANUAL.md\">Full Manual</a> &bull;\r\n  <a href=\"docs/API-REFERENCE.md\">API Reference</a>\r\n</p>\r\n\r\n---\r\n\r\n## The Problem\r\n\r\nAI agents are **stateless**. Every session starts from zero. Mid-conversation context decays. Knowledge doesn't travel between sessions, machines, or agents — and on platforms like claude.ai or ChatGPT, you can't even connect an MCP server.\r\n\r\n**Total Recall fixes this permanently, on every platform.**\r\n\r\n## What It Solves\r\n\r\n| Problem | Solution |\r\n|:--------|:---------|\r\n| Agent forgets everything between sessions | Permanent knowledge base across 12 categories |\r\n| Agent forgets mid-conversation | Checksummed session state verified every turn |\r\n| Agent repeats past mistakes | Corrections loaded first + failure pattern matching |\r\n| Agent claims things without proof | Verification engine (files, git, claims) |\r\n| Knowledge conflicts go unnoticed | Contradiction detection on every write |\r\n| Context window overflows | Smart budget manager drops low-relevance entries |\r\n| Tasks span multiple sessions | Multi-session task tracking with timelines |\r\n| Claude.ai and ChatGPT have no MCP support | Chrome Extension bridges via REST API |\r\n\r\n---\r\n\r\n## Connection Matrix\r\n\r\n| Platform | Connection Method | Auto-Inject | Auto-Capture |\r\n|:---------|:-----------------|:-----------:|:------------:|\r\n| Claude Desktop | MCP (stdio) | Via tools | Via tools |\r\n| Claude Code | MCP (stdio) | Via tools | Via tools |\r\n| Cursor | MCP (stdio) | Via tools | Via tools |\r\n| VS Code + Continue | MCP (stdio) | Via tools | Via tools |\r\n| claude.ai | Chrome Extension + REST API | Yes | Yes |\r\n| ChatGPT | Chrome Extension + REST API | Yes | Yes |\r\n| Gemini | Chrome Extension + REST API | Yes | Yes |\r\n| Perplexity | Chrome Extension + REST API | Yes | Yes |\r\n| Microsoft Copilot | Chrome Extension + REST API | Yes | Yes |\r\n| Poe | Chrome Extension + REST API | Yes | Yes |\r\n| Mistral AI | Chrome Extension + REST API | Yes | Yes |\r\n| Google AI Studio | Chrome Extension + REST API | Yes | Yes |\r\n| Any HTTP client | REST API directly | Manual | Manual |\r\n\r\n---\r\n\r\n## Quick Start\r\n\r\n### For MCP Clients (Claude Desktop, Cursor, etc.)\r\n\r\n```bash\r\n# 1. Clone and install\r\ngit clone https://github.com/BAS-More/Total-Recall.git\r\ncd Total-Recall\r\nnpm install\r\n\r\n# 2. Run setup wizard\r\nnode bin/total-recall.js init\r\n\r\n# 3. Restart your MCP client\r\n# Total Recall is now active.\r\n```\r\n\r\n### For claude.ai / ChatGPT / Gemini (Chrome Extension)\r\n\r\n```bash\r\n# 1. Install and set up (same as above)\r\nnpm install\r\nnode bin/total-recall.js init\r\n\r\n# 2. Start the REST API server\r\nnpm run api\r\n# Running on http://127.0.0.1:3777\r\n\r\n# 3. Install the Chrome extension\r\n# Open chrome://extensions → Enable Developer Mode → Load Unpacked → select extension/\r\n\r\n# 4. Visit claude.ai or chatgpt.com\r\n# The extension connects automatically — look for the green dot\r\n```\r\n\r\n---\r\n\r\n## Architecture\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────────────┐\r\n│                        CONNECTION LAYER                              │\r\n├──────────────────────┬──────────────────────┬───────────────────────┤\r\n│  MCP Clients         │  Browser Extension   │  HTTP Clients         │\r\n│  Claude Desktop      │  claude.ai           │  curl, scripts,       │\r\n│  Claude Code         │  ChatGPT             │  ChatGPT Actions,     │\r\n│  Cursor, VS Code     │  Gemini, Perplexity  │  mobile apps          │\r\n│  Any MCP client      │  Copilot, Poe, +more │                       │\r\n└──────────┬───────────┴──────────┬───────────┴──────────┬────────────┘\r\n           │ stdio (MCP)          │ HTTP :3777            │ HTTP :3777\r\n           ▼                      ▼                       ▼\r\n┌──────────────────────┐ ┌──────────────────────────────────────────┐\r\n│  Total Recall        │ │         Total Recall REST API            │\r\n│  MCP Server          │ │         (src/api.js)                     │\r\n│  26 tools            │ │  /health  /session/*  /remember          │\r\n│  (src/index.js)      │ │  /recall  /context    /batch-remember    │\r\n│                      │ │  /stats   /recall/:id                    │\r\n└──────────┬───────────┘ └──────────────────┬───────────────────────┘\r\n           │                                 │\r\n           └─────────────────┬───────────────┘\r\n                             ▼\r\n┌────────────────────────────────────────────────────────────────────┐\r\n│                    TOTAL RECALL CORE                                │\r\n├────────────────────────────────────────────────────────────────────┤\r\n│                                                                     │\r\n│  Knowledge Engine          Intelligence Layer                       │\r\n│  ├── 12 categories         ├── Relevance scoring (6 factors)       │\r\n│  ├── Contradiction detect  ├── Trigger-based recall                 │\r\n│  ├── Confidence + TTL      ├── NL query routing                    │\r\n│  └── Version history       └── Context budget management           │\r\n│                                                                     │\r\n│  Session System            Prevention & Verification                │\r\n│  ├── State files           ├── Correction engine (highest priority) │\r\n│  ├── SHA-256 checksums     ├── Failure pattern matching             │\r\n│  ├── Quality scoring       ├── File + git + claim verification      │\r\n│  └── Audit trail           └── Intent decomposition                 │\r\n│                                                                     │\r\n│  Scale & Resilience                                                  │\r\n│  ├── Multi-session tasks   ├── Delegation packages                  │\r\n│  ├── Dependency graph      ├── Predictive pre-loading               │\r\n│  ├── Sync queue            └── Auto-pruning                        │\r\n│  └── Cross-agent support                                            │\r\n│                                                                     │\r\n├────────────────────────────────────────────────────────────────────┤\r\n│  SQLite (WAL mode) — 11 tables, 17 indexes — better-sqlite3        │\r\n│                                                                     │\r\n│  Optional: Supabase cloud sync (Phase 5)                           │\r\n└────────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n---\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n\r\n- Node.js 20+ (`node --version`)\r\n- npm (comes with Node.js)\r\n- Git (for verification features)\r\n- Any Chromium browser (for extension: Chrome, Edge, Brave, Arc, Vivaldi)\r\n\r\n### Install\r\n\r\n```bash\r\ngit clone https://github.com/BAS-More/Total-Recall.git\r\ncd Total-Recall\r\nnpm install\r\nnode bin/total-recall.js init\r\n```\r\n\r\nThe init wizard creates your machine ID, initializes the database, and offers to patch your Claude Desktop config automatically.\r\n\r\n### Connect to Claude Desktop\r\n\r\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\r\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"total-recall\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"C:\\\\path\\\\to\\\\Total-Recall\\\\src\\\\index.js\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nRestart Claude Desktop. Ask it to call `health_check` to verify.\r\n\r\n### Connect to Claude Code\r\n\r\n```bash\r\n# Add to ~/.claude/.mcp.json (global, all projects)\r\n{\r\n  \"mcpServers\": {\r\n    \"total-recall\": {\r\n      \"command\": \"node\",\r\n      \"args\": [\"/path/to/Total-Recall/src/index.js\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOr add `.mcp.json` to a specific project directory.\r\n\r\n### Start the REST API\r\n\r\n```bash\r\nnpm run api\r\n# Total Recall API running on http://127.0.0.1:3777\r\n```\r\n\r\nThe API runs on localhost only. It accepts connections from the Chrome extension and local tools.\r\n\r\n### Install the Chrome Extension\r\n\r\n1. Open `chrome://extensions` (or `edge://extensions`)\r\n2. Enable **Developer mode** (top-right toggle)\r\n3. Click **Load unpacked**\r\n4. Select the `extension/` directory from this repository\r\n5. Visit any supported AI chat platform — the extension connects automatically\r\n\r\n---\r\n\r\n## Tools\r\n\r\n### 26 Tools Across 9 Categories\r\n\r\n<table>\r\n<tr>\r\n<td width=\"50%\" valign=\"top\">\r\n\r\n#### Session Management\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `session_start` | Begin conversation, load corrections + rules |\r\n| `session_state_read` | Refresh mid-conversation memory |\r\n| `session_state_write` | Save files, decisions, errors, facts |\r\n| `session_close` | End session with quality score |\r\n\r\n#### Knowledge Operations\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `remember` | Store facts, decisions, errors, patterns |\r\n| `recall` | Natural language search with confidence |\r\n| `recall_by_id` | Get specific entry by UUID |\r\n| `recall_by_category` | Load all entries in a category |\r\n| `forget` | Archive outdated knowledge |\r\n\r\n#### Corrections\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `correct` | Record user correction (permanent, highest priority) |\r\n\r\n</td>\r\n<td width=\"50%\" valign=\"top\">\r\n\r\n#### Verification\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `verify_file` | Check file exists + has content + git-tracked |\r\n| `verify_push` | Compare local HEAD vs remote HEAD |\r\n| `verify_claim` | Verify claim against stored decisions |\r\n\r\n#### Context & Intelligence\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `load_context` | Smart load with relevance scoring + budget |\r\n| `get_budget` | Check token budget allocation |\r\n\r\n#### Tasks & Delegation\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `task_create` | Create multi-session task |\r\n| `task_update` | Update status, blockers, deliverables |\r\n| `task_list` | Filter tasks by project/status |\r\n| `delegate` | Create context package for agent handoff |\r\n\r\n#### Dependencies & System\r\n| Tool | Purpose |\r\n|:-----|:--------|\r\n| `add_dependency` | Track component relationships |\r\n| `query_dependencies` | Change impact analysis |\r\n| `remove_dependency` | Remove relationship |\r\n| `health_check` | Full system status |\r\n| `export_knowledge` | Export to JSON for backup |\r\n| `doctor` | Diagnostics and repair |\r\n| `sync` | Cloud sync (Supabase) |\r\n\r\n</td>\r\n</tr>\r\n</table>\r\n\r\n---\r\n\r\n## Knowledge Categories\r\n\r\nTotal Recall organizes knowledge into **12 categories**, each with specific behavior:\r\n\r\n| Category | Loaded | Prunable | Purpose |\r\n|:---------|:------:|:--------:|:--------|\r\n| `correction` | Always | Never | Past mistakes — highest priority |\r\n| `rule` | Always | Never | Permanent behavioral rules |\r\n| `decision` | By relevance | After 90 days | Locked decisions with rationale |\r\n| `error` | By relevance | After 90 days | Failures with root cause + fix |\r\n| `fact` | By relevance | After 90 days | Verified truths about systems |\r\n| `learning` | By relevance | After 90 days | Lessons and best practices |\r\n| `pattern` | By trigger | After 90 days | How things work in codebases |\r\n| `preference` | By trigger | After 90 days | User working style preferences |\r\n| `risk` | By relevance | After 14 days closed | Active project risks |\r\n| `history` | On demand | After 90 days | Historical events and context |\r\n| `task` | Active auto-loaded | After 30 days done | Multi-session task tracking |\r\n| `relationship` | By relevance | After 90 days | Component dependencies |\r\n\r\n---\r\n\r\n## How Agents Use It\r\n\r\n```\r\nSession Start\r\n    │\r\n    ├─► session_start(\"claude-desktop\")\r\n    │     Returns: session_id, corrections (always loaded), rules, active tasks\r\n    │\r\n    ▼\r\nEvery Turn\r\n    │\r\n    ├─► session_state_read(session_id)    — refresh memory of this conversation\r\n    │\r\n    ├─► [Do work: write code, answer questions, make decisions]\r\n    │\r\n    ├─► session_state_write(session_id, {\r\n    │     files_created, decisions_made, errors_encountered, key_facts\r\n    │   })\r\n    │\r\n    ├─► remember(\"decision\", \"Use Railway for hosting\", {\r\n    │     tags: [\"hosting\"], triggers: [\"deploy\"]\r\n    │   })\r\n    │\r\n    ▼\r\nSession End\r\n    │\r\n    ├─► session_close(session_id, \"Built auth with 15 tests\")\r\n    │     Returns: quality_score (0-100), grade (A-F)\r\n    │\r\n    ▼\r\nNext Session (hours, days, weeks later)\r\n    │\r\n    ├─► session_start() → corrections + rules loaded automatically\r\n    ├─► recall(\"What did we decide about hosting?\")\r\n    │     Returns: \"Use Railway\" (confidence: 95%, category: decision)\r\n    └─► All context preserved. Zero loss.\r\n```\r\n\r\n## How the Chrome Extension Works\r\n\r\n```\r\nUser types message on claude.ai\r\n    │\r\n    ├─► Extension intercepts (before send)\r\n    ├─► Calls POST /context with the message\r\n    ├─► REST API searches knowledge base, ranks by relevance\r\n    ├─► Extension prepends <total-recall-context> block to message\r\n    ├─► Message sent to Claude with full memory context\r\n    │\r\nAI responds\r\n    │\r\n    ├─► Extension observes the response\r\n    ├─► Extracts decisions, errors, rules via pattern matching\r\n    └─► Calls POST /batch-remember to store them automatically\r\n```\r\n\r\n---\r\n\r\n## Configuration\r\n\r\n### Config File Location\r\n\r\n| Platform | Path |\r\n|:---------|:-----|\r\n| Windows | `%APPDATA%\\total-recall\\config.json` |\r\n| macOS | `~/.config/total-recall/config.json` |\r\n| Linux | `~/.config/total-recall/config.json` |\r\n\r\n### Key Settings\r\n\r\n```json\r\n{\r\n  \"machine_id\": \"auto-generated-uuid\",\r\n  \"machine_name\": \"My Machine\",\r\n  \"context_budget\": {\r\n    \"total_tokens\": 200000,\r\n    \"conversation_pct\": 40,\r\n    \"knowledge_pct\": 30,\r\n    \"tool_results_pct\": 20,\r\n    \"system_pct\": 10\r\n  },\r\n  \"supabase\": {\r\n    \"enabled\": false,\r\n    \"url\": \"https://YOUR_PROJECT.supabase.co\",\r\n    \"anon_key\": \"eyJ...\"\r\n  },\r\n  \"pruning\": {\r\n    \"archive_after_days\": 90,\r\n    \"never_archive\": [\"correction\", \"rule\"]\r\n  }\r\n}\r\n```\r\n\r\n### Config Discovery (5 levels)\r\n\r\n1. CLI flag: `--config /path/to/config.json`\r\n2. `.total-recall.json` in current working directory\r\n3. `.total-recall.json` walking up to filesystem root\r\n4. User config: `~/.config/total-recall/config.json`\r\n5. Built-in defaults (works with no config file)\r\n\r\n---\r\n\r\n## CLI Commands\r\n\r\n```bash\r\nnode bin/total-recall.js init      # First-time setup wizard\r\nnode bin/total-recall.js doctor    # Health check\r\nnode bin/total-recall.js export    # Export knowledge to JSON\r\nnode bin/total-recall.js version   # Show version\r\nnode bin/total-recall.js help      # All commands\r\n```\r\n\r\n---\r\n\r\n## Database\r\n\r\n11 tables in SQLite with WAL mode for concurrent access:\r\n\r\n| Table | Purpose |\r\n|:------|:--------|\r\n| `knowledge` | Core memory store (12 categories, 20+ columns) |\r\n| `knowledge_history` | Version snapshots for rollback |\r\n| `sessions` | Session lifecycle + quality scoring |\r\n| `audit_log` | Immutable audit trail of every write |\r\n| `tasks` | Multi-session task tracking |\r\n| `dependencies` | Component relationship graph |\r\n| `failure_patterns` | Extracted error patterns for prevention |\r\n| `workflow_transitions` | Predictive pre-loading data |\r\n| `sync_log` | Cloud sync queue (Supabase) |\r\n| `machines` | Machine identity registry |\r\n| `config` | Runtime configuration |\r\n\r\n---\r\n\r\n## Development\r\n\r\n```bash\r\nnpm test           # Run all 204 tests\r\nnpm start          # Start MCP server (stdio)\r\nnpm run api        # Start REST API server (port 3777)\r\nnode bin/total-recall.js doctor  # Health check\r\n```\r\n\r\n### Tech Stack\r\n\r\n- **Runtime:** Node.js 20+ (ESM modules)\r\n- **Database:** better-sqlite3 (WAL mode, synchronous)\r\n- **MCP Protocol:** `@modelcontextprotocol/sdk` (stdio transport)\r\n- **REST API:** Express 5 + cors + express-rate-limit\r\n- **Validation:** Zod schemas on all tool inputs\r\n- **Testing:** `node:test` (204 tests, 62 suites)\r\n\r\n### Project Stats\r\n\r\n```\r\nSource:  34 files, ~4,600 LOC\r\nTests:   14 files, ~2,200 LOC\r\nTables:  11 with 17 indexes\r\nTools:   26 (22 functional, 4 stubs)\r\nLayers:  24 across 7 phases\r\n```\r\n\r\n---\r\n\r\n## Troubleshooting\r\n\r\n<details>\r\n<summary><strong>Claude Desktop doesn't show Total Recall tools</strong></summary>\r\n\r\n1. Check `claude_desktop_config.json` has the correct absolute path to `src/index.js`\r\n2. Use absolute paths — relative paths won't work\r\n3. Restart Claude Desktop completely (quit from system tray, not just close)\r\n4. Run `node bin/total-recall.js doctor` to verify database health\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Chrome extension shows grey dot (offline)</strong></summary>\r\n\r\nThe REST API is not running. Start it:\r\n\r\n```bash\r\nnpm run api\r\n```\r\n\r\nThe dot turns green when connected.\r\n</details>\r\n\r\n<details>\r\n<summary><strong>\"Cannot find module\" error</strong></summary>\r\n\r\n```bash\r\ncd /path/to/Total-Recall\r\nnpm install\r\n```\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Database locked errors</strong></summary>\r\n\r\nTotal Recall uses WAL mode with auto-retry (3 attempts, exponential backoff). If persistent:\r\n\r\n1. Check no other process has the database open\r\n2. Run `node bin/total-recall.js doctor`\r\n3. Restart the MCP server\r\n</details>\r\n\r\n<details>\r\n<summary><strong>How to reset everything</strong></summary>\r\n\r\n```bash\r\n# Windows\r\ndel \"%APPDATA%\\total-recall\\data.db\"\r\nrmdir /s \"%APPDATA%\\total-recall\\sessions\"\r\nnode bin/total-recall.js init\r\n\r\n# macOS/Linux\r\nrm ~/.config/total-recall/data.db\r\nrm -rf ~/.config/total-recall/sessions\r\nnode bin/total-recall.js init\r\n```\r\n</details>\r\n\r\n---\r\n\r\n## Documentation\r\n\r\n| Document | Description |\r\n|:---------|:------------|\r\n| [User Manual](docs/USER-MANUAL.md) | Complete guide — installation, tools, config, troubleshooting |\r\n| [Agent Guide](docs/AGENT-GUIDE.md) | Instructions for AI agents using Total Recall |\r\n| [API Reference](docs/API-REFERENCE.md) | Full REST API documentation with curl examples |\r\n| [Activation Guide](docs/ACTIVATION-GUIDE.md) | One-page quick-start for all platforms |\r\n\r\n---\r\n\r\n## License\r\n\r\nMIT License. Created by **Avi Bendetsky / [BAS & More](https://github.com/BAS-More)**.\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  <strong>Install once. Remember everything. Forever.</strong>\r\n  <br><br>\r\n  <a href=\"#quick-start\">Get Started</a> &bull;\r\n  <a href=\"docs/USER-MANUAL.md\">Read the Manual</a> &bull;\r\n  <a href=\"https://github.com/BAS-More/Total-Recall/issues\">Report Issues</a>\r\n</p>\r\n","readmeFilename":"README.md"}