{"_id":"@ahkohd/writestead","_rev":"16-71d521cc3778ccba64329a7b90df7446","name":"@ahkohd/writestead","dist-tags":{"latest":"0.1.19"},"versions":{"0.1.4":{"name":"@ahkohd/writestead","version":"0.1.4","license":"MIT","_id":"@ahkohd/writestead@0.1.4","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"6ca1fccf34519a5c198dacb7e6386f8f704ebc27","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.4.tgz","fileCount":5,"integrity":"sha512-uPxwXWfVHi64qOp4NFTNQMuZnvBpjq3/TCIsPILuxG4hA12XFMgW7956JcD7TtyiZMUe2rn2CWy1mrEHcFNJXA==","signatures":[{"sig":"MEYCIQDpKYwDB85FoMuKnTs73s6nmRSOJDCkcidrtBEkLx3EYAIhAOTuu4FDAb83fKyrVKnSPisOcPkK7/GDSirYMWXFu0Yz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12462},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.4","@ahkohd/writestead-darwin-arm64":"0.1.4","@ahkohd/writestead-linux-x64-gnu":"0.1.4","@ahkohd/writestead-win32-x64-msvc":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.4_1776999553539_0.6205412845114084","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@ahkohd/writestead","version":"0.1.5","license":"MIT","_id":"@ahkohd/writestead@0.1.5","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"e53c5f4bd8acd0ee7bd37ea46dd35af0bf535154","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.5.tgz","fileCount":5,"integrity":"sha512-1qOe2aBIZpQ4if0XMyHCg/QM/1177lNJ4tASiN+PGQ54a96NFkXDGgEBWk0laNxVK5c23z3EHBIH8Yqif3lz1A==","signatures":[{"sig":"MEUCIDebbqwc7LBhs3aXu6dBAcCYo50m0dg0D4RpiYlrAuP9AiEAq66asELfYQ0aaHQT1RkU8wnzORGbkneEGGMEA77f5b4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13416},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.5","@ahkohd/writestead-darwin-arm64":"0.1.5","@ahkohd/writestead-linux-x64-gnu":"0.1.5","@ahkohd/writestead-win32-x64-msvc":"0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.5_1777001948892_0.5480156331411226","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@ahkohd/writestead","version":"0.1.6","license":"MIT","_id":"@ahkohd/writestead@0.1.6","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"15546edbc79f9505d72edf1a73e8d0bba41cdc2f","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.6.tgz","fileCount":5,"integrity":"sha512-dK+gi/OpikFeovDZR7PE1X32Rke3oqN0M7BFWZAg5uU6lkI3eCcu0lIlj94CzT3vVkR2txWcEmoTjinqwtdqpw==","signatures":[{"sig":"MEUCIQDotkCvGm36iKAQsVlzdZt2m0gheswlK9wLhvV9ws2+YgIgZ1D8zDeSX90iWq/zNWB8h3hKbwKWH5/Qrp4SoBNHpHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13784},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.6","@ahkohd/writestead-darwin-arm64":"0.1.6","@ahkohd/writestead-linux-x64-gnu":"0.1.6","@ahkohd/writestead-win32-x64-msvc":"0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.6_1777051355463_0.3943953347179794","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@ahkohd/writestead","version":"0.1.7","license":"MIT","_id":"@ahkohd/writestead@0.1.7","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"ffbf43f03ff4fe2c04e9993a46330457a5192ec8","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.7.tgz","fileCount":5,"integrity":"sha512-F1CjY4ydmTd69ImUOnGWK09xcbvFOTj052ZNrEKdBS6nP/ytrMOsLPmcNTx+zkcYWxii4N1VzMxfCX0FIDruAw==","signatures":[{"sig":"MEQCIGRktcnNkYfCckeTMZI50BnhioApSd828ekCJw/gU0j7AiA+B93PqoOUbJYL9vDOwAaMQO8ySBaeWm5M/4K/HhaC4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13784},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.7","@ahkohd/writestead-darwin-arm64":"0.1.7","@ahkohd/writestead-linux-x64-gnu":"0.1.7","@ahkohd/writestead-win32-x64-msvc":"0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.7_1777054327116_0.19553829927329813","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@ahkohd/writestead","version":"0.1.8","license":"MIT","_id":"@ahkohd/writestead@0.1.8","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"0fcd4fdec1cd4d4f8e1fc657f0013ec78eabc3a7","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.8.tgz","fileCount":5,"integrity":"sha512-5Xe8a2cFTTnYl4viBK/bRPyUQwMuDd6XsPqVKAwnVhoENdJ7H8X51X33mER4YD5Tdh6vO4hcdCnGZ31sTRc7XQ==","signatures":[{"sig":"MEUCIER2wsh4Hs6hqGD2J90pRteOjBxtZnm8GXMikRRAcL6cAiEA76qFRDc5DMLxZlBFCaudARZ85COVKob+xt+xqIvHb2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13756},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.8","@ahkohd/writestead-darwin-arm64":"0.1.8","@ahkohd/writestead-linux-x64-gnu":"0.1.8","@ahkohd/writestead-win32-x64-msvc":"0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.8_1777055249699_0.5588784050252666","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@ahkohd/writestead","version":"0.1.9","license":"MIT","_id":"@ahkohd/writestead@0.1.9","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"9d634bfbd7a8a7173cb54b3f7318f7cf3ee6a979","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.9.tgz","fileCount":5,"integrity":"sha512-NyNR6c+XrE6Uu3NWjZD8SFrtNfRQQGFiDjxjexovqGq357TGsJrZ66BsQG2VeYpxpVJCEVUBfqEmdjzZ+QD9MQ==","signatures":[{"sig":"MEUCIAs2h5JYvOgEyrTS46woPGelxpjlF9HEBYVgEh0sKENrAiEAhJVEIHHIQDyR1Qt5sn205TUVa1HQFne4FSCOXqcl4do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13918},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.9","@ahkohd/writestead-darwin-arm64":"0.1.9","@ahkohd/writestead-linux-x64-gnu":"0.1.9","@ahkohd/writestead-win32-x64-msvc":"0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.9_1777066473909_0.7469158645598393","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@ahkohd/writestead","version":"0.1.10","license":"MIT","_id":"@ahkohd/writestead@0.1.10","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"5a2c6f24322a32e204ae7f4b1efb587ac73bb2fb","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.10.tgz","fileCount":5,"integrity":"sha512-zny5kZRn/uteTam+k172m3UiHp3FRFYA4pw0kPyip20EcfNOGWiiysSDSzW9t3OiBNu3DY3QhvTKlgrXcXoW6g==","signatures":[{"sig":"MEQCIAzAceJzzHM82SBBH8M1XKEg8nmvaWdjTfn3qVp70jdkAiBXJh/cz2NwMXILL5L+maMgfgsvFL1Xs7pIdFbP7rGd4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14079},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.10","@ahkohd/writestead-darwin-arm64":"0.1.10","@ahkohd/writestead-linux-x64-gnu":"0.1.10","@ahkohd/writestead-win32-x64-msvc":"0.1.10"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.10_1777075430884_0.15814722540563664","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@ahkohd/writestead","version":"0.1.11","license":"MIT","_id":"@ahkohd/writestead@0.1.11","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"4c77eeb1c1d14f30054f25de171d9422bc400510","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.11.tgz","fileCount":5,"integrity":"sha512-EuK1Hjl9NcE5lbZt9mcPotnPf/v0DiYtL+1Lb39BONYuslRe1c6xoCMJk+qc/SsDaqPIrDZYlENLu7RFCSFV/Q==","signatures":[{"sig":"MEUCIQDhp6/H1RoKi84uLPMfvQLWBK0GbLS5xHNczwUR+wvnzAIgb1xMuO2ICtB/gyV1+Tt2SfsYvkR8VOOHk1Y7TDKX+iM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14079},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.11","@ahkohd/writestead-darwin-arm64":"0.1.11","@ahkohd/writestead-linux-x64-gnu":"0.1.11","@ahkohd/writestead-win32-x64-msvc":"0.1.11"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.11_1777077077796_0.45856064982554146","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@ahkohd/writestead","version":"0.1.12","license":"MIT","_id":"@ahkohd/writestead@0.1.12","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"2c32f21f052801903925d0e9b06080674512fc48","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.12.tgz","fileCount":5,"integrity":"sha512-G/nON+Ml4gtdEblqVXT988P16yDQPwjAm55zj9QTR+hQNjC2lwE34cRY5lJmQf7Hr2jCSBSsVCGqWbxU2K/VFA==","signatures":[{"sig":"MEQCIALNp13XSJxA4IuN0uzcq9aR96LIgMgKHB1740RJ4tvFAiB4nZVxshOCDPIFKUIQCgSQOdLqaEM8LcLt9uSXYg8YoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14079},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"CLI-first personal wiki engine with MCP support","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.12","@ahkohd/writestead-darwin-arm64":"0.1.12","@ahkohd/writestead-linux-x64-gnu":"0.1.12","@ahkohd/writestead-win32-x64-msvc":"0.1.12"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.12_1777081131831_0.27226967854458484","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@ahkohd/writestead","version":"0.1.13","license":"MIT","_id":"@ahkohd/writestead@0.1.13","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"355ed5d2f35e7d0eb86bcde9c12e677ff7ec744c","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.13.tgz","fileCount":5,"integrity":"sha512-DiFFde6cyENUd69kroZHpWV6Z23NDD3b9r6LWNAXaDZ44pC38TDU7SPuMqLJdCt81+GOierg6qF0r6tfgT8YOw==","signatures":[{"sig":"MEYCIQDBxTZss70C+eE91rxXOIP0KgKzg1JRScJQS5VLxDqlIQIhAME8BqpOJ0xsn4MazJpVciz07CMuXKq1m/mXBXiUnqSp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14040},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.13","@ahkohd/writestead-darwin-arm64":"0.1.13","@ahkohd/writestead-linux-x64-gnu":"0.1.13","@ahkohd/writestead-win32-x64-msvc":"0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.13_1777090761170_0.3385689278898012","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@ahkohd/writestead","version":"0.1.14","license":"MIT","_id":"@ahkohd/writestead@0.1.14","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"78048e9319bdc5de4af26fb9d45fb025e9d74996","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.14.tgz","fileCount":5,"integrity":"sha512-ZEGRK0y4N2ci46wxKiKGah+PqHMbbxSYSl2AAxoY0YSK7YqYWzyNX7SpUa8C907lk75zSvggPic7Vnidff9UkQ==","signatures":[{"sig":"MEYCIQCp0SsUOaf08LcPTiwWZ9+kPueUuOrRwZ0PYhx65tEq3AIhAMJsKcZXrLnGf3QLHYbuuPMUIH815wbGxKOmrS7lLOLd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14140},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.14","@ahkohd/writestead-darwin-arm64":"0.1.14","@ahkohd/writestead-linux-x64-gnu":"0.1.14","@ahkohd/writestead-win32-x64-msvc":"0.1.14"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.14_1777097154124_0.4205449087967241","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@ahkohd/writestead","version":"0.1.15","license":"MIT","_id":"@ahkohd/writestead@0.1.15","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"93de34e6fd8ff85c3dd7b7d235b30419b2d18699","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.15.tgz","fileCount":5,"integrity":"sha512-oqDNzVJ4893GftV8nOQq26VsS6GEzoW/fxP97plCueqm+vwdu03XiI8rJ5fknhRHFxmu9e1iFpjp87dsnRKhSw==","signatures":[{"sig":"MEUCIAHyOnXkQaSocgnLzh9bw+zYANNSpd53XFuErN7s073fAiEAqR7daIN0KqlsxPZ2zfnKyV+ekoVQvHfZ4I5RChajyis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14140},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.15","@ahkohd/writestead-darwin-arm64":"0.1.15","@ahkohd/writestead-linux-x64-gnu":"0.1.15","@ahkohd/writestead-win32-x64-msvc":"0.1.15"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.15_1777100616714_0.9631093113893865","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@ahkohd/writestead","version":"0.1.16","license":"MIT","_id":"@ahkohd/writestead@0.1.16","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"a50c188142ce49ec2c2a0d13b87c97d6051d0d96","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.16.tgz","fileCount":5,"integrity":"sha512-OyK/3yUWelahTX1XG2LJhf3NZU27Aeu3nEFBL1VUEIXVnIAPXLvdD7I6ZdO3yIGfZ0ZOrOzQT4CDuBBTkkRRzA==","signatures":[{"sig":"MEQCIB1NFrzVUds3lHK2A5SLIUuxwbiw/n1fTZ6c5oKyNH2LAiA5xMo2ryjUi/xvgMZir84648SHNMzEr3dlhqavpMajIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14140},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.16","@ahkohd/writestead-darwin-arm64":"0.1.16","@ahkohd/writestead-linux-x64-gnu":"0.1.16","@ahkohd/writestead-win32-x64-msvc":"0.1.16"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.16_1777157397420_0.35480230436407667","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@ahkohd/writestead","version":"0.1.17","license":"MIT","_id":"@ahkohd/writestead@0.1.17","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"8554eec54792ee82f024d28e988439c7e6363e99","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.17.tgz","fileCount":5,"integrity":"sha512-JhczYTZ5z5ExDsZ9qqQkNTRZpy60T09n/dSDorPLicmY6rMBcXZLNotH4B57uCUoPbgbu0dY74AlpEwHA1nHew==","signatures":[{"sig":"MEUCIQDMSyUxzIEZC9uZlVSXKT32LENEovWxPVOjlp9KLl6CUAIgFnbVVU0T4qBpWXREBPN6QhQ4Bwfncx4bmCrNd2cegzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14140},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.17","@ahkohd/writestead-darwin-arm64":"0.1.17","@ahkohd/writestead-linux-x64-gnu":"0.1.17","@ahkohd/writestead-win32-x64-msvc":"0.1.17"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.17_1777163300653_0.8851928962238536","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@ahkohd/writestead","version":"0.1.18","license":"MIT","_id":"@ahkohd/writestead@0.1.18","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"homepage":"https://github.com/ahkohd/writestead#readme","bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"bin":{"writestead":"bin/writestead.js"},"dist":{"shasum":"ca283234dfe6b773a632e7519887527c3d565e53","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.18.tgz","fileCount":5,"integrity":"sha512-F09xy6NoKmvQEZEd7l2G//DE+WSLLJ0nZc/8z4YtFQ0kGgjmONcsBlOH+gqVPF5ymFLgy47JKejeSmZjEDVfoA==","signatures":[{"sig":"MEUCIQDYC2ULxvmyQR+uG/NYvfI32SeDSYAR+AcKIHcKnhPUkAIgR8L2QcXwZohDpskWlLz7b3r8bMafWfS1PcA+fTBRTL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14147},"type":"commonjs","engines":{"node":">=18"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"repository":{"url":"git+https://github.com/ahkohd/writestead.git","type":"git"},"_npmVersion":"11.11.0","description":"LLM Wiki","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"optionalDependencies":{"@ahkohd/writestead-darwin-x64":"0.1.18","@ahkohd/writestead-darwin-arm64":"0.1.18","@ahkohd/writestead-linux-x64-gnu":"0.1.18","@ahkohd/writestead-win32-x64-msvc":"0.1.18"},"_npmOperationalInternal":{"tmp":"tmp/writestead_0.1.18_1777335209481_0.8712976009475657","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@ahkohd/writestead","version":"0.1.19","description":"LLM Wiki","license":"MIT","repository":{"type":"git","url":"git+https://github.com/ahkohd/writestead.git"},"bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"homepage":"https://github.com/ahkohd/writestead#readme","type":"commonjs","bin":{"writestead":"bin/writestead.js"},"engines":{"node":">=18"},"optionalDependencies":{"@ahkohd/writestead-darwin-arm64":"0.1.19","@ahkohd/writestead-darwin-x64":"0.1.19","@ahkohd/writestead-linux-x64-gnu":"0.1.19","@ahkohd/writestead-win32-x64-msvc":"0.1.19"},"scripts":{"pack:dry":"npm pack --dry-run","version:sync":"node scripts/sync-npm-version.cjs"},"publishConfig":{"access":"public","provenance":true},"_id":"@ahkohd/writestead@0.1.19","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-DDBCljanHs2083mnDCcFjAr0aPa6eJkeUqlJG7AK99A3nw4FFTKJCe1sNiypJNeKxNIfTuKX5N+GaSzJy4z8GQ==","shasum":"a1a08c8f46659fe09d000fd06fb6c504fda37cdf","tarball":"https://registry.npmjs.org/@ahkohd/writestead/-/writestead-0.1.19.tgz","fileCount":5,"unpackedSize":14147,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ahkohd%2fwritestead@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID3dxnDYMIZpVpx4GC/xaC3ZSKI9bkXQ6ZqkLumn0tqjAiEAv88om5aACZPGCyZVPoZgcTqlsrayZFBosgrrFGWzAg4="}]},"_npmUser":{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"},"directories":{},"maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/writestead_0.1.19_1777336485983_0.31925439241895615"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T02:59:13.466Z","modified":"2026-04-28T00:34:46.404Z","0.1.4":"2026-04-24T02:59:13.679Z","0.1.5":"2026-04-24T03:39:09.038Z","0.1.6":"2026-04-24T17:22:35.603Z","0.1.7":"2026-04-24T18:12:07.259Z","0.1.8":"2026-04-24T18:27:29.834Z","0.1.9":"2026-04-24T21:34:34.051Z","0.1.10":"2026-04-25T00:03:51.053Z","0.1.11":"2026-04-25T00:31:17.941Z","0.1.12":"2026-04-25T01:38:51.978Z","0.1.13":"2026-04-25T04:19:21.316Z","0.1.14":"2026-04-25T06:05:54.261Z","0.1.15":"2026-04-25T07:03:36.852Z","0.1.16":"2026-04-25T22:49:57.539Z","0.1.17":"2026-04-26T00:28:20.784Z","0.1.18":"2026-04-28T00:13:29.680Z","0.1.19":"2026-04-28T00:34:46.130Z"},"bugs":{"url":"https://github.com/ahkohd/writestead/issues"},"license":"MIT","homepage":"https://github.com/ahkohd/writestead#readme","repository":{"type":"git","url":"git+https://github.com/ahkohd/writestead.git"},"description":"LLM Wiki","maintainers":[{"name":"ahkohd","email":"victor.olorunbunmi@gmail.com"}],"readme":"# writestead\n\n[![CI](https://github.com/ahkohd/writestead/actions/workflows/ci.yml/badge.svg)](https://github.com/ahkohd/writestead/actions/workflows/ci.yml) [![npm version](https://img.shields.io/npm/v/@ahkohd/writestead.svg)](https://www.npmjs.com/package/@ahkohd/writestead) [![Crates.io](https://img.shields.io/crates/v/writestead.svg)](https://crates.io/crates/writestead) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nLLM Wiki\n\nInspired by [Karpathy's LLM OS wiki concept](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) — persistent knowledge that compounds over time. Humans curate sources, agents maintain the structure.\n\nWritestead gives you:\n- **Structured wiki**: frontmatter, wikilinks, page types (source, entity, concept, analysis)\n- **Raw ingest**: add local files or URLs, extract text from PDF/DOCX/PPTX/images via liteparse\n- **MCP server**: expose wiki tools to any MCP client\n- **Obsidian sync**: headless Obsidian Sync via `ob` CLI\n- **Lint**: detect orphans, broken links, stale logs, duplicate titles, missing frontmatter\n\n## Install\n\n```bash\n# npm (macOS, Linux, WSL)\nnpm i -g @ahkohd/writestead\n\n# homebrew (macOS, Linux)\nbrew install ahkohd/writestead/writestead\n\n# cargo\ncargo install writestead --locked --force\n\n# verify\nwritestead --version\n```\n\nOptional tools (install any you need, `writestead doctor` checks availability):\n- [`lit`](https://github.com/run-llama/liteparse) — PDF/DOCX/PPTX/image text extraction\n- [`poppler-utils`](https://poppler.freedesktop.org/) — PDF utilities\n- [`rg`](https://github.com/BurntSushi/ripgrep), [`fd`](https://github.com/sharkdp/fd) — faster search/listing\n- [`ob`](https://obsidian.md/help/sync/headless) — headless Obsidian Sync\n\n## Quick start\n\n### New vault (no existing Obsidian Sync)\n\n```bash\nwritestead init --vault-path ~/Documents/writestead --sync-backend obsidian\nwritestead doctor\nwritestead start\n```\n\n### Existing Obsidian Sync vault\n\nIf you already have a vault syncing via Obsidian Sync, set up sync **before** init so existing files are preserved:\n\n```bash\n# 1. login and link to remote vault\nob login\nob sync-list-remote\nob sync-setup --path ~/Documents/writestead --vault <vault-id>\nob sync --path ~/Documents/writestead\n\n# 2. init without --force (skips files that already exist)\nwritestead init --vault-path ~/Documents/writestead --sync-backend obsidian\n\n# 3. start\nwritestead doctor\nwritestead start\n```\n\n### Docker\n\n```bash\ndocker run -d \\\n  -v writestead-vault:/vault \\\n  --name writestead \\\n  ghcr.io/ahkohd/writestead:latest\n\n# setup sync inside container\ndocker exec -it writestead bash\nob login\nob sync-list-remote\nob sync-setup --path /vault --vault <vault-id>\nob sync --path /vault\nwritestead init --vault-path /vault --sync-backend obsidian\nexit\n\n# restart to pick up synced vault\ndocker restart writestead\n```\n\n## Commands\n\n- `writestead init` — create vault structure and config\n- `writestead start` / `stop` / `status` — daemon lifecycle (`start --foreground` for attached mode, `status --json` for machine output)\n- `writestead doctor` — health checks for vault, sync, extractors, accelerators (`--json` for structured output)\n- `writestead sync` — run sync backend\n- `writestead help-wiki` — print workflow guide and conventions\n\n### Wiki\n\n- `writestead read <path>` — read wiki page with line pagination\n- `writestead search <query>` — case-insensitive content search\n- `writestead edit <path> --old-text ... --new-text ... --log-action ... --log-description ...` — exact-match replacement\n- `writestead write <path> --content-file ... --log-action ... --log-description ...` — write full page\n- `writestead list` — list wiki pages with pagination\n- `writestead lint` — run structural lint checks\n- `writestead lint --fix` — apply safe lint fixes\n- `writestead lint --fix --dry-run` — preview safe lint fixes\n- `writestead index` — read wiki/index.md\n\n### Raw\n\n- `writestead raw add <source>` — add local file or URL to raw/ (`--name`, `--force`)\n- `writestead raw list` — list raw source files with pagination\n- `writestead raw read <path>` — extract text from raw source with pagination\n\n### Config\n\n- `writestead config path` / `show` / `get <key>` / `set <key> <value>` / `unset <key>`\n\n## HTTP API\n\nThe CLI talks to a local HTTP daemon (default: `http://127.0.0.1:8765`).\n\nEndpoints:\n- `GET /health`\n- `GET /metrics` (Prometheus format)\n- `POST /mcp` (MCP over HTTP JSON-RPC)\n- `GET /mcp` (returns 405)\n- `DELETE /mcp` (terminate MCP session)\n\nConfigure bind address with config keys (`host`, `port`) or env (`WRITESTEAD_HOST`, `WRITESTEAD_PORT`).\n\n## MCP over HTTP\n\n`POST /mcp` exposes the writestead MCP server. Tools are discoverable via `tools/list`:\n\n| Tool | Description |\n|---|---|\n| `wiki_read` | Read wiki page (1-indexed line pagination) |\n| `wiki_search` | Case-insensitive content search |\n| `wiki_edit` | Exact oldText/newText replacement with log |\n| `wiki_write` | Write full page with log |\n| `wiki_list` | List pages (0-indexed item pagination) |\n| `wiki_lint` | Validate vault structure, frontmatter, links, orphans, and stale logs |\n| `wiki_index` | Read wiki/index.md |\n| `wiki_sync` | Run sync backend |\n| `wiki_help` | Print workflow guide |\n| `raw_list` | List raw source files (0-indexed pagination) |\n| `raw_read` | Extract text from raw source (1-indexed line pagination) |\n| `raw_upload` | Add source via url, path, or base64 content |\n\nMCP clients receive workflow instructions automatically on `initialize`.\n\n## MCP client setup\n\nLocal no-auth:\n\n```yaml\nwritestead:\n  url: http://127.0.0.1:8765/mcp\n  tools:\n    resources: false\n    prompts: false\n```\n\nBearer auth:\n\n```yaml\nwritestead:\n  url: http://127.0.0.1:8765/mcp\n  headers:\n    Authorization: Bearer ${WRITESTEAD_BEARER_TOKEN}\n  tools:\n    resources: false\n    prompts: false\n```\n\n## Configuration\n\n### Config file\n\nDefault path: `~/.config/writestead/config.json` (or `$XDG_CONFIG_HOME/writestead/config.json`).\n\n```json\n{\n  \"name\": \"writestead\",\n  \"vault_path\": \"~/Documents/writestead\",\n  \"host\": \"127.0.0.1\",\n  \"port\": 8765,\n  \"sync\": { \"backend\": \"obsidian\" },\n  \"mcp\": { \"auth\": { \"mode\": \"none\" }, \"session_ttl_seconds\": 3600 },\n  \"search\": { \"backend\": \"auto\" },\n  \"raw\": { \"upload_max_bytes\": 52428800, \"url_timeout_seconds\": 30 }\n}\n```\n\n### Config keys\n\n- `name` — vault display name\n- `vault_path` — path to vault root\n- `host` — daemon bind address (default: `127.0.0.1`)\n- `port` — daemon port (default: `8765`)\n- `sync.backend` — `obsidian` | `none` (default: `obsidian`)\n- `mcp.auth.mode` — `none` | `bearer` (default: `none`)\n- `mcp.session_ttl_seconds` — session expiry (default: `3600`)\n- `search.backend` — `auto` | `builtin` | `rg-fd` (default: `auto`)\n- `raw.upload_max_bytes` — upload size cap (default: `52428800`)\n- `raw.url_timeout_seconds` — URL download timeout (default: `30`)\n- `raw.pdf_liteparse_max_pages` — max PDF pages routed to liteparse (default: `30`)\n- `raw.pdf_liteparse_timeout_ms` — liteparse timeout (default: `60000`)\n- `raw.pdf_liteparse_mem_limit_mb` — liteparse memory cap (default: `4096`)\n\n### Environment variables\n\n- `WRITESTEAD_CONFIG_FILE` — config file path override\n- `WRITESTEAD_RUNTIME_DIR` — runtime directory override\n- `WRITESTEAD_PID_FILE` — PID file path override\n- `WRITESTEAD_LOG_FILE` — log file path override\n- `WRITESTEAD_BEARER_TOKEN` — bearer token (required when `mcp.auth.mode=bearer`)\n- `WRITESTEAD_MCP_AUTH_MODE` — auth mode override\n\n### Bearer auth\n\nToken is env-only. Setting `mcp.auth.bearer_token` in config is blocked by design.\n\n```bash\nwritestead config set mcp.auth.mode bearer\nexport WRITESTEAD_BEARER_TOKEN='your-token'\nwritestead start\n```\n\n## Raw source conventions\n\n- `raw add` detects mode by prefix: `http://` / `https://` downloads, otherwise copies local file\n- `raw read` supports:\n  - `.md` / `.txt` / `.json` / `.yaml` / `.csv` / `.html` / `.xml` / `.rst` / `.tex` / `.log` — direct text read\n  - `.pdf` — `lit parse` or `pdftotext` by size\n  - `.docx` / `.pptx` / `.xlsx` — `lit parse`\n  - images (`.png` / `.jpg` / `.tiff` / `.webp`) — `lit parse` with OCR\n  - unknown types rejected\n- `raw upload` (MCP) accepts exactly one of: `url`, `path` (vault-relative), or `content` (base64)\n- `raw/assets/` is excluded from listing and reading (deferred)\n- PDF page windows: `writestead raw read manual.pdf --page-start 1 --page-end 20`\n\n## Search acceleration\n\nWhen `search.backend=auto` (default), writestead uses `rg` and `fd` if found in PATH, falling back to built-in search. Set `search.backend=rg-fd` to require them.\n\n```bash\n# install (arch)\npacman -S ripgrep fd\n\n# install (macOS)\nbrew install ripgrep fd\n\n# verify\nwritestead doctor\n```\n\n## Pagination\n\n- `wiki_read` / `raw_read` / `writestead read`: offset is **1-indexed** (line number)\n- `wiki_list` / `raw_list` / `writestead list`: offset is **0-indexed** (item index)\n- All paginated responses include: `offset`, `limit`, `total` (or `total_lines`), `has_more`\n\n## Sync backend\n\n- `obsidian` (default): runs `ob sync --path <vault_path>` — headless Obsidian Sync\n- `none`: explicit no-op\n\n## Observability\n\n`GET /metrics` exports Prometheus counters and gauges:\n\n```\nwritestead_uptime_seconds\nwritestead_mcp_sessions_active\nwritestead_mcp_requests_total\nwritestead_mcp_tool_calls_total\nwritestead_mcp_tool_calls_by_tool_total{tool=\"...\"}\nwritestead_mcp_tool_errors_total\nwritestead_mcp_tool_errors_by_tool_total{tool=\"...\"}\nwritestead_raw_uploads_total\nwritestead_raw_upload_bytes_total\nwritestead_raw_reads_total\nwritestead_raw_reads_by_format_total{format=\"...\"}\nwritestead_sync_runs_total{trigger=\"...\"}\nwritestead_sync_errors_total{trigger=\"...\"}\nwritestead_sync_duration_seconds_sum\nwritestead_sync_duration_seconds_count\n```\n\nAlert suggestions:\n- Tool error spike: `increase(writestead_mcp_tool_errors_total[5m]) > 10`\n- Per-tool regressions: watch `writestead_mcp_tool_errors_by_tool_total{tool=...}`\n- Upload pressure: sustained growth in `writestead_raw_upload_bytes_total`\n\n## Troubleshooting\n\n- Run `writestead doctor` first\n- If daemon won't start, check `writestead status` and `~/.config/writestead/writestead.log`\n- If MCP auth fails, verify `WRITESTEAD_BEARER_TOKEN` is set and `mcp.auth.mode=bearer`\n- If raw reads fail for PDF/DOCX, install `lit` (`npm i -g @llamaindex/liteparse`)\n- For large PDFs, install `poppler-utils`\n- If search is slow on large vaults, install `rg` and `fd`\n","readmeFilename":"README.md"}