{"_id":"@holt-os/holt","_rev":"30-d68b825beb3dd9571b5aa947860ba9b8","name":"@holt-os/holt","dist-tags":{"latest":"0.18.1"},"versions":{"0.0.1":{"name":"@holt-os/holt","version":"0.0.1","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.0.1","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"6a72aa1e7bcc3618faa61c520f7000d85fe0491c","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.0.1.tgz","fileCount":5,"integrity":"sha512-OOxG39CNZpY9iLPqYoU57BOpsmqw0gHOxqHMTYUXcBXN5MCSYcYuAB5GPpIvTN3fTgYvrP6CeX3+ZAR3gTXqyQ==","signatures":[{"sig":"MEUCIQCMOijzhV3HyukgKyIC7EzeJZ4M6bFy97X2iP1ryrHgXAIgQNwLscsSsGn49m+0NqUxQ6UzLlFYF339+HD44RwV7WI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9741},"type":"module","engines":{"node":">=20"},"gitHead":"7c7fe4b60c25ae5828bb857b0e3ec1ea2a98bece","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS — any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.0.1_1782975027922_0.269288112810139","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@holt-os/holt","version":"0.0.2","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.0.2","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"05fcf4cb768171ef4b739ef15c96b8b38420bc1a","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.0.2.tgz","fileCount":5,"integrity":"sha512-D9rzemg+CTE0tPZeVmZKsk3C10sjUE84b8cztW94tzRXntWYT7Wwjv5vrrtK4YLh8t0xgIyuNqknxvshtvvpqA==","signatures":[{"sig":"MEUCIHJZl5+5Nji7+sARoYa0MTZKZGtNSDIEpWVFgdOuK1ijAiEA7wkEARQ5D2j6WmM6LjSGbQ3bJ5yf5SAdHsh3GLEMT00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9615},"type":"module","engines":{"node":">=20"},"gitHead":"3bdf5d6bc1a1a277795758213c76d0c5441661fa","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.0.2_1782978928926_0.9879558945310865","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@holt-os/holt","version":"0.2.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.2.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"e35d95a5e8465534f7a42ef0f273c066ed1dce43","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.2.0.tgz","fileCount":5,"integrity":"sha512-iAAUhzWH2NLZk5ldS/hK4IjV0A+vta7/wUEt0rMmh1WeXt811uijJ9VxvVvt509yreWrCbrp3vHUOqVWWzJxCA==","signatures":[{"sig":"MEQCIGVpUtydsLJ46nf+N1cZlN0cNtxC4G2fe7TZ3ky0MkMzAiAkkQVwy3HM+yp4pR8P7SnaAe/j32v9wUrIVfWLT/FlwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29861},"type":"module","engines":{"node":">=20"},"gitHead":"5720d59a3cb9f61963f68e91205e6f62482b46c0","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.2.0_1782992129441_0.12502408348620975","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@holt-os/holt","version":"0.3.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.3.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"547990f036f0fae84a093154f978b5239d19d33a","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.3.0.tgz","fileCount":5,"integrity":"sha512-lYrER4oRuxTQWELflnhy2hc9NMV9LmyT/fWbJB8jguAsudgQdRf5+TRWibirWd/10QP+hMnPOmhOJ98idgF9JQ==","signatures":[{"sig":"MEUCIBBQrw+hTJHIw9PbTBmznHCQa4f9e22KUCamS52FkvlSAiEA/VdtUsGu+WUeIXgoHokljmHb/XJYm0a4EmfTxhaMUmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39518},"type":"module","engines":{"node":">=20"},"gitHead":"44975687dff3947698795c7b3a1b5cd436a1bdb6","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.3.0_1782993048913_0.7505059813198476","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@holt-os/holt","version":"0.4.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.4.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"22416188cfb97951b8cf3a87cebd6bb316ea39e6","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.4.0.tgz","fileCount":5,"integrity":"sha512-QbNm5iZsm5WnNdORpk5Y2T74bGQtRZVuyZNQxFooUErnuhYdS+lkqGL9HleCgAo/PIvtPpb/CW44tLuRc/M7Cw==","signatures":[{"sig":"MEQCIBjBlyLZekWe85Gu0LQvLMhXNqfu5reMUU+9kRZByGLUAiBFmwSbG3Syu5wkHyG0FC0vUppqTbM6GPnXanhXx7Xabw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43747},"type":"module","engines":{"node":">=20"},"gitHead":"ae3ae5fa0fe7c6f7d6665ebc7c9c8e9428733a8a","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.4.0_1782993429504_0.661614547831441","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@holt-os/holt","version":"0.5.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.5.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"298a345f8ec013e67bbadee64184cda42c1d89fa","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.5.0.tgz","fileCount":4,"integrity":"sha512-7FY2sSbtkUBeVWP/ttcthIQ/TbYNtmlFypb5mGuF/PiO/t09T2qzn4gzuEfsK1fB8OrDfDLCru/Xhnb3/3mn2A==","signatures":[{"sig":"MEYCIQDWe1f2sZkWhroFOvY2MPfEPa6eC82ZrUZGzSEwZwtzuwIhAN/IkvrS1klTF7tkYCk4uYLawunetphj6OoS0vOfKD5B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98134},"type":"module","engines":{"node":">=20"},"gitHead":"3f3e5960494c3f149823cc69e4252288c4d83978","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.5.0_1782995094096_0.2957452188967371","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@holt-os/holt","version":"0.5.1","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.5.1","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"3f85f7323d76387f71dfc2081d363cccd0a1c258","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.5.1.tgz","fileCount":4,"integrity":"sha512-hgY0P76t6DvByVpdZj86ReaYzisL8dZvPrTgxxHUv6DDkyCxXVdoxmCDiIR35EfHmLQjsYTTGMOeOXeY+OHG5w==","signatures":[{"sig":"MEYCIQDF9ze53CwlAnmBm5bfnbZ+nl6BPbXhczzVJQvAfTqkOAIhAJTDlR6NRxkfx3eSX7WfeTpg+c0TFRYf5Xkl9y3KyORZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99003},"type":"module","engines":{"node":">=20"},"gitHead":"1cb169f859d2970e299337479513ad5b557332ee","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.5.1_1782995551705_0.2633340985678314","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@holt-os/holt","version":"0.5.2","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.5.2","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"9b1e391f0a76aa5ebd1e9c1ede93cc0a5e44d098","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.5.2.tgz","fileCount":4,"integrity":"sha512-kZhL8LQGgg41VGmwqqp4cxwqScKsAfg+2vq2cJDc08xVs/7rqxJwzcqSu0AJJZPi6Gl41u86pEwYHvOJY6i8+Q==","signatures":[{"sig":"MEUCIQCsms9eP+4mDBjUUF+wGh8u0pNBYCsK21fnC6c3jUNpSQIgBfwL+YY6yGa1nkn5q3YyifWn5fSP9PIj9vCduX4MMNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102127},"type":"module","engines":{"node":">=20"},"gitHead":"371e47e6adc8b3079127dbab629add6366252e7f","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.5.2_1782995782700_0.12044118345769106","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@holt-os/holt","version":"0.6.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.6.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"7d7dc7309d1673b62df7f86f933153fc17e14f21","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.6.0.tgz","fileCount":4,"integrity":"sha512-10ZZuY8haeXzFnXA1/vM7cG2V14V8kwSiT46fcPC2kq+iv8IiXm3igB3RLzzVqk2y3I7dsSZcRuTY9I4782jwQ==","signatures":[{"sig":"MEYCIQCLU8DKSjHhVMK+e6Vq61QWJdo0m64LdjY6URTmpxMVJAIhANpV/dC/zRS7GC8KgXJ742izKlfI7qz0cWPANwxQCM5f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108992},"type":"module","engines":{"node":">=20"},"gitHead":"d26d06d08f195a8d3a57675c98f6754673239c14","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.6.0_1783074510609_0.4185078362386634","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@holt-os/holt","version":"0.7.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.7.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"e6885a462f2d2ac6cfbf42b13a1e5ec5dccf8d27","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.7.0.tgz","fileCount":4,"integrity":"sha512-DOStCCeyI7SSpKxfaYeb/nvmnpVvGqRq0Yk9/Cr+nRXPvxwj4/N3dwJalU4hyN4IN4Z/eSzqTICrnqXIpNn7ow==","signatures":[{"sig":"MEUCIQCB7IEAEsjnVBB0W6RSt/VwhhY3B4JGurUXModYYJ5JQgIgZXgjiVPbjF2KzQ3dDvHYjZG1aRBd30EXqMjhaT47sIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120769},"type":"module","engines":{"node":">=20"},"gitHead":"35dbbf5a83dc8589011f312662716dfa3763f003","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.7.0_1783085036067_0.8996499958146957","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@holt-os/holt","version":"0.8.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.8.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"98582ac413d33f1474d28f5839caec263545ba84","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.8.0.tgz","fileCount":4,"integrity":"sha512-xhNLEllnaqcijmqV25IZaTy+sC0IZs42vzW78qhjEtqGJAJp1Oha7K29WhFkeEmxzzadLsNGy2G5fnob88/BPQ==","signatures":[{"sig":"MEYCIQC5czLswZNZPMUNfaRnd3A3GoXF1BhzjOupXVTS1z0S8QIhAOOttHGasePssRyUqEUMGSjEvoVPBNxG+mQoomuSP30X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148075},"type":"module","engines":{"node":">=20"},"gitHead":"e3e34e48e754c950dfc9daa19a077e11cfbeefc8","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.8.0_1783087449932_0.6351009233826268","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@holt-os/holt","version":"0.8.2","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.8.2","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"6f012475a69aac366a4ba87bc05e60ba19c0fb0e","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.8.2.tgz","fileCount":4,"integrity":"sha512-iZdeqWTVo1k4DjbGX/R/itMxfwJwow6UiTlsRnR+VCWpAjRcwJzV98Ct+5qox5Q99+aG3eyzCFbiE/DU9GEtUA==","signatures":[{"sig":"MEUCIQCiy4WMXMUB5yVrd254CU8ZHfycmz30NWiZN86o0Gp9hQIgK+36Nhz6dsTleUXzaLJXJHRBfkNW0CxPAUwTVpoVy+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149400},"type":"module","engines":{"node":">=20"},"gitHead":"5bd2a9041b40be5b0f0bc3ef4cf27c7d7a4b1bf2","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.11.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.8.2_1783088207107_0.795420797922074","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@holt-os/holt","version":"0.8.3","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.8.3","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"a2877af6a30c037540ba0ebba97d68d7618e7aa8","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.8.3.tgz","fileCount":4,"integrity":"sha512-T7/8nQjd74470lnWyyuFy50DwZxXiCU3mX6BFcnynOlbIPxhnvzykeas4Om2oVI+NS5Lq8v5jGjCBFAEb68jQQ==","signatures":[{"sig":"MEUCIDqT40IrpoMLEReXIlxeIesYm6Mb/+ybp33z9xa2Wf64AiEA+vtXG+jzkn481TYzEXiPMAY6rr6YWyMSTJEv6Pr7FQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152273},"type":"module","engines":{"node":">=20"},"gitHead":"04962280224a895c214c0653412c6f079cd983b1","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"11.17.0","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.8.3_1783102208838_0.8125158828408388","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@holt-os/holt","version":"0.8.4","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.8.4","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"0b1d54ead228f3de86eaec68b3af9e95dd21dab8","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.8.4.tgz","fileCount":4,"integrity":"sha512-Fr/fwXlW0v5F+9lD5H1ukxVk6iFnJ1RzxkIg8H0ZnE4Kq/Q1PnLw22J50iABmgJhtoMn3bX4pnA1xfuvpsfy7A==","signatures":[{"sig":"MEUCIHxYErl1X44RdkqM4gGfZlTtwX+LIMU3YyqzLx7G8PQ1AiEApcHPiSP1PxpJSgXeNfq92H91D5sFYJ9/n4jHHaNMqzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152315},"type":"module","engines":{"node":">=20"},"gitHead":"dede41a02745838167992672c99158ffa9e85010","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.8.4_1783152814453_0.44831882829090053","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@holt-os/holt","version":"0.9.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.9.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"72303b4b9a88734aae2f216e457f70624533b6e4","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.9.0.tgz","fileCount":4,"integrity":"sha512-B794ym5pnTt6gDM+kLrQwH0lHUyGER9g5E0uTd9T+VZCVqKVoTAVX+ZwDzYdystJC/PT5euV7yhf/KsgsRSL5g==","signatures":[{"sig":"MEUCIQDoh+a6HLbNOQmXtTxKZcgRdo5DjGypuyrrg1b15V46MAIgCSXjf5TVhC5fOYLRiQpGHu7vkJmaWjiBDGJ/Kv7Nhwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264466},"type":"module","engines":{"node":">=20"},"gitHead":"b10b23b7666aff02f24d58c6846368c5e9708c7d","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.9.0_1783282217264_0.8755161341958031","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@holt-os/holt","version":"0.10.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.10.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"36f8fda5edf5820ea61844b17849de0dcf1daa61","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.10.0.tgz","fileCount":4,"integrity":"sha512-isXw9xFhIhnl60WESBCCoLNbgBiPnUOa16YNGtq1VZqyvCg/9HTOe+V67RyAokWxDsHwZZf/D8w0xZ611fm95A==","signatures":[{"sig":"MEUCIQCDDXDBoixSX8ynoexDY9iO1Br/Qy2nWEvuTN5+493RUQIgOOl1U4KulSW0DEKPDMKJAol9xGc7cYUxZN9+f2dA9nw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306763},"type":"module","engines":{"node":">=20"},"gitHead":"99195052c243b47513b32d5242546e8c7eeee643","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.10.0_1783321732812_0.303249298989998","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@holt-os/holt","version":"0.11.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.11.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"9229e863c230178da02c10a642a096f3b68645eb","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.11.0.tgz","fileCount":14,"integrity":"sha512-ezWyYJceGcW6HOay82NVtigUYLgzSTmRHPcuon8t1UzqW32QD86KHB2YF73DQd5vOHA3heY3YqtYHE7pODOA1w==","signatures":[{"sig":"MEYCIQC+KArT7fhRfrpLoQv6JFr/9Oo0QCc7wvXcdsB8FSQ1VQIhAI9cBVWDliYFHSfTkdOmS4fHUxo+G9ERYCNLUaO8g9qu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322339},"type":"module","engines":{"node":">=20"},"gitHead":"30f1097b0dd84242b018515e5eb6de1711bb1d20","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.11.0_1783323201822_0.5160438143871102","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@holt-os/holt","version":"0.12.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.12.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"d6ea15d2bee73218fc745f27950e43f1a1537a03","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.12.0.tgz","fileCount":14,"integrity":"sha512-DB2IIQXCsB77z5FYlVQFP9KGiBrUL8ggHbo0slq/RTzniVuPzNXXB8s7Liw6VBTU2Fu+07Ec88RekJDxUf6kqQ==","signatures":[{"sig":"MEQCIFU6AbBhX5a1n2Wz/tT3/fEXmjjhGJeRKs/kiEwuFFw0AiACzfpLmYKIKBeRRVdkgoBNv9i+UUjm6mnqL/ixOODxnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324596},"type":"module","engines":{"node":">=20"},"gitHead":"8be802f4cfcfadc59befdfa9b80ed1be4e68f9f9","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.12.0_1783324606084_0.13039545379944384","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@holt-os/holt","version":"0.12.1","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.12.1","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"8f9dd0cf79d9fa397e44880b34a38c29430dfcf0","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.12.1.tgz","fileCount":14,"integrity":"sha512-ta9qwWUEmCpuU0jxctUOJhSsi4AX/z9Dq+Jf5v1XPYu5Tt1PYKbLm6Hyv47p6GDgF8Jv9qFek6PYwwIwFLlpHw==","signatures":[{"sig":"MEYCIQCSN3KRpY7ADSNEXTtS/j1QGCMiy3EUkiq4MWkwv2cIpwIhAMrV2CfMZlc2GJQhAILGwpLOU2e0KSIttmTgjkoSuUom","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333765},"type":"module","engines":{"node":">=20"},"gitHead":"672943000c2f4d961ea1a464592fe4d9242aaeed","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.12.1_1783489476019_0.25487969700293234","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@holt-os/holt","version":"0.13.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.13.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"534f1395a5fc29929c88475bfde3d878015da09e","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.13.0.tgz","fileCount":14,"integrity":"sha512-uAy8Zy7k5nn4JAbby2RwVpN2RgKtgozNvU3wCl6WYtVVPX2IWcmEQ417h0qbjs/R8Zr8n8H73AHggH5yHBVHvg==","signatures":[{"sig":"MEYCIQD9QOykrTegcl6FAqro9Ki46vWE24qko/riZyA8z2DfQwIhAMezIayU5NdttWg3yqeLvQQIe6pk5esdWS5qcBUSJw2Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340951},"type":"module","engines":{"node":">=20"},"gitHead":"f171d4732a81de241121f3dc6c7171c40998b82c","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.13.0_1783511407811_0.08700115280320642","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@holt-os/holt","version":"0.14.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.14.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"387f6eeca1f06ee890ab83b9cd222c7d567a827d","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.14.0.tgz","fileCount":14,"integrity":"sha512-Th3XZnF7B4rPATuXicNoZCwz1e+8/EkW6UV8rjiiHMp6RtSTVTiXg5tVTKbxVWBb+RDHN/rbjiLMgL9v054Clg==","signatures":[{"sig":"MEUCIBAgoyad4umqqYmMo9kXqRxI9FrtLNm9vU/FLaKnv13VAiEArnUltcLHdt9Zv3O8/7FyrNQ3bBeyBDj9i/XERcKX4R4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352040},"type":"module","engines":{"node":">=20"},"gitHead":"dfc789f1febdd528e827be839ac2dcaad7b756e7","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.14.0_1783612906978_0.19018410312572587","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@holt-os/holt","version":"0.14.1","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.14.1","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"2e67b58a9edfed28b5e6307d7836e53989bed1ce","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.14.1.tgz","fileCount":14,"integrity":"sha512-3yEyQaBy6REzGh7hMg769j7PkbAk1oG/F3yJKPpDY6s4MTvzt4Hi3CDHQAu0LFwKukrwL7B2rTUTdrVQDO5wZQ==","signatures":[{"sig":"MEQCIGyYVTD/ApGhK5CdVkEqKkg1fXAxgpVOWbJyC803ejCGAiAictx18zDyssV+f8pcIO7u8gO6Eo3DaWTsrdb58JANxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354719},"type":"module","engines":{"node":">=20"},"gitHead":"6a4767ad862f226d2e7a0f7135bb00b7882334b8","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.14.1_1783622294303_0.908042150130211","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@holt-os/holt","version":"0.14.2","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.14.2","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"952bf1f2dddc78ea099bc8a19a31a4bdb068d7ac","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.14.2.tgz","fileCount":14,"integrity":"sha512-tNopqYdXVVSr5FHO+hUsodU5N/uxBBiFAgfgCXIpKpl5ilmpIwBV/RsDP2Wzl1Yp80XHAIcScT7aIn4UGpmPFA==","signatures":[{"sig":"MEYCIQDu1/f1Qi9eEJluEuQ6q2tDklovhx+vyh4hXE0VBLLjPwIhAMWYWqvLN65uPePa2xIsLrK0UsV+HVr6fzSojNIbqhsU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354826},"type":"module","engines":{"node":">=20"},"gitHead":"c75347aa2056dbce4a83a381fa652925b5ad5ad3","scripts":{"dev":"tsx src/cli.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.14.2_1783694460393_0.18544325340053547","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"@holt-os/holt","version":"0.14.3","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.14.3","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"9391ee5f7bb07e463a15098d156ff5340607f034","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.14.3.tgz","fileCount":14,"integrity":"sha512-yVi/L9RCjK5GpumAt5mO7dUaxIcgsSGGYn/3a2q2xmUoM7bgdDAtHhyonOP2Z91zix5TlEVee81D9da7z+UceA==","signatures":[{"sig":"MEUCIFq5PkkSfl3P9PFVBs5rveDBU+T9Hv6c6GV3a9nQIfgbAiEA0u6pxjqH9U1UeflRG8ApSIEmxnTnz/GE4CRh91qa09I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367893},"type":"module","engines":{"node":">=20"},"gitHead":"4f4e160a0325836ce7f7ed84092239af849b6fdd","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.14.3_1784433780153_0.4757877539276467","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@holt-os/holt","version":"0.15.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.15.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"a08931ae86830c90923c425d571a168b2ed88e97","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.15.0.tgz","fileCount":14,"integrity":"sha512-cLnKhrr6ixtFGpVvgi0A3wYBn3i9v18IkTP3c315HiWrXpVklZGsNJlFMISYusR4Z3BO615sp++B+UqrkKMX6g==","signatures":[{"sig":"MEUCIQCTyNYespIFmxO2ssPoTEm60wIeJuJQXCpaJtazkfMgOgIgFs4zEmJ/Trro/QexT7A4GdbWje2mTH0GEnFpz2gfDHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381909},"type":"module","engines":{"node":">=20"},"gitHead":"b5b21af38cd5d0bc50a69c159cd6de1bac043396","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.15.0_1786998866917_0.3916576908451608","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@holt-os/holt","version":"0.15.1","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.15.1","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"b2a07feaf5849be45a31cd58312e52c297acc629","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.15.1.tgz","fileCount":14,"integrity":"sha512-lriObAuZkJbQ2fKox4d0fQsH9MsRinlrRaMAock+dkpE+1fWojURf6kn3tDorMFC1xvG6JEp6zA9zY3cOl3f8Q==","signatures":[{"sig":"MEYCIQCkRpW1OfqpJmTda7wcB1MxeMMxAeWonua83iolExmUQQIhAKMRvxdMzfw2sb4GrIyKSQhRrDUCrsAJGrZgJ9SL3fr3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382273},"type":"module","engines":{"node":">=20"},"gitHead":"a81b83559a00acf36f940447d2a6b40032fe3f48","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.15.1_1787000136485_0.0026729472486100025","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@holt-os/holt","version":"0.16.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.16.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"ae166c4b66bcb1cee385edb1a526173d6996e170","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.16.0.tgz","fileCount":14,"integrity":"sha512-XQHOwd4zvAKnafl+8G7iSBLI8S1/mU10ikhGi0t9wPDdvsoKnEdFz0DYjshmduxJ4IfAAi4Dis5zI3yQk6ardw==","signatures":[{"sig":"MEYCIQD13LPrNyvxLVfbJlDYIP4O+5DFY1Cqi60CzVzPcU2eSgIhAKbJBCkaljj/Ju275whnrv25OY76/NcTtaSAaRvUJX8q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387766},"type":"module","engines":{"node":">=20"},"gitHead":"ce3d9efb16637a1492a398e54575e5a45d284580","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.16.0_1787836026319_0.9569210572469646","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@holt-os/holt","version":"0.17.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.17.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"9820bfec7f2167019352217e2d909ef38ff53a37","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.17.0.tgz","fileCount":17,"integrity":"sha512-u/FUnxJygHEj7GD9cZJSqvy/CbOdJvplzcRUBfkJce3vUwRkgbUP42ejWJY6ud4wn9v08FZ0zRJLF7Axhl5dVg==","signatures":[{"sig":"MEQCIEvA/9V7dmkpeUD47BLb7Kx/nhA+iCi584TJ4+tezV4pAiBBlsWvpspYl6NgY7ouAWe8X5SiVJg3CZiYkEkXyV36ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407406},"type":"module","engines":{"node":">=20"},"gitHead":"e982f668ff9532cec4d6d638da8a80d14be95dbc","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.17.0_1788547772317_0.6483255334567293","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@holt-os/holt","version":"0.18.0","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"author":{"name":"Debashis Nayak"},"license":"MIT","_id":"@holt-os/holt@0.18.0","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"homepage":"https://productsdecoded.com/holt","bugs":{"url":"https://github.com/holt-os/holt/issues"},"bin":{"holt":"dist/cli.js"},"dist":{"shasum":"5fcf9001e4839b20a37744826e3ef98a051615c4","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.18.0.tgz","fileCount":17,"integrity":"sha512-vp/aHnpLY8YUc7EwJ2p3sQ5BBQjH0ejja4mEo0t42ALPfS55jXFKcMJgbycYBY8cc38NPvdBBkFenxTJZFQQTw==","signatures":[{"sig":"MEQCIHHGFYhsACk8JFS78oWSdh/U1JdrLPiiuqxYZRXHzfR4AiBlmDK/own1YuiVMufrDGxfhTleCFT4vOEzCrLQj/qrEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407112},"type":"module","engines":{"node":">=20"},"gitHead":"9be4f0ed53cc12264799d3b3c60682c881fc0eb4","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts && tsx scripts/scheduler.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/holt_0.18.0_1788548543675_0.7111291180783226","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"_id":"@holt-os/holt@0.18.1","bin":{"holt":"dist/cli.js"},"bugs":{"url":"https://github.com/holt-os/holt/issues"},"dist":{"shasum":"50ce006257f70e9b7a969aaedbcd8f595164c52c","tarball":"https://registry.npmjs.org/@holt-os/holt/-/holt-0.18.1.tgz","fileCount":17,"integrity":"sha512-hmZR3VFN6iwGMBZpwJL3E2ts5tk3FeiMsV/4WWafilQIGcfl0/aDYW9mMGyN4JqnuQOer5wu0nw5jZHZGgRNOA==","signatures":[{"sig":"MEUCIQDYs6cFv65P2x6sCllU28EtQfrm3u34btCAEUfYDs/ZKQIgLEGffOMyE7JbXyV8vu+ms284B9ljgLeTFnlZF6EZjw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC2JzMNPAactLe+us8GIZoyOycQIlXn/tNtE7/uIs9nMAIgEpf/GaaU4uluMI4G3tAxuGXLC+A57Hcx1MSCGYZqV9c="}],"unpackedSize":409183},"name":"@holt-os/holt","type":"module","author":{"name":"Debashis Nayak"},"engines":{"node":">=20"},"gitHead":"3a9cb8b0fd62e0b61e5e600a3fa341bd5b03e65e","license":"MIT","scripts":{"dev":"tsx src/cli.ts","test":"tsx scripts/specs.test.ts && tsx scripts/skillcompiler.test.ts && tsx scripts/scheduler.test.ts && tsx scripts/statusline.test.ts","build":"tsup src/cli.ts --format esm --clean","start":"node dist/cli.js","release":"bash scripts/release.sh","typecheck":"tsc --noEmit"},"version":"0.18.1","_npmUser":{"name":"debashisn94","email":"debashis.deb94@gmail.com"},"homepage":"https://productsdecoded.com/holt","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"_npmVersion":"10.9.8","description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","directories":{},"maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","tsup":"^8.1.0","typescript":"^5.5.0","@types/node":"^20.14.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/holt_0.18.1_1790668480510_0.30628317389187765"}}},"time":{"created":"2026-07-02T06:50:27.786Z","modified":"2026-09-29T07:54:40.802Z","0.0.1":"2026-07-02T06:50:28.060Z","0.0.2":"2026-07-02T07:55:29.064Z","0.2.0":"2026-07-02T11:35:29.579Z","0.3.0":"2026-07-02T11:50:49.140Z","0.4.0":"2026-07-02T11:57:09.630Z","0.5.0":"2026-07-02T12:24:54.255Z","0.5.1":"2026-07-02T12:32:31.844Z","0.5.2":"2026-07-02T12:36:22.856Z","0.6.0":"2026-07-03T10:28:30.761Z","0.7.0":"2026-07-03T13:23:56.207Z","0.8.0":"2026-07-03T14:04:10.072Z","0.8.2":"2026-07-03T14:16:47.253Z","0.8.3":"2026-07-03T18:10:08.988Z","0.8.4":"2026-07-04T08:13:34.595Z","0.9.0":"2026-07-05T20:10:17.388Z","0.10.0":"2026-07-06T07:08:52.943Z","0.11.0":"2026-07-06T07:33:21.982Z","0.12.0":"2026-07-06T07:56:46.211Z","0.12.1":"2026-07-08T05:44:36.162Z","0.13.0":"2026-07-08T11:50:07.952Z","0.14.0":"2026-07-09T16:01:47.163Z","0.14.1":"2026-07-09T18:38:14.494Z","0.14.2":"2026-07-10T14:41:00.533Z","0.14.3":"2026-07-19T04:03:00.296Z","0.15.0":"2026-08-17T20:34:27.083Z","0.15.1":"2026-08-17T20:55:36.637Z","0.16.0":"2026-08-27T13:07:06.500Z","0.17.0":"2026-09-04T18:49:32.478Z","0.18.0":"2026-09-04T19:02:23.863Z","0.18.1":"2026-09-29T07:54:40.616Z"},"bugs":{"url":"https://github.com/holt-os/holt/issues"},"author":{"name":"Debashis Nayak"},"license":"MIT","homepage":"https://productsdecoded.com/holt","keywords":["ai","agent","agent-os","personal-assistant","llm","mcp","memory","rag","knowledge-graph","self-hosted","local-first","agentskills"],"repository":{"url":"git+https://github.com/holt-os/holt.git","type":"git"},"description":"An open-source personal agent OS: any LLM, private memory you can see and walk.","maintainers":[{"name":"debashisn94","email":"debashis.deb94@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/holt-os/holt/main/docs/header.png\" alt=\"Holt\" width=\"100%\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@holt-os/holt\"><img src=\"https://img.shields.io/npm/v/@holt-os/holt?logo=npm&color=cb3837&label=npm\" alt=\"npm version\"></a>\n  <a href=\"https://github.com/holt-os/homebrew-tap\"><img src=\"https://img.shields.io/badge/brew-holt--os%2Ftap%2Fholt-f5a623?logo=homebrew&logoColor=white\" alt=\"Homebrew tap\"></a>\n  <img src=\"https://img.shields.io/node/v/@holt-os/holt?logo=node.js&logoColor=white&color=3c873a\" alt=\"Node version\">\n  <a href=\"https://modelcontextprotocol.io\"><img src=\"https://img.shields.io/badge/MCP-ready-4dd0e1?logo=modelcontextprotocol&logoColor=white\" alt=\"MCP ready\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT license\"></a>\n</p>\n\n***\n\n**Holt is an open-source personal agent OS: any LLM as its brain, private memory it can see and walk, running entirely on your own machine.** Clone it, pick your skills, choose your brain. Your knowledge stays local and compounds over time.\n\n> A *holt* is a small wood: a sheltered place where things are kept and grow. That is the idea. A private home for your knowledge that compounds over time.\n\n### Highlights\n\n- **Any brain, one assistant.** Bare `holt` launches a real interactive brain (Claude Code, Codex, or Gemini) branded as Holt, or you connect a direct API brain with your own key. Switch mid-conversation and keep the full context.\n- **Private memory you can see.** Per-folder semantic recall and distilled facts, an interactive knowledge graph (`holt graph`), and a self-maintaining wiki (`holt wiki`) over everything you tell it. Nothing leaves your machine.\n- **Ambient by default.** `holt hook` wires memory into Claude Code so it recalls and remembers with no manual step, and an MCP server exposes the same memory to Cursor and Codex.\n- **Runs your work.** Run a task once, on a schedule, or as a named routine, and reach it from your phone over Telegram. Real OS timers on macOS, Linux, and Windows.\n- **Useful on day one.** `/skill onboard` interviews you and fills memory in about fifteen minutes, `/skill audit` shows what is still missing, and `/skill level-up` turns one manual chore a week into something Holt does.\n- **Extensible, zero-infra.** Thirteen built-in skills plus a git-based community registry (`holt skill search`) in the portable `SKILL.md` format.\n- **Writes in your voice.** `holt write` drafts in a style Holt learns from you, with built-in anti-AI checks.\n\n> **Status:** shipping and usable today. Every capability above works now.\n\n***\n\n## Install\n\nWith Homebrew (installs Node for you, so you do not need npm first):\n\n```bash\nbrew install holt-os/tap/holt\n```\n\nOr with npm, if you already have Node:\n\n```bash\nnpm install -g @holt-os/holt\n```\n\n**Not comfortable in a terminal?** Install [Claude Code](https://claude.com/claude-code), open it, and paste this:\n\n```\nSet up Holt for me: read https://raw.githubusercontent.com/holt-os/holt/main/docs/INSTALL.md and follow it exactly.\n```\n\nIt installs Holt, checks its own work, and fixes what breaks. Full detail, system requirements, and troubleshooting: [docs/INSTALL.md](./docs/INSTALL.md).\n\n## Quickstart\n\n```bash\ncd ~/where-you-want-to-work\nholt           # start your assistant (or use your custom command, e.g. `ai`)\n```\n\nThat is it. Bare `holt` sets the folder up the first time (trust, brain, memory hooks) and then launches the **real interactive brain** (Claude Code, Codex, or Gemini), branded as Holt. Run `holt help` for the full command list.\n\nPrefer to step through setup on its own first? `holt init` still does that, then `holt` starts the session.\n\nThen, in that first session, run:\n\n```\n/skill onboard\n```\n\nAn empty Holt gives generic answers, which is the usual reason people install it and drift away. `onboard` is a fifteen minute interview that fills memory with who you are and what you are working on, and ends by doing one real piece of your work. Everything else gets better once it knows you.\n\n## What bare `holt` does\n\n`holt` (with no command) is the front door: **your assistant, with memory of you.**\n\n1. **Sets up if needed.** In a fresh folder it runs onboarding (trust, pick a brain, memory). In an already-configured folder it just makes sure the folder is trusted, the memory directory exists, and the [ambient memory hooks](#ambient-memory-for-claude-code-holt-hook) are installed.\n> **Gemini note.** Personal Google accounts can no longer sign in to Gemini CLI (Google retired that login on 18 June 2026 in favour of Antigravity). Gemini still works in Holt with an API key from <https://aistudio.google.com/apikey>; `holt login gemini` walks you through connecting it.\n\n2. **Launches the real interactive brain.** It hands the terminal to the brain's own interactive session (`claude`, `codex`, or `gemini` with no `-p` and no prompt), so you keep the brain's full power: agentic edits, tool use, the permission UI, MCP. That is different from Holt's own built-in REPL, which shells out to the brain once per turn and is used for API brains that have no TUI of their own.\n3. **Brands the session as Holt.** See [Branding](#branding-holt-forward) below.\n\nIf your default brain is a **direct API brain** (no interactive TUI of its own), bare `holt` opens Holt's own built-in REPL instead, branded the same way. Same command, same intro, no second thing to learn.\n\n### Branding (Holt-forward)\n\n- **Banner.** Holt prints its banner before the brain takes over.\n- **Identity.** Holt injects a short \"you are Holt\" system prompt so the session presents as your assistant, not the underlying model. For **Claude Code** this uses `--append-system-prompt=<text>` (confirmed to exist and work in interactive mode). Codex and Gemini have no such flag, so Holt writes the identity into a managed project context file the brain reads on startup (`AGENTS.md` for Codex, `GEMINI.md` for Gemini), and never clobbers a file you already have. The identity text lives in one place: `HOLT_IDENTITY` in `src/commands/launch.ts`.\n- **Status line.** For Claude Code, Holt sets the status line to `Holt` by merging a minimal `statusLine` into the **project** file `./.claude/settings.json` (never your global `~/.claude/settings.json`), non-destructively and with a backup, and only if you have not set one yourself.\n- **Residual chrome.** Claude Code has no flag to suppress its own welcome banner, so that (and any brain-specific chrome) still shows. Holt brands what it can and accepts the rest.\n\nThe exact Claude Code flags and where to tune them: `brandingFlags` and `brandStatusLine` in `src/commands/launch.ts`; the interactive invocation per brain is the `INTERACTIVE_ARGS` map in the same file.\n\n## First run\n\nHolt runs in the folder you launch it from, like a per-project tool. The first time you use a folder it asks:\n\n```\nTrust this folder?\n  /Users/you/where-you-want-to-work\n  Holt will read and write here.\n  Trust and continue? [y/N]\n```\n\nTrusted folders are remembered in `~/.holt/trust.json`. Everything Holt writes for that folder (its config, and later its memory) stays in `<folder>/.holt/`.\n\nDuring `holt init` you:\n\n1. **Trust the folder.**\n2. **Choose brains** (claude, codex, gemini). Holt installs any you pick that are missing.\n3. **Sign in.** For a newly installed brain, Holt starts that tool's own login (browser or its own prompt). Holt never stores your credentials.\n4. **Pick a default** brain and, optionally, a **launch command**: a short word like `ai` that starts `holt` (your assistant). Holt installs it as a tiny launcher next to its own binary, so it works immediately in the same terminal, no sourcing or restart needed.\n5. **Enable semantic memory.** If you say yes, Holt sets up a local [Ollama](https://ollama.com) with a small embed model so recall works by meaning, fully offline.\n\n## Using it\n\nInside a Holt session:\n\n```\n/brain            list your brains and see which is active\n/brain gemini     switch brain. your conversation context is kept\n/skill <name>     run a skill on your input\n/memory           memory stats. /memory <query> previews what recall would surface\n/output           show or set the save format: markdown | html\n/save [name]      save the last reply to a file in this folder\n/allow <path>     let this session read a folder outside this one (session-only)\n/allowed          list folders granted outside-access this session\n/setting          configure brains, API brains, and your launch command\n/login [brain]    sign in to a CLI brain (hands off to its own sign-in, then exits)\n/clear            forget this session (saved memory stays)\n/help             show commands\n/exit             leave\n```\n\nA line that starts with `/` is treated as a command only when its first word is a real command. So a message like `/Users/me/resume.docx summarize this` (or a URL, or any sentence that opens with a slash) is sent to the brain as-is, never dropped as an \"unknown command\".\n\nThe point of `/brain`: Holt owns the transcript, so you can start a thread on one model and hand it to another mid-conversation. The new brain picks up with the full context.\n\nIf a reply says your brain is signed out (or shows an \"invalid API key\" style message), run `holt login <brain>` in a terminal, or type `/login` right in the chat to hand off to the brain's own sign-in. For an API brain, run `holt setting` to add or fix its key. Holt detects that state and shows this hint instead of relaying the loop-inducing text, and it does not store the exchange.\n\n### Reading files outside this folder\n\nHolt runs the brain in the folder you launched it from, so by default the brain only sees this folder. If a message references an absolute path (`/...` or `~/...`) that exists **outside** the folder, Holt asks first: `Allow this session to access <dir> (outside this folder)? [y/N]`. Answer `y` and it grants the file's **containing directory** read access for the rest of this chat. Answer `n` and the message still goes through, the brain just does not get that folder.\n\n- `/allow <path>` grants a folder up front with no prompt.\n- `/allowed` lists what you have granted.\n\nGrants are **in-memory and session-scoped**: nothing is written to disk, and they reset the next time you run `holt`. Access is **read-oriented** and only works with a **Claude Code** brain: Holt passes `--add-dir=<dir>` for each granted folder plus `--allowedTools=Read,Glob,Grep` so Claude Code can read (but not write) those files without an interactive permission prompt. With a Codex/Gemini or API brain, external file access is unavailable and Holt says so instead of adding flags. (If you need to tune the flags, they live in one place: `claudeAccessArgs` in `src/access.ts`.)\n\n***\n\n## Memory\n\nEvery exchange is saved to `<folder>/.holt/memory/turns.jsonl`, private and local. On each message, Holt recalls the most relevant moments from your *past* sessions in that folder and hands them to the brain, so it remembers what you told it last week.\n\nWhen you end a chat, Holt asks the brain to distill 1 to 5 durable facts from the session (decisions, preferences, key names, numbers) and writes them to a human-readable `<folder>/.holt/memory/facts.md` you can read and edit. Those facts are also embedded and ranked slightly higher than raw turns during recall, so the signal rises to the top over time. See them with `holt memory facts`. Turn it off by setting `memory.extractFacts` to `false` in `config.json`.\n\nYou do not have to wait for the end of a session. `holt memory add \"<fact>\"` saves one immediately, and duplicates are ignored, so it is safe to run twice. Piping in several facts, one per line, works too. Prefer this over editing `facts.md` by hand: a fact typed straight into that file is never embedded, so semantic recall will not find it.\n\nTwo recall modes, picked automatically:\n\n- **Semantic** (best): a local [Ollama](https://ollama.com) with an embedding model, which `holt init` offers to set up for you. Recall matches by meaning: asking \"who owns my apartment\" finds \"my landlord is called Pieter\". No API keys, nothing leaves your machine.\n- **Keyword** (fallback): with no Ollama, recall matches by word overlap. Still useful, zero setup.\n\nInspect it any time:\n\n```bash\nholt memory                    # stats for this folder\nholt memory add \"<fact>\"       # teach it something durable right now\nholt memory facts              # show the distilled facts (facts.md)\nholt memory search <query>     # find remembered moments\nholt memory embed              # embed older moments for semantic recall\nholt memory global             # share high-value facts across your folders\nholt memory clear              # wipe this folder's memory\n```\n\nTurns saved before semantic memory was enabled are upgraded in one pass with `holt memory embed`.\n\nLong conversations stay cheap: only recent turns are replayed verbatim, older context comes back through recall.\n\n### Optional global memory (`holt memory global`)\n\nBy default every folder's memory is **isolated**: recall never crosses folders. If you want a folder to draw on what you learned elsewhere, opt it into a shared store:\n\n```bash\nholt memory global on          # this folder now contributes + reads shared facts\nholt memory global status      # who is sharing, and global store stats\nholt memory global off         # stop sharing + reading (recall goes local-only)\nholt memory global off --purge # also delete this folder's rows from the store\n```\n\nWhat opting in does:\n\n- **Facts only.** Only distilled facts (the `fact` rows, which includes wiki pages) are promoted, never raw turns. Each promoted fact is **tagged with the absolute path of the folder it came from**, so you always know its origin.\n- **One switch = contribute + read.** An opted-in folder both pushes its facts to the shared store and, during recall, also scores the shared store and merges the hits, so `holt memory search` and chat recall surface knowledge from your *other* opted-in folders. Your own folder's rows are excluded from the global read (they are already in local memory, so there is no double counting). Global hits are shown tagged with their source folder.\n- **`on` backfills** the folder's existing facts, then new facts mirror automatically. Saving the same fact twice does not duplicate it (dedup by normalized content + folder).\n\nEverything lives outside your projects, so a folder that never opts in is completely unaffected:\n\n- **Store:** `~/.holt/global/turns.jsonl`, one row per promoted fact plus a `workspace` field.\n- **Registry:** `~/.holt/memory-scopes.json`, shape `{ \"enabled\": [\"<abs folder path>\", ...] }`. This is the whole list of folders that participate. Per-folder `config.json` is not touched.\n\nA missing or corrupt global store degrades silently to local-only recall. Per-folder isolation stays the default.\n\n## Brains\n\nA brain is an agent CLI installed and logged in on your machine. No API keys to paste.\n\n| Brain | Command | Install |\n|-------|---------|---------|\n| Claude Code | `claude` | `npm i -g @anthropic-ai/claude-code` |\n| Codex | `codex` | `npm i -g @openai/codex` |\n| Gemini CLI | `gemini` | `npm i -g @google/gemini-cli` |\n\n`holt init` runs these for you when you pick a brain that is missing. You can also sign in any time with `holt login <brain>`.\n\n### Direct API brains\n\nA brain can also be a direct provider connection: no CLI install, your own key. Run `holt setting` and pick `[c] connect API brain`, or say yes to the API-brain question in `holt init`. Choose a provider (anthropic, openai, gemini, kimi, grok), a model (suggestions offered, type anything), and a short name. Kimi (Moonshot) and Grok (xAI) speak the OpenAI wire format at their own endpoints; any other OpenAI-compatible endpoint (a gateway, a self-hosted server) works too via an optional `baseUrl` on the brain in `.holt/config.json`. For the key, paste a raw key (stored in `~/.holt/credentials.json`, mode 600) or give the name of an env var that holds it. Resolution order: the brain's `keyEnv`, the credentials file, then the standard env var (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `MOONSHOT_API_KEY`, `XAI_API_KEY`). API brains stream and share memory exactly like CLI brains; switch with `/brain <name>`.\n\n## See your memory: `holt graph`\n\n`holt graph` turns this folder's memory into a picture you can walk. It writes one self-contained HTML file to `./.holt/graph.html` and opens it in your browser. No server, no CDN, no tracking: one file you can keep or share.\n\n- Every turn is a node: yours glow amber, the assistant's cyan, and turns from the same session share a colored ring.\n- Recurring ideas surface as concept nodes that tie related turns together.\n- Turns that mean similar things (when local embeddings exist) get a strong link.\n- Drag to pan, scroll to zoom, click a turn to read it in full, click a concept to light up its turns, and search to highlight matching memory live.\n\nOptions: `--out <path>` to write elsewhere, `--no-open` to skip the browser. When a wiki exists (see below), the graph auto-includes wiki pages as green nodes wired by their `[[links]]`; force it on or off with `--wiki` / `--no-wiki`. This is the graph as a view over your wiki.\n\n### Richer graph: code, docs, and communities\n\nPlain `holt graph` is unchanged: it draws this folder's memory (plus the wiki when one exists). To also see the folder's *own source and docs* as a graph, opt in with flags:\n\n- `holt graph --code` walks the folder and adds a node per source file (orange), with dependency edges from the imports it can resolve.\n- `holt graph --docs` adds a node per doc (blue: `.md` / `.mdx` / `.txt` / `.rst`), with edges from Markdown links and `[[wikilinks]]` between them.\n- `holt graph --all` does both. All three still render the memory + wiki graph too, so code, docs, and memory sit in one picture.\n\n**What gets ingested.** The walk skips `node_modules`, `.git`, `.holt`, `dist`, `build`, `.next`, `coverage`, other build/vendor dirs, and any dotfolder. It caps out at 2000 files and 400KB per file for safety, and logs what it skipped. Code files (`js`, `ts`, `jsx`, `tsx`, `mjs`, `cjs`, `py`, `go`, `rb`, `rs`, `java`, and more) become file nodes. Dependency edges are best-effort per language: for JS/TS it reads `import ... from`, `export ... from`, `require()`, and dynamic `import()`, resolving only *relative* specifiers (`./`, `../`) to files in the set (trying common extensions and `index.*`); bare/package imports (`react`, `node:fs`) are intentionally dropped. For Python it maps `import x` and `from x import ...` to local module files where they resolve. Unresolved imports are silently dropped, never fatal.\n\n**Communities.** Once code or docs are ingested, Holt runs **label propagation** (a deterministic, zero-dependency community-detection algorithm) over the whole graph and tints each node's ring by its community, so tightly-coupled files cluster visibly. (Label propagation was chosen over Louvain because it is near-linear, trivially deterministic in stable node order, and keeps the code tiny.)\n\n### God-node report: `holt graph report`\n\n`holt graph report` ingests this folder's code and docs, detects communities, and writes a `GRAPH_REPORT.md` (use `--out <path>` to write elsewhere). The report summarizes node / edge / community counts, lists the **god nodes** (highest-degree files: your core abstractions) with their community, and gives a per-community summary (size + representative files). It is safe on an empty folder (it says so, no crash). This is the graphify-grade view of a codebase, generated natively in TypeScript with zero dependencies.\n\n## Knowledge wiki: `holt wiki`\n\nMemory has three layers, each derived from the one below it:\n\n1. **Raw turns** (`turns.jsonl`): every exchange, append-only, authoritative.\n2. **Facts** (`facts.md`): 1 to 5 durable facts distilled per session.\n3. **Wiki** (`.holt/wiki/`): a cross-linked set of Markdown pages, synthesized and maintained by an LLM. This is the \"kept and connected\" layer.\n\nThe core rule: **wiki pages are derived and regenerable, never a sole source of truth.** Turns and facts stay authoritative. Every page records which fact ids it drew from (frontmatter `sources:`), so `holt wiki rebuild` can regenerate the whole wiki from scratch. A bad synthesis is therefore never lossy: rebuild recovers it. Pages are plain Obsidian-compatible Markdown with `[[wikilinks]]` and an `index.md`, so you can point Obsidian at `.holt/wiki` as a vault, or edit pages by hand (a rebuild will overwrite hand-edits, so keep the folder under git if you edit).\n\n```bash\nholt wiki                     # status: maintainer, model, auto-sync, page count, last sync, RAM hint\nholt wiki sync                # fold new facts into pages (route + merge)\nholt wiki auto [on|off]       # auto-sync the wiki when a session ends (wiki.autoSync)\nholt wiki rebuild             # wipe and regenerate every page from facts (asks first)\nholt wiki lint [--fix]        # audit for contradictions, duplicates, gaps; --fix applies the fixes\nholt wiki list                # list pages (title, updated, size)\nholt wiki show <page>         # print one page\nholt wiki open                # open the wiki in your default app (Obsidian reads it natively)\nholt wiki setup               # recommend a local model for this machine's RAM\n```\n\n**How sync works.** `holt wiki sync` gathers facts added since the last sync (a marker in `.holt/wiki/.state.json`), embeds each one locally, and routes it to the nearest existing page by cosine similarity. Related facts land on the same page; a fact that matches nothing new starts a fresh page. Facts are grouped by target page and the maintainer is called **once per changed page** (not once per fact), so it only rewrites the few pages that actually changed. Routing is always local and free, which is what keeps the maintainer's cost minimal. `holt wiki rebuild` folds every fact from scratch.\n\n**Self-maintaining (auto-sync).** Turn on `holt wiki auto on` (persists `wiki.autoSync: true` for the folder) and the wiki keeps itself current with no manual command. It syncs **after fact distillation** at the end of a Holt session, and ambiently when the Claude Code **Stop** hook fires (`holt hook capture`), so newly captured facts fold straight into pages. Auto-sync is silent, best-effort, and never blocks exit: it reuses the exact same sync engine as `holt wiki sync`, so there is no behavior drift. Left off (the default), nothing changes and you sync by hand. `holt wiki auto` with no argument shows the current state; `holt wiki status` surfaces it too.\n\n**Lint that can fix.** `holt wiki lint` audits pages for contradictions, duplicates, and gaps and prints a report only (files untouched). Add `--fix` and Holt asks the maintainer to return corrected page bodies and **applies them**, rewriting the affected pages (provenance/`sources` is preserved). Because pages are derived and regenerable, applying is safe: a bad `--fix` is fully recoverable with `holt wiki rebuild`, and the command prints a git/backup nudge before writing. Only pages that actually change are rewritten.\n\n**Who maintains it (the key knob).** Synthesis is a reasoning task, and you choose who does it with `wiki.maintainer`:\n\n- `brain` (default): the folder's configured brain, exactly like fact distillation. When the brain is the Claude Code CLI this rides your existing Claude plan, so there are no marginal dollars per sync.\n- `local`: a local generative model via Ollama (set `wiki.localModel`, default `qwen2.5:7b`). Free and offline, lower quality, and it trades dollars for RAM. If the model is not pulled, Holt prints the exact `ollama pull` line and falls back to the brain rather than failing.\n\n`holt wiki setup` (or the hint in `holt wiki status`) reads your total RAM and recommends a model: under 16 GB it discourages local (use the brain); 16 GB suggests `qwen2.5:7b` (tight alongside the embed model, an always-on machine is a better host); 24 to 32 GB suggests `qwen2.5:14b`; 48 GB and up suggests `qwen2.5:32b`.\n\nWiki pages also participate in recall: each page is embedded and indexed like a high-value fact, so `holt memory search` and chat recall can surface synthesized knowledge, not just raw turns.\n\n***\n\n## Skills\n\nA skill is a folder with a `SKILL.md`: YAML frontmatter (`name`, `description`) plus Markdown instructions. Same convention as agentskills.io and Claude Code, so skills are portable both ways. Skills are prompt text only; Holt never executes their contents.\n\nHolt looks in three places, in precedence order (workspace shadows global shadows builtin on a name clash): `./.holt/skills/` for this folder, `~/.holt/skills/` for every folder (`--global`), and a read-only set of **built-in skills** that ship inside Holt and are available in every folder out of the box.\n\n```\nholt skill list                        list installed skills\nholt skill show <name>                 print a skill\nholt skill create <name> [--global]    scaffold a new skill\nholt skill search <query>              find skills in the registry\nholt skill add <src|name> [--global]   install from a git URL, git-url#subdir, path, or registry name\nholt skill publish [<name>]            prepare a skill for the registry (prints a PR entry)\nholt skill remove <name>               delete a skill\n```\n\nA source may carry a `#<subdir>` suffix (split on the first `#`) that points at one skill folder inside a repo or path: `holt skill add https://github.com/holt-os/registry#skills/pm-prd`. The subdir is a path, relative to the source root, that contains a `SKILL.md`. This lets a single repo hold many skills (one monorepo), which is exactly how the community registry is laid out. The subdir is validated to stay inside the source (absolute paths and `..` traversal are refused), since a registry entry is remote-controlled. Without a `#`, behaviour is unchanged: Holt looks for a `SKILL.md` at the source root or in exactly one immediate subfolder.\n\nIn chat, run one with `/skill <name> [your input]`. Available skills are also listed to the brain each turn, so it knows what it can be asked to follow.\n\n### Skills as native commands\n\nWhen you `holt launch` an interactive brain, every enabled skill is also compiled into that brain's own custom-command format, so it shows up as a real slash command inside the session (in addition to Holt's own `/skill <name>`). This happens automatically for the built-ins too, and re-syncs on `holt skill add` and `holt skill remove`. It is idempotent and stays quiet on repeat launches when nothing changed.\n\nFidelity depends on the brain:\n\n- **Claude Code (full power):** each skill folder is copied verbatim into the project's `.claude/skills/<name>/`, so multi-file skills, tool restrictions, and frontmatter are preserved one to one.\n- **Gemini CLI (best effort):** a `.gemini/commands/<name>.toml` custom command is generated from the skill's description and instructions, with your input passed through Gemini's `{{args}}`. Prompt only.\n- **Codex (best effort):** a markdown custom prompt is written to Codex's global prompts dir (`~/.codex/prompts/holt-<name>.md`, prefixed because Codex prompts are global rather than per project), with your input passed through Codex's `$ARGUMENTS`. Prompt only.\n\nIt never clobbers a command or skill you authored: if a target already exists and Holt did not write it, that one is skipped with a one-line note. Holt tracks everything it generates in `./.holt/skill-commands.json`, so `holt skill remove` cleans up only Holt's own compiled commands and never touches yours. A skill that has no instructions to express (for the prompt-only brains) is skipped rather than emitted as a broken command.\n\n### holt-jobsearch\n\nA full skill suite built on Holt that runs an entire job search: build your profile, score a role on fit, tailor your resume, write the cover letter, prep for interviews, read your inbox for replies, draft follow-ups, and track the pipeline. The core runs with zero API keys; search, inbox, and follow-up are opt-in connectors. It drafts everything and leaves you the submit button. Find it at [holt-os/holt-jobsearch](https://github.com/holt-os/holt-jobsearch), or `holt skill search job` to install the pieces from the registry.\n\n### Built-in skills\n\nHolt ships with a small, curated set of general-purpose skills, available in every folder with no setup. They are read-only (`holt skill remove` will not delete them); to change one, create a workspace or global skill with the same name and it takes over.\n\n- **summarize**: condense a document, article, transcript, or pasted text into its key points.\n- **explain**: explain a concept, error message, or piece of jargon in plain language.\n- **action-items**: pull decisions, tasks, and owners out of messy notes or a meeting transcript.\n- **brief**: a short briefing on the state of the current folder, using recalled memory plus your input.\n- **code-review**: review a file or a diff for correctness bugs, edge cases, and simplifications.\n- **explain-code**: walk through what a file or function does and how it fits into the wider system.\n- **commit**: draft a clear commit message from staged changes or a described change.\n- **plan**: break a goal into a concrete, ordered set of steps.\n- **rewrite**: tighten and clarify a piece of text without changing its meaning.\n- **decide**: weigh a decision and give a clear recommendation.\n- **onboard**: a guided first-day interview that fills memory with who you are and what you are working on.\n- **audit**: a read-only health check across the four rungs, naming the gaps and the single next fix.\n- **level-up**: a weekly session that turns one recurring manual chore into something Holt does, and ships it.\n\nThe last three are the setup loop. `onboard` on day one, then `audit` and `level-up` weekly. Holt gets useful in four rungs, in order: **Know** (it holds facts about you), **Reach** (it can see your real material), **Do** (it runs your repeated work), **Run** (it acts while you are away). Automating on top of an empty memory just produces confident nonsense on a timer, so the order matters.\n\n### Skill registry (`holt skill search` / `publish`)\n\nBeyond pasting URLs, Holt can discover and share skills through a **git-based registry**: a single JSON index living in a git repo. No server, no infra, in keeping with the rest of Holt.\n\nThe index is a JSON document:\n\n```json\n{\n  \"version\": 1,\n  \"skills\": [\n    {\n      \"name\": \"hello-registry\",\n      \"description\": \"A tiny demo skill.\",\n      \"source\": \"https://github.com/you/hello-registry.git\",\n      \"author\": \"you\",\n      \"tags\": [\"demo\"]\n    }\n  ]\n}\n```\n\n`source` is anything `holt skill add` already accepts: a git URL (its `SKILL.md` may sit in one subfolder), a local path, or either of those with a `#<subdir>` suffix pointing at one skill folder inside the repo. That last form lets one repo hold many skills, so the community registry can be a single monorepo (e.g. `\"source\": \"https://github.com/holt-os/registry#skills/pm-prd\"`). `tags` is optional. Only `name` and `source` are required per entry; malformed rows are skipped rather than failing the whole index.\n\n- **Find:** `holt skill search <query>` fetches the index and lists skills whose name, description, or tags match (case-insensitive substring, name matches first). An empty query lists everything. It prints name, author, description, and source.\n- **Install by name:** `holt skill add <name>` resolves the name in the registry to its `source`, then installs through the exact same clone/copy path as `holt skill add <url|path>`. A git URL or an existing local path is still installed directly, unchanged.\n- **Publish (zero-infra):** `holt skill publish [<name>]` validates a skill's `SKILL.md` (needs a `name` and `description`) and prints the exact JSON entry plus instructions to open a PR against the community registry repo. Holt never pushes anywhere; you add the entry via a pull request. With no name, it publishes the `SKILL.md` in the current directory.\n\nThe default index is the community registry (`https://raw.githubusercontent.com/holt-os/registry/main/registry.json`). Override it with `HOLT_REGISTRY_URL` (a URL, a `file://` URL, or a plain path) to point at your own index or a local file. The fetched index is cached at `~/.holt/registry-cache.json` for one hour; `--refresh` forces a re-fetch. If no registry is reachable (for example, the community index is not live yet), search and install-by-name fail cleanly with a clear message rather than crashing.\n\n## Use Holt from your other tools (MCP)\n\nHolt can run as an [MCP](https://modelcontextprotocol.io) server, so Claude Code, Cursor, and Codex can recall and remember from Holt's memory for the folder without leaving those tools.\n\n```bash\nholt mcp        # run the MCP server for the current folder (talks JSON-RPC over stdio)\nholt mcp setup  # print the config snippets for each client\n```\n\nThe server serves the memory of whatever folder it is launched in. Because MCP is non-interactive (stdin carries the protocol), it cannot prompt for trust, so it **auto-trusts the launch folder** and adds it to `~/.holt/trust.json`. Startup logging goes to stderr; stdout is reserved for the protocol.\n\nTools it exposes:\n\n- `recall` (`query`, optional `k`): search this folder's memory for relevant moments and facts.\n- `remember` (`content`): save a durable fact to this folder's memory.\n- `list_skills`: list the skills installed for this folder.\n- `get_skill` (`name`): get a skill's full instructions.\n- `memory_stats`: memory statistics for this folder.\n\n**Claude Code**\n\n```bash\nclaude mcp add holt -- holt mcp\n```\n\n**Cursor / Codex** (JSON config):\n\n```json\n{ \"mcpServers\": { \"holt\": { \"command\": \"holt\", \"args\": [\"mcp\"] } } }\n```\n\nPoint the client at the folder whose memory you want it to use; Holt serves whatever folder the server process starts in.\n\n## Ambient memory for Claude Code (`holt hook`)\n\nThe MCP server above lets Claude Code recall and remember **when it decides to**. `holt hook` goes further: it makes Holt's per-folder memory work **ambiently**, with no Holt session open and no manual tool call. Two directions, both wired as [Claude Code hooks](https://docs.claude.com/en/docs/claude-code/hooks):\n\n- **Inject** (`UserPromptSubmit`): before each prompt, Holt quietly recalls the most relevant remembered notes for the current folder and adds them to the model's context.\n- **Capture** (`Stop`): when a session ends, Holt distills durable facts from the transcript (via this folder's configured brain) and saves them to the folder's memory.\n\n```bash\nholt hook install                 # install both hooks into ~/.claude/settings.json\nholt hook install --inject-only   # only the before-prompt recall hook\nholt hook install --capture-only  # only the end-of-session fact hook\nholt hook install --project       # write ./.claude/settings.json instead of the global one\nholt hook status                  # show what is installed and which directions are active\nholt hook remove                  # remove ONLY Holt's hooks, leaving everything else intact\n```\n\nInstall **merges** into any existing `hooks` config, never clobbers unrelated settings or other hooks, is **idempotent** (re-running does not duplicate), and backs the file up to `settings.json.holt-bak` before writing. `remove` deletes only the entries whose command is `holt hook inject` / `holt hook capture`.\n\n**Trusted-folder guard (important).** The two runtime hooks (`holt hook inject` and `holt hook capture`, invoked by Claude Code, not you) no-op **silently** unless the folder is a trusted Holt workspace with an existing `.holt/memory`. So Holt never injects your private notes into an unrelated project, and never creates memory in a folder you never set up. To make a folder ambient, run `holt init` there once so it becomes trusted and gets its `.holt/memory`. The inject hook keeps stdout clean (only the context block is printed, since Claude Code injects it verbatim); all diagnostics go to stderr, and both hooks always exit 0 so a memory step never blocks or slows your prompt.\n\n**Seeing what the hooks did (`~/.holt/hooks.log`).** Since the hooks stay silent, every `holt hook capture` run appends **one** line to `~/.holt/hooks.log` with the outcome or the exact skip reason (untrusted folder, no config, `extractFacts` off, no usable brain, missing or empty transcript, too few exchanges, or `saved N facts`), preceded by a line of the raw hook fields it received. Check this file first if capture seems to save nothing. `inject` uses the same log but stays quiet by default; set `HOLT_HOOK_DEBUG=1` to make it log too.\n\nTo uninstall, run `holt hook remove` (add `--project` if you installed with `--project`).\n\n## Output format\n\nReplies print as markdown. `/output html` (or `markdown`) switches the save format and persists it. `/save [name]` writes the last reply to the current folder: `.md`, or a small self-contained dark-theme `.html` page.\n\n***\n\n## Run tasks, schedule them, reach them from your phone\n\nBeyond interactive chat, Holt can run a task once, on a timer, or from Telegram. The selected brain does the task; your memory is recalled into it automatically.\n\n### holt run\n\nRun a single task non-interactively. It recalls relevant memory, injects your skills, runs the brain once, streams the reply, and saves the exchange to this folder's memory.\n\n```bash\nholt run \"summarize the open items in this folder\"\n```\n\nOptions: `--brain <id>` pick a brain, `--out <file>` also write the reply to a file, `--no-store` skip saving, `--no-recall` skip memory, `--quiet` suppress streaming. The folder must be trusted first (`holt init` once); in a non-interactive context an untrusted folder exits non-zero instead of prompting.\n\n### holt schedule\n\nRun a task automatically on a timer, using your OS scheduler (launchd on macOS, cron on Linux, Task Scheduler on Windows). A scheduled run behaves exactly like typing `holt run` in that folder.\n\n```bash\nholt schedule add \"summarize my inbox and flag what is urgent\" 07:00 --notify\nholt schedule list\nholt schedule remove <id>\n```\n\n`<HH:MM>` is a 24h daily time. `--notify` pushes the output to your Telegram. Jobs live in `~/.holt/schedules.json`; each run logs to `~/.holt/logs/<id>.log`.\n\n### Telegram: chat with Holt from your phone\n\nHolt can run as a Telegram bot. Messages you send are run through your brain (with memory) and the reply comes back to your phone. Single user: only your chat id is served.\n\n```bash\nholt telegram setup   # message @BotFather for a token, paste it, auto-detect your chat id\nholt telegram         # run the bot (keep it running under a service manager)\nholt notify \"backup done\"          # push a one-off message\nholt run \"daily brief\" | holt notify   # pipe any output to your phone\n```\n\nThe token is stored in `~/.holt/telegram.json` (mode 600) and never printed in full.\n\n### holt routine\n\nA routine is a named, reusable job: it bundles the pieces above into one object you can run by name or on a schedule. A routine is a **task source** (an installed skill or an inline prompt) plus an optional **daily schedule** plus **output routing** (stdout, a file, or Telegram). It is the generic version of a recurring \"agent\" such as a daily brief.\n\n```bash\n# an inline task you can rerun by name\nholt routine add brief --task \"summarize what changed and what is open here\" --notify\n\n# a routine backed by an installed skill\nholt routine add triage --skill inbox-triage --out triage.md\n\n# a scheduled routine: installs an OS timer that fires \"holt routine run digest --quiet\"\nholt routine add digest --task \"digest today's changes\" --at 07:00 --notify\n\n# a built-in template (daily-brief or standup)\nholt routine add myday --template daily-brief\n\nholt routine run brief          # run it now and stream the reply\nholt routine run brief --out b.md   # also write the reply to a file this run\nholt routine list               # name, source, schedule, outputs, workspace\nholt routine show brief         # full detail\nholt routine remove brief       # deletes the routine and its OS timer, if any\n```\n\nSources: give exactly one of `--skill <name>`, `--task \"<prompt>\"`, or `--template <t>`. A skill routine splices that skill's `SKILL.md` body into the prompt at run time; a task routine uses the prompt as-is.\n\nScheduling: `--at HH:MM` (24h, daily) installs an OS timer through the same scheduler `holt schedule` uses (launchd on macOS, cron on Linux, Task Scheduler on Windows) whose command is `holt routine run <name> --quiet`. Omit `--at` for a manual, run-on-demand routine. Removing the routine removes its timer.\n\nOutput routing: by default the result prints to stdout. `--out <file>` also writes it to a file (relative to the routine's workspace); `--notify` pushes it to Telegram (guarded cleanly when Telegram is not set up). Both `--out` and `--notify` can also be passed to `holt routine run` for a single run. In `--quiet` mode (what the scheduler uses) stdout is suppressed but `--out` and `--notify` still fire.\n\nRoutines are stored in `~/.holt/routines.json` (one entry per routine, each carrying its absolute workspace). A routine with a schedule also produces an entry in `~/.holt/schedules.json`, keyed by the routine name; the two are kept consistent.\n\n## Machine check (`holt doctor`)\n\nNot sure how best to run Holt on your hardware? `holt doctor` looks at this machine and its installed tools and tells you, in plain language, what to do.\n\n```bash\nholt doctor\n```\n\nIt reports, section by section:\n\n- **Machine**: platform, CPU, RAM (total and free), and Node version.\n- **Brains**: which agent CLIs (`claude`, `codex`, `gemini`) are installed, plus a recommendation (prefer an installed CLI brain; otherwise install one or add an API brain).\n- **Semantic memory**: whether a local Ollama with the embed model is reachable, and how to enable it (`ollama pull nomic-embed-text`) so recall is semantic and fully private.\n- **Knowledge wiki maintainer**: `brain` (the default, best quality, rides your existing plan) versus a local model sized to your RAM. On a 16 GB machine it names `qwen2.5:7b`; more RAM gets a larger model; under 16 GB it steers you to `brain`.\n- **Always-on / Telegram**: whether a Telegram bot is set up, and a note on hosting the bot on a low-power always-on machine while keeping heavy local models on a bigger one.\n- **Recommended next steps**: a short checklist built from whatever gaps it found.\n\nAnd when you would rather not do the steps yourself:\n\n```bash\nholt doctor --fix\n```\n\n`--fix` repairs the common problems in one go: starts Ollama when it is installed but not running, downloads the missing embed model, upgrades any memories saved while embeddings were off, and reports a damaged-config repair if one happened. It ends with a \"Repairs\" section listing exactly what it did (or \"Nothing needed repair\"). Every Holt error message points here, so the answer to \"something is off\" is always the same one command.\n\nIt is read-only advice: it changes nothing, needs no trust, and always exits cleanly even when a probe fails.\n\nThe RAM-to-model table lives in `src/specs.ts` (`LOCAL_MODEL_RECS` / `recommendLocalModel`), the single source of truth the wiki maintainer reads too.\n\n## Your writing voice (`holt voice` + `holt write`)\n\nHolt can learn how *you* write, then draft in that voice while steering clear of the patterns that make text read as machine written.\n\n### Teach it your voice: `holt voice`\n\nAt the end of `holt init` you are offered a short optional interview. You can also run or redo it anytime:\n\n```bash\nholt voice            # run the interview, or add samples, or both\nholt voice add <file> # learn from a writing sample you already have\nholt voice show       # print your profile\nholt voice edit       # show where the profile lives (it is a plain JSON file)\nholt voice clear      # remove it\n```\n\nThe interview asks you to pick a **depth** up front: `quick` (a few questions) or `detailed` (more). Questions are about **writing and communication style only**: tone, sentence length, first vs third person, emoji habits, words you love or ban, who you write for, and what you want to sound like and not sound like.\n\nChanged your mind at the first prompt? Answer `n`, `skip`, `cancel`, or just press enter to back out cleanly. Nothing is saved and no profile is built; run `holt voice` again whenever you like. Inside the question list, an empty answer skips only that one question.\n\nPrivacy is a hard rule. The interview never asks for personal details (no name, job, location, or life story). If you happen to mention something personal in an answer, Holt stores only what you typed and never asks follow ups.\n\nYou can also feed it real writing. `holt voice add <file>` reads a file; inside the interview you can paste a sample instead. Samples are stored as a hash and length by default; an excerpt is kept only if you say yes, so Holt can match your rhythm directly.\n\nFrom the answers and samples, Holt asks your configured brain to build a **style profile**: tone, formality (1 to 5), average sentence length, person, emoji and formatting habits, signature moves, banned words, target audiences, and a short \"sounds like / does not sound like\" summary. If no brain is set yet, your raw answers are saved and the profile synthesizes the next time you run `holt voice` with a brain configured.\n\nThe profile lives at `~/.holt/voice.json` (mode 600, since it can hold writing excerpts). It is global to you, not per folder, and you can hand edit it.\n\n### Draft in your voice: `holt write`\n\n```bash\nholt write \"a linkedin post about shipping Holt\" --type linkedin\nholt write \"a reply to a customer asking for a refund\" --type email --out reply.txt\nholt write \"a short post about testing\" --fast\n```\n\n`holt write` composes three things into one prompt: your voice profile, a built in **anti-AI rubric**, and your request. Then it runs your default brain. `--type` shapes length and format (`linkedin`, `email`, `tweet`, `blog`, `generic`), `--out` also writes the draft to a file, and `--brain <id>` picks a brain.\n\nBy default a second pass checks the draft against the rubric and fixes any tells; `--fast` skips it for a single call. The anti-AI rubric bans em-dashes, \"rule of three\" cliches, \"in today's fast-paced world\" openers, \"it is not X, it is Y\" reframes, tidy bow-tie conclusions, uniform sentence rhythm, hedging filler, corporate buzzwords, and emoji unless your profile allows them. The output is always em-dash free.\n\nWith no profile yet, `holt write` still works using a plain, natural voice.\n\n***\n\n## Commands\n\n```\nholt                 start your assistant: set up if needed, then launch the real\n                     interactive brain (Claude Code/Codex/Gemini), branded as Holt\nholt launch          same as bare \"holt\"\nholt init            set up (trust, brains, sign-in, defaults) for this folder\nholt run <task>      run one task non-interactively (recall, brain, remember)\nholt schedule        run a task on a timer: add | list | remove\nholt routine         named, reusable, scheduled jobs: add | run | list | show | remove\nholt telegram        chat with Holt from your phone: telegram [setup]\nholt notify [msg]    push a message to your phone over Telegram (stdin-friendly)\nholt doctor          check this machine and recommend how best to run Holt here\n                     (\"holt doctor --fix\" also repairs the common problems it finds:\n                      starts Ollama, pulls the embed model, mends a damaged config)\nholt tour            a 2-minute guided first run: ask, teach one fact, watch it remember\nholt update          get the latest Holt in one word (npm or Homebrew, auto-detected)\nholt reset           start this folder over (typed confirmation; your files untouched)\nholt voice           teach Holt your writing voice: add <file> | show | edit | clear\nholt write <what>    draft content in your voice with anti-AI checks (--type, --out, --fast)\nholt graph           see your memory as an interactive knowledge graph\n                     (--code / --docs / --all to ingest this folder's code + docs;\n                      \"holt graph report\" writes GRAPH_REPORT.md)\nholt mcp             run an MCP server so other tools use this folder's memory (holt mcp setup)\nholt hook            ambient memory for Claude Code: install | remove | status\nholt skill           manage skills: list | show | create | add | remove\nholt memory          inspect memory: holt memory [add <fact> | search <query> | facts | embed | clear]\nholt wiki            derived knowledge wiki: holt wiki [sync | auto | rebuild | lint | list | show | status]\nholt setting         configure brains, API brains, and launch command\nholt login <brain>   sign in to claude, codex, or gemini\nholt version         print version\nholt help            show help\n```\n\n## Configuration\n\n`holt init` writes `<folder>/.holt/config.json` (default brain and enabled brains for that folder). Trusted folders live in `~/.holt/trust.json`. Edit settings with `holt setting`. Scheduled jobs live in `~/.holt/schedules.json`, and the Telegram token in `~/.holt/telegram.json` (mode 600).\n\n## Architecture\n\nSmall strongly-typed **TypeScript core**, zero runtime dependencies: command dispatch, brain adapters (CLI spawn and direct API streaming), transcript ownership, memory with recall, skills, and the graph renderer. See [`ARCHITECTURE.md`](./ARCHITECTURE.md) and [`CONFIGURATION.md`](./CONFIGURATION.md).\n\n## Roadmap\n\nBuilt in always-shippable phases toward a full-vision v1:\n\n0. **Skeleton and chat**: trust, init with install and sign-in, chat, brain switching with kept context *(shipped)*\n1. **Memory**: per-folder store, semantic recall, streaming replies, and distilled facts per session *(shipped)*\n2. **Any LLM directly**: API brains with your own key, HTML or Markdown output *(shipped)*\n3. **Skills**: portable SKILL.md skills, create/add/run *(shipped)*\n4. **Knowledge graph**: see and navigate your own memory with `holt graph` *(shipped)*\n5. **Everywhere**: MCP server so other tools read Holt's memory, plus `holt run`, scheduling, and Telegram *(shipped)*\n6. **Knowledge wiki**: LLM-maintained, cross-linked, regenerable pages over your memory with `holt wiki` *(shipped)*\n7. **Onboarding**: a day-one interview that fills memory, plus the weekly audit and level-up ritual *(shipped)*\n8. **Next**: docs site, skill registry publishing, more channels\n\n## Contributing\n\nHolt is built to be extended without touching the core. See [`CONTRIBUTING.md`](./CONTRIBUTING.md).\n\n***\n\n## License\n\n[MIT](./LICENSE) © Debashis Nayak\n","readmeFilename":"README.md"}