obsidian-headless について
Obsidian Headlessは、デスクトップアプリを使わずにObsidian SyncとObsidian Publishを実行するコマンドラインツールです。サーバー、CI、サンドボックスでの利用を想定し、保管庫の同期やサイト公開を操作できます。
主な機能
- 01コマンドラインからObsidian Syncを実行
- 02コマンドラインからObsidian Publishを実行
- 03同期モードと競合処理の設定
- 04保管庫とサイトの設定管理
- 05機械可読なJSON出力
活用シーン
- 01サーバー上で保管庫を同期
- 02CIジョブからノートを公開
- 03ドライランで公開内容の変更を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ obsidianmd/ obsidian-skills --skill obsidian-headlessインストール後、Claude Code で/obsidian-headlessを入力して読み込まれたか確認します。
README(原文)English
プロジェクトの README よりこの README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。
Obsidian Headless
Use Obsidian Headless (ob) to run Obsidian Sync and Obsidian Publish from the command line. It doesn't need the desktop app, so it works on servers, in CI, and in sandboxes. It's in open beta. Docs: https://help.obsidian.md/headless
ob only syncs and publishes files. To read or change notes without the app, edit the files directly and follow the obsidian-markdown skill. To control a running desktop app, use the obsidian-cli skill.
Before using ob
Check availability with ob --help. If it is missing, explain that Obsidian Headless requires Node.js 22 or later and offer installation with npm install -g obsidian-headless. Run ob <command> --help for a command's options.
Sync and Publish each need an active subscription on the user's account.
Most commands accept --json for machine-readable output.
Log in
ob login prints the account when already logged in. Otherwise it prompts for email, password, and a 2FA code, so ask the user to run it in their own terminal. Don't ask for their password or pass it with --password. ob logout clears the stored credentials.
Vault paths
Commands act on the vault in the current directory, or the one given with --path. Pass --path so the target is explicit. Before a command that changes remote state, confirm the vault, site, and path from list or status output.
Sync
Don't use the desktop app's Sync and Headless Sync for the same vault on the same device, because they cause conflicts. Ask the user to back up the vault folder before the first sync.
ob sync-list-remote # remote vaults, including shared ones
ob sync-list-local # vaults set up on this machine
ob sync-setup --vault "Research" --path ~/vaults/research
ob sync --path ~/vaults/research # sync once
ob sync --path ~/vaults/research --continuous # keep syncing as files change
ob sync-status --path ~/vaults/research
ob sync-unlink --path ~/vaults/research # disconnect and remove stored credentials
--vault takes a remote vault's name or ID. For an end-to-end encrypted vault, sync-setup prompts for the encryption password, so let the user enter it. Set --device-name to label this machine in version history.
--continuous runs until stopped, so start it in the background or as a service.
ob sync-create-remote --name "Research" creates a remote vault. Add --encryption e2ee for end-to-end encryption or --encryption standard for managed encryption.
Sync settings
ob sync-config --path <vault> prints the vault's settings. Change them with:
--mode bidirectional|pull-only|mirror-remote.pull-onlyignores local changes andmirror-remotereverts them, so confirm before setting either.--conflict-strategy merge|conflict--excluded-folders "Archive,Templates"--file-types image,audio,video,pdf,unsupportedfor the attachment types to sync.--configsfor the settings categories to sync, e.g.app,appearance,core-plugin.--config-dirwhen the vault's configuration folder isn't.obsidian.
An empty string clears a list option, e.g. --excluded-folders "".
Publish
ob publish-list-sites
ob publish-setup --site my-notes --path ~/vaults/research
ob publish --path ~/vaults/research --dry-run
ob publish --path ~/vaults/research --yes
ob publish includes only notes with publish: true in their properties. --all includes every file, so use it only when the user asks. Run --dry-run first and show the user the changes. Without --yes, ob publish waits for confirmation, so pass --yes once the user approves or for an unattended job they set up.
ob publish-create-site --slug my-notes creates a site at publish.obsidian.md/my-notes.
Run these with no options to print the current settings:
ob publish-configsets folders to include or exclude with--includesand--excludes.ob publish-site-optionssets the site name, home page, navigation, theme, and other display options. Runob publish-site-options --helpfor the full list.
ob publish-unlink disconnects the vault from its site.