{"_id":"obsidian-headless","_rev":"11-1f2c939b0b3118d21c3356eb772bd2ee","name":"obsidian-headless","dist-tags":{"latest":"0.0.12"},"versions":{"0.0.1":{"name":"obsidian-headless","version":"0.0.1","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.1","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"26e406b0317d9b01a6c5a651622ee0b8346cc1a7","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.1.tgz","fileCount":8,"integrity":"sha512-n5vrceqWc4BcHtLpYW48MAxjHFaLX3iEyCGbiCgpM7BrKNjsnRzsX1ROAoqoLSs2HZhFzLps9sF1GSP5BWloWg==","signatures":[{"sig":"MEYCIQCkMvtY8+zdmdHLSnF5fP/BESm6DE00kg/FTZ+dX9zwOgIhAPQNL1vBj+jC/fyfeXoKaItvrL+gh4H9fwU7+VPn1eu0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":520191},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"aef67991e580f3caab31f678a8e5b696f36e24f9","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"keytar":"7.9.0","commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.1_1772213290678_0.7544532831382698","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"obsidian-headless","version":"0.0.2","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.2","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"dc9deea243adaa4733509d4ab4d5b34238481246","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.2.tgz","fileCount":8,"integrity":"sha512-WGLePN0QuI0i6jRnuefWOcrTm847ysoEQnNG/g01Fi5TrCzLGdKlHL5J5eRXQ9uaDAEkaR6iHdCPZhizP/KV2g==","signatures":[{"sig":"MEQCIDbHZbpjk4QJElc2t/aRKpFdQLZGRsioUqHmlRjsJ6QtAiAPyvOkB8zNJQklyM6Tnh8q06lz6WQRN4zMpSTh7QH6Kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":520197},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"b8f61e108421d72fcf9951f5a9952a6cbfd93135","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"keytar":"7.9.0","commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.2_1772213553888_0.34047528620496603","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"obsidian-headless","version":"0.0.3","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.3","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"4dfe2ddc9a3e0342a88a60b3ee07934851713164","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.3.tgz","fileCount":8,"integrity":"sha512-5aitpx62F4HR0d5ydJfY8ld1bQ9ChVu/i5GFYSC0ZHOHbtut9sHoy0X8Gg40eOfwAwXfyoUHBjuNhT5VSmVBCw==","signatures":[{"sig":"MEQCIAnj7sAL58JlXbjWiQ48PpC4TBbMsr7ae4Qr+ZvFxlVKAiAv6yT7DpI6bLJ+lK+hjleovhCg6YGY5BotmWRxMR4VIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519797},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"b69b55e9261d05fb7c4c0ec82f6dc2b6af81b359","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.3_1772248591895_0.8507786152595727","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"obsidian-headless","version":"0.0.4","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.4","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"d97618b00a612c8411439617aeaa437fefc4bbd8","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.4.tgz","fileCount":8,"integrity":"sha512-HdJlqLKMa2PEI1HqcUuiKrx6AoIZ5j4ndOl6aooTAoOyd3lxScsiKmfCd02M03H8xBsIgSs+nGtT0UsNKHEcig==","signatures":[{"sig":"MEYCIQDT0GmnJ+OdqZjFiG/6MNahNIlPvST9SGX+5VFXLzanJgIhAJe65nbu+Yo/NKOBG+Dql5GAXw/1B9DtE3LU4p5z/t3+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":520151},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"f27cbf6723fa0a27622b5828cab0e215ca981c00","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.4_1772412950177_0.24782390856763103","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"obsidian-headless","version":"0.0.5","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.5","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"aca637c9097dc7c8dd6867dcb40084508a653d23","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.5.tgz","fileCount":8,"integrity":"sha512-dvPmBd4vAmCGAjNKCbNnt3R/mRbTEeKSSCBBBNP8Gsi2O5VMhdjXr8M5WEc8/wuWHEmgr/SQLY1swiPVCu+WBQ==","signatures":[{"sig":"MEQCIGlsfDIUSNv9T7AuXzehQa1+5pg/d008FCbGg/j1fI6YAiBE0SoPmAh3nVAxU8hapsnxSvnJ0i8kyVcsKzfoRyDLjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":522098},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"46e3d163a54fba39f3b8864045d02a58a3d4161a","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.5_1772554647597_0.8741561369251651","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"obsidian-headless","version":"0.0.6","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.6","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"e7b68a18695678de5c726f8fd81c5ef6e7486c71","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.6.tgz","fileCount":8,"integrity":"sha512-4+eiwzD8Wk+y24KGdLnptzsvqfX97jGzQgZt6L2AFbxj84h/hMhZfEIagmK+6HpVCx4m6hLUJwYjktYHpTlRTg==","signatures":[{"sig":"MEQCIHRA/lCHnG422VN8sQC1ujX93Vs2ExCob0FBE/FFyeUEAiA7FBOjxdOf7vOCRg+TuRhcAQUafgtrtv7rffxOwI+Rfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":522086},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"c48a1c31dfac0c70b05126d28cee3dff960621c1","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.6_1772762624365_0.026314458916974592","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"obsidian-headless","version":"0.0.7","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.7","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"2e6c4639c32c5434f2ef1fafac170deba37074b7","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.7.tgz","fileCount":8,"integrity":"sha512-aVQzCJ3LT+dpjk3+i5JvYv/m6XhNrPGazIQnSNi238t2uy/xTjzBUTZ7FVgNwIZW9P4aFAcHSJejQgh7Vym3BA==","signatures":[{"sig":"MEYCIQCA2PnSbHTLLTO4KKgfbCw3TY3qI4B7/uY9+3o6Ztv6TwIhAJbUdDSLPnXaF4LC6WDRhk1esRUu/tCj5UI60wip03E0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":522097},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"2ba83da51b2f18c73b695c4f30030736c6fa80e1","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.7_1773596719552_0.6380747487770739","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"obsidian-headless","version":"0.0.8","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.8","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"298294766bbb35434d1219eb6c37cb5d0286b39f","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.8.tgz","fileCount":8,"integrity":"sha512-rBl295dIbTxEY4nl3fFue18qFPdU/ASUOLicg+1pa3suBRtJR8lKCoLFkhcg1VApSGujDjgcOiTqAsu5cnq/3w==","signatures":[{"sig":"MEYCIQCxLcNjMNDAR3K/A412JUlkOcao3t6lA8zapRHzZD5pUAIhANZquDtiL9Bt8okcZZ8+jZqWsEbRtFGBHU6xjb5G+3U8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652749},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"4af0db0a5e4f379ffc37155cd6b8c40e07f70b27","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.8_1774017208474_0.38294839369136735","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"obsidian-headless","version":"0.0.10","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.10","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"547975a2f734a38760ecf0506b17b4cb25338d43","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.10.tgz","fileCount":8,"integrity":"sha512-rs90kHkX9uJNPf6fMGQoNRw9KTA+cpkBbPG2Un5iT1IZxdpW1+yaBrONbsc2t5KHpbc+s5G7/krz0VoUn+r5nw==","signatures":[{"sig":"MEYCIQCrVLt9euiJ3DM1P9mZbDPnD4s5soYyq8fGXzfLG98/zwIhAKS9IEOTJsnCrALPkte1oTcBOTG8oqiAk70shTJkOjP1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649956},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"42422908098f4b1a034d5035b411bcbd1e5d1671","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.10_1780243342949_0.07864685097760238","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"obsidian-headless","version":"0.0.11","keywords":["obsidian","sync","vault","markdown","notes"],"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","_id":"obsidian-headless@0.0.11","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"homepage":"https://obsidian.md","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"os":["darwin","linux","win32"],"bin":{"ob":"cli.js"},"cpu":["x64","arm64"],"dist":{"shasum":"5ac99bf4173548580e002efca5ba16a140cb938a","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.11.tgz","fileCount":8,"integrity":"sha512-3dsZaXPltGLkfyp2n/kAkuzYwAshocA3ErktHCHu6hxQCzPofzrsF9fAvTqC+CO82ORgSOmdg/3yqdPxurgJqg==","signatures":[{"sig":"MEYCIQDzoH5aU5edEb9Q/dTUEFm9o3p0SDJ/hsvfmCeEWMf3dQIhAOVINchqnvhXcvIfASr43EQP50rHUOw4SMt33QbO3wSw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649967},"main":"cli.js","engines":{"node":">=22.0.0"},"gitHead":"1f31ded35563237706b2e8662317b3f89ee23397","_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"repository":{"url":"git+https://github.com/obsidianmd/obsidian-headless.git","type":"git"},"_npmVersion":"10.9.4","description":"Headless client for Obsidian services","directories":{},"_nodeVersion":"22.21.1","dependencies":{"commander":"14.0.3","better-sqlite3":"12.6.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/obsidian-headless_0.0.11_1781362378473_0.3954903679893218","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"obsidian-headless","version":"0.0.12","description":"Headless client for Obsidian services","main":"cli.js","bin":{"ob":"cli.js"},"engines":{"node":">=22.0.0"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"keywords":["obsidian","sync","vault","markdown","notes"],"homepage":"https://obsidian.md","repository":{"type":"git","url":"git+https://github.com/obsidianmd/obsidian-headless.git"},"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","dependencies":{"better-sqlite3":"12.6.2","commander":"14.0.3"},"_id":"obsidian-headless@0.0.12","gitHead":"14dafca34bde74c8bdb8fbc2ba98242e794edf11","bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-d/TI1iqCZbkTCfa1zLi6a99MRVmiApvtxgP2JgDRjRAYkHgxvhGtT5aTxSXE6BXXJG4g9xADbrsRQrSqvsl1Rg==","shasum":"1e67fe426c096d03d7f8ad63d4194bb5c38880af","tarball":"https://registry.npmjs.org/obsidian-headless/-/obsidian-headless-0.0.12.tgz","fileCount":8,"unpackedSize":652887,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWw+OSobhX80SlIF/u5qOcYzKAtJjYInUYa5bflrmAogIhALcSVnCMIpo8XY5mZ/MbgmmYihv6BGFmkbZqJPuTGrIV"}]},"_npmUser":{"name":"lishid","email":"lishid@gmail.com"},"directories":{},"maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/obsidian-headless_0.0.12_1781622602465_0.2887800467611994"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-27T17:28:10.549Z","modified":"2026-06-16T15:10:02.772Z","0.0.1":"2026-02-27T17:28:10.919Z","0.0.2":"2026-02-27T17:32:34.177Z","0.0.3":"2026-02-28T03:16:32.079Z","0.0.4":"2026-03-02T00:55:50.355Z","0.0.5":"2026-03-03T16:17:27.779Z","0.0.6":"2026-03-06T02:03:44.599Z","0.0.7":"2026-03-15T17:45:19.729Z","0.0.8":"2026-03-20T14:33:28.693Z","0.0.10":"2026-05-31T16:02:23.167Z","0.0.11":"2026-06-13T14:52:58.768Z","0.0.12":"2026-06-16T15:10:02.642Z"},"bugs":{"url":"https://github.com/obsidianmd/obsidian-headless/issues"},"author":{"name":"Dynalist Inc."},"license":"UNLICENSED","homepage":"https://obsidian.md","keywords":["obsidian","sync","vault","markdown","notes"],"repository":{"type":"git","url":"git+https://github.com/obsidianmd/obsidian-headless.git"},"description":"Headless client for Obsidian services","maintainers":[{"name":"lishid","email":"lishid@gmail.com"}],"readme":"# Obsidian Headless\n\nHeadless client for [Obsidian Sync](https://obsidian.md/sync) and [Obsidian Publish](https://obsidian.md/publish).\nSync and publish your vaults from the command line without the desktop app.\n\nRequires Node.js 22 or later.\n\n## Install\n\n```bash\nnpm install -g obsidian-headless\n```\n\n## Authentication\n\nLogin interactively:\n\n```bash\nob login\n```\n\nIf already logged in, `ob login` displays your account info. To switch accounts, pass `--email` and/or `--password` to log in again.\n\n## Quick start\n\n```bash\n# Login\nob login\n\n# List your remote vaults\nob sync-list-remote\n\n# Setup a vault for syncing\ncd ~/vaults/my-vault\nob sync-setup --vault \"My Vault\"\n\n# Run a one-time sync\nob sync\n\n# Run continuous sync (watches for changes)\nob sync --continuous\n```\n\n## Commands\n\n### `ob login`\n\nLogin to your Obsidian account, or display login status if already logged in.\n\n```\nob login [--email <email>] [--password <password>] [--mfa <code>]\n```\n\nAll options are interactive when omitted — email and password are prompted, and 2FA is requested automatically if enabled on the account.\n\n### `ob logout`\n\nLogout and clear stored credentials.\n\n### `ob sync-list-remote`\n\nList all remote vaults available to your account, including shared vaults.\n\n### `ob sync-list-local`\n\nList locally configured vaults and their paths.\n\n### `ob sync-create-remote`\n\nCreate a new remote vault.\n\n```\nob sync-create-remote --name \"Vault Name\" [--encryption <standard|e2ee>] [--password <password>] [--region <region>]\n```\n\n| Option | Description                                              |\n|---|----------------------------------------------------------|\n| `--name` | Vault name (required)                                    |\n| `--encryption` | `standard` for managed encryption, `e2ee` for end-to-end |\n| `--password` | End-to-end encryption password (prompted if omitted)     |\n| `--region` | Server region (automatic if omitted)                     |\n\n### `ob sync-setup`\n\nSet up sync between a local vault and a remote vault.\n\n```\nob sync-setup --vault <id-or-name> [--path <local-path>] [--password <password>] [--device-name <name>] [--config-dir <name>]\n```\n\n| Option | Description                                                     |\n|---|-----------------------------------------------------------------|\n| `--vault` | Remote vault ID or name (required)                              |\n| `--path` | Local directory (default: current directory)                    |\n| `--password` | E2E encryption password (prompted if omitted)                   |\n| `--device-name` | Device name to identify this client in the sync version history |\n| `--config-dir` | Config directory name (default: `.obsidian`)                    |\n\n### `ob sync`\n\nRun sync for a configured vault.\n\n```\nob sync [--path <local-path>] [--continuous]\n```\n\n| Option | Description |\n|---|---|\n| `--path` | Local vault path (default: current directory) |\n| `--continuous` | Run continuously, watching for changes |\n\n### `ob sync-config`\n\nView or change sync settings for a vault.\n\n```\nob sync-config [--path <local-path>] [options]\n```\n\nRun with no options to display the current configuration.\n\n| Option | Description |\n|---|---|\n| `--path` | Local vault path (default: current directory) |\n| `--mode` | Sync mode: `bidirectional` (default), `pull-only` (only download, ignore local changes), or `mirror-remote` (only download, revert local changes) |\n| `--conflict-strategy` | `merge` or `conflict` |\n| `--file-types` | Attachment types to sync: `image`, `audio`, `video`, `pdf`, `unsupported` (comma-separated, empty to clear) |\n| `--configs` | Config categories to sync: `app`, `appearance`, `appearance-data`, `hotkey`, `core-plugin`, `core-plugin-data`, `community-plugin`, `community-plugin-data` (comma-separated, empty to disable config syncing) |\n| `--excluded-folders` | Folders to exclude (comma-separated, empty to clear) |\n| `--device-name` | Device name to identify this client in the sync version history |\n| `--config-dir` | Config directory name (default: `.obsidian`) |\n\n### `ob sync-status`\n\nShow sync status and configuration for a vault.\n\n```\nob sync-status [--path <local-path>]\n```\n\n### `ob sync-unlink`\n\nDisconnect a vault from sync and remove stored credentials.\n\n```\nob sync-unlink [--path <local-path>]\n```\n\n### `ob publish-list-sites`\n\nList all publish sites available to your account, including shared sites.\n\n### `ob publish-create-site`\n\nCreate a new publish site.\n\n```\nob publish-create-site --slug <slug>\n```\n\n| Option | Description |\n|---|---|\n| `--slug` | Site slug used in the publish URL (required) |\n\n### `ob publish-setup`\n\nConnect a local vault to a publish site.\n\n```\nob publish-setup --site <id-or-slug> [--path <local-path>]\n```\n\n| Option | Description |\n|---|---|\n| `--site` | Site ID or slug (required) |\n| `--path` | Local vault path (default: current directory) |\n\n### `ob publish`\n\nPublish vault changes to a connected site. Scans for changes by comparing local file hashes against the remote site, then uploads new/changed files and removes deleted ones.\n\nFiles are selected for publishing based on: frontmatter `publish: true/false` flag (highest priority), excluded/included folders (configured via `publish-config`), and the `--all` flag for untagged files.\n\n```\nob publish [--path <local-path>] [--dry-run] [--yes] [--all]\n```\n\n| Option | Description |\n|---|---|\n| `--path` | Local vault path (default: current directory) |\n| `--dry-run` | Show changes without publishing |\n| `--yes` | Publish without prompting for confirmation |\n| `--all` | Include files without a publish flag |\n\n### `ob publish-config`\n\nView or change publish settings for a vault.\n\n```\nob publish-config [--path <local-path>] [--includes <folders>] [--excludes <folders>]\n```\n\nRun with no options to display the current configuration.\n\n| Option | Description |\n|---|---|\n| `--path` | Local vault path (default: current directory) |\n| `--includes` | Folders to include, comma-separated (empty string to clear) |\n| `--excludes` | Folders to exclude, comma-separated (empty string to clear) |\n\n### `ob publish-site-options`\n\nView or update remote site options (appearance, navigation, etc.). Run with no options to display the current settings.\n\n```\nob publish-site-options [--path <local-path>] [options]\n```\n\n| Option | Description |\n|---|---|\n| `--path` | Local vault path (default: current directory) |\n| `--site-name <name>` | Site name |\n| `--index-file <path>` | Home page file path |\n| `--logo <path>` | Logo file path (empty string to clear) |\n| `--default-theme <theme>` | Default theme: `light` or `dark` |\n| `--show-navigation <bool>` | Show navigation sidebar |\n| `--show-graph <bool>` | Show graph view |\n| `--show-outline <bool>` | Show table of contents |\n| `--show-search <bool>` | Show search |\n| `--show-backlinks <bool>` | Show backlinks |\n| `--show-hover-preview <bool>` | Show hover preview |\n| `--show-theme-toggle <bool>` | Show theme toggle |\n| `--readable-line-length <bool>` | Readable line length |\n| `--strict-line-breaks <bool>` | Strict line breaks |\n| `--hide-title <bool>` | Hide inline title |\n| `--sliding-window <bool>` | Sliding window mode |\n| `--nav-order <paths>` | Navigation ordering, comma-separated paths in display order (empty string to clear) |\n| `--nav-hidden <items>` | Navigation hidden items, comma-separated paths (empty string to clear) |\n\n### `ob publish-unlink`\n\nDisconnect a vault from a publish site.\n\n```\nob publish-unlink [--path <local-path>]\n```\n\n## Native modules\n\n### btime\n\nThe `btime` directory contains a prebuilt native N-API addon for setting file creation time (birthtime) on Windows and macOS.\nThis is used when downloading files from the server to preserve their original creation timestamps.\n\nSince it targets N-API version 3, the compiled `.node` binaries are ABI-stable and work across Node.js versions without recompilation.\n\nOn Linux, birthtime is not supported — the addon is not included and sync operates normally without it.\n\nPrebuilt binaries are included for:\n- `win32-x64`\n- `win32-arm64`\n- `win32-ia32`\n- `darwin-x64`\n- `darwin-arm64`\n","readmeFilename":"README.md"}