- Obsidian Sync がデスクトップアプリなしでも コマンドライン環境で同期 できる ヘッドレスクライアント を提供
- CI パイプライン、サーバー、自動化スクリプトなどの 非対話型環境 で vault の同期 を実行可能
ob sync コマンドで 単発または継続的な同期 を実行し、OBSIDIAN_AUTH_TOKEN 環境変数で 自動認証 をサポート
- リモート vault の作成、ローカル接続設定、状態確認、設定変更などの 詳細なコマンドセット を含む
- Windows と macOS では ファイル作成時刻 (birthtime) を維持する ネイティブモジュール を提供し、データ整合性を強化
概要
- Obsidian Sync の Headless Client は、デスクトップアプリなしで vault を同期できるツール
- CI、自動化エージェント、サーバー環境などで有用
- 最新の変更を取得したり、ファイルを継続的に最新状態へ保ったりできる
- 1 台のデバイスでは デスクトップ Sync と Headless Sync を同時に使用しないこと。データ衝突のリスクがある
- インストールは
npm install -g obsidian-headless コマンドで実行
基本的な使い方
- ログイン:
ob login
- リモート vault 一覧を確認:
ob sync-list-remote
- ローカル vault を設定:
ob sync-setup --vault "My Vault"
- 単発同期:
ob sync
- 継続同期:
ob sync --continuous
- 非対話型環境では
OBSIDIAN_AUTH_TOKEN 環境変数を設定して認証を自動化可能
主なコマンド
ob sync-list-remote: アカウント内のすべてのリモート vault 一覧を表示。共有 vault を含む
ob sync-list-local: ローカルに設定された vault とパスを表示
ob sync-create-remote: 新しいリモート vault を作成
- オプション:
--name, --encryption(standard または e2ee), --password, --region
ob sync-setup: ローカルとリモート vault の接続を設定
- オプション:
--vault, --path, --password, --device-name, --config-dir
ob sync: 設定済み vault の同期を実行
--continuous オプションで変更監視と継続同期をサポート
ob sync-config: vault の同期設定を参照または変更
- 競合戦略 (
merge/conflict)、ファイルタイプ、同期する設定カテゴリ、除外フォルダーなどを指定可能
ob sync-status: vault の同期状態と設定を表示
ob sync-unlink: vault を同期から切り離し、保存された認証情報を削除
ネイティブモジュール
- Windows と macOS 向けに ファイル作成時刻 (birthtime) を設定する ネイティブアドオン を同梱
- サーバーでファイルをダウンロードする際に元の作成時刻を維持
- N-API バージョン 3 を対象とし、Node.js バージョン間の ABI 互換性を維持
- Linux では birthtime がサポートされないためアドオンは含まれないが、同期は正常に動作
- 事前ビルド済みバイナリの対象:
win32-x64, win32-arm64, win32-ia32, darwin-x64, darwin-arm64
1件のコメント
Hacker Newsのコメント
公式ドキュメント を参照
最近、ObsidianをAI CLIと一緒に使うのが本当に楽しい。プラグインなしでも、単なるMarkdownディレクトリ構造なのでそのまま活用できる
みんな有料のObsidian Syncを使っているのか、それともSyncThingのような代替手段を使っているのか気になる
また、obsidian-headlessをインストールしたときにCLIも一緒に提供されるのか、それとも単なる同期専用なのかも気になっている
これで公式のObsidian Syncを検討してみる予定だ
たとえば同時に編集して一方が上書きした場合、自分の変更がどうなるのか知りたい
状態変化やcronジョブで特定のノートを自動更新したいが、ボルト全体へのアクセスは避けたい
製品が気に入ってVIP Catalystも購入した
たとえばプロジェクトにreadme.mdが1つあるだけなのに、それを開くために別のvaultと設定ファイルを作りたくない
ただし、Obsidianの多くの機能はvault単位の設定に依存しているため単純ではない
たとえばどのテーマを使うか、どのプラグインを有効にするか、[[リンク]] の自動補完をどう扱うかなど、考慮すべきことが多い
サーバーサイドの自動化やRAGベースの作業に本当に役立ちそうだ
関連して自分が書いた実験的なブログ記事がある → utf9k.net/blog/obsidian-headless
このワークフローは完璧ではないが、文章を書いてすぐ公開するまでの摩擦が減った感覚がある
以前はGitや複数のObsidianプラグインを組み合わせていたが、いつも複雑だった
完全に間違った使い方をしていたようだ
ChatGPTのように文書と対話しながら修正したいが、まだちょうどいいものが見つかっていない
文書全体を書き直さず、一部だけ修正するtool callingが可能なのかも疑問だ
この機能があれば、スマホで同期してデスクトップではNeovimで文書を開けそうだ
単なるMarkdownファイルならなぜCLIが必要なのか、そしてAIがCLIを通じてボルトをどう扱うのか気になる
すでにカスタムスキルでかなりうまく動いているが、今回の機能でワークフローがさらに滑らかになりそうだ
また、obsidian-semantic-searchというCLIツールを作って、LanceDBの埋め込みインデックス化と意味ベースの検索を実装した
これによってノート間の内部接続をよりよく作れる