- Obsidian Sync propose désormais un client headless permettant la synchronisation en ligne de commande sans application de bureau
- Il permet d’effectuer la synchronisation de vaults dans des environnements non interactifs comme les pipelines CI, les serveurs et les scripts d’automatisation
- La commande
ob sync permet d’exécuter une synchronisation ponctuelle ou continue, avec prise en charge de l’authentification automatisée via la variable d’environnement OBSIDIAN_AUTH_TOKEN
- Il inclut un ensemble de commandes détaillées pour créer un vault distant, configurer une liaison locale, vérifier l’état ou modifier les paramètres
- Sous Windows et macOS, un module natif conserve la date de création des fichiers (birthtime) afin de renforcer l’intégrité des données
Aperçu
- Le Headless Client d’Obsidian Sync est un outil qui permet de synchroniser des vaults sans application de bureau
- Utile dans les environnements CI, les agents d’automatisation et les serveurs
- Il permet de récupérer les dernières modifications ou de maintenir les fichiers continuellement à jour
- Sur un même appareil, il ne faut pas utiliser simultanément Sync de bureau et Headless Sync, car il existe un risque de conflit de données
- L’installation s’effectue avec la commande
npm install -g obsidian-headless
Utilisation de base
- Connexion :
ob login
- Afficher la liste des vaults distants :
ob sync-list-remote
- Configurer un vault local :
ob sync-setup --vault "My Vault"
- Synchronisation ponctuelle :
ob sync
- Synchronisation continue :
ob sync --continuous
- Dans un environnement non interactif, il est possible d’automatiser l’authentification en définissant la variable d’environnement
OBSIDIAN_AUTH_TOKEN
Commandes principales
ob sync-list-remote : affiche la liste de tous les vaults distants du compte, y compris les vaults partagés
ob sync-list-local : affiche les vaults configurés en local et leurs chemins
ob sync-create-remote : crée un nouveau vault distant
- Options :
--name, --encryption (standard ou e2ee), --password, --region
ob sync-setup : configure la liaison entre un vault local et un vault distant
- Options :
--vault, --path, --password, --device-name, --config-dir
ob sync : lance la synchronisation du vault configuré
- L’option
--continuous permet de surveiller les modifications et d’assurer une synchronisation continue
ob sync-config : affiche ou modifie les paramètres de synchronisation du vault
- Permet de définir la stratégie de conflit (
merge/conflict), les types de fichiers, les catégories de paramètres à synchroniser, les dossiers exclus, etc.
ob sync-status : affiche l’état de synchronisation et les paramètres du vault
ob sync-unlink : dissocie le vault de la synchronisation et supprime les identifiants enregistrés
Module natif
- Inclut un addon natif pour Windows et macOS qui définit la date de création des fichiers (birthtime)
- Lorsque des fichiers sont téléchargés depuis le serveur, leur date de création d’origine est conservée
- Il cible la version 3 de N-API et maintient la compatibilité ABI entre les versions de Node.js
- Sous Linux,
birthtime n’est pas pris en charge, donc l’addon n’est pas inclus, mais la synchronisation fonctionne normalement
- Cibles pour les binaires précompilés :
win32-x64, win32-arm64, win32-ia32, darwin-x64, darwin-arm64
1 commentaires
Avis sur Hacker News
Voir la documentation officielle
Ces derniers temps, c’est vraiment amusant d’utiliser Obsidian avec une CLI d’IA. Même sans plugin, comme il s’agit simplement d’une structure de répertoires Markdown, on peut l’exploiter immédiatement
Je me demande si tout le monde utilise Obsidian Sync payant, ou bien des alternatives comme SyncThing
Il demande aussi si l’installation de obsidian-headless fournit également la CLI, ou si c’est uniquement dédié à la synchronisation
Je vais maintenant envisager Obsidian Sync officiel
Par exemple, si deux modifications ont lieu en même temps et que l’une écrase l’autre, j’aimerais savoir ce qu’il advient de mes changements
Il aimerait mettre à jour automatiquement certaines notes en fonction de changements d’état ou de tâches cron, tout en évitant l’accès à l’ensemble du vault
Le produit lui plaît tellement qu’il a aussi acheté VIP Catalyst
Par exemple, s’il n’y a qu’un readme.md dans un projet, je n’ai pas envie de créer un vault séparé et un fichier de configuration juste pour l’ouvrir
Mais ce n’est pas simple, car beaucoup de fonctionnalités d’Obsidian dépendent de paramètres au niveau du vault
Par exemple : quel thème utiliser, quels plugins activer, comment gérer l’autocomplétion des liens [[...]], etc.
Cela semble vraiment utile pour l’automatisation côté serveur ou les tâches basées sur le RAG
À ce sujet, j’ai écrit un billet de blog expérimental → utf9k.net/blog/obsidian-headless
Ce workflow n’est pas parfait, mais j’ai l’impression qu’il réduit les frictions entre l’écriture et la publication immédiate
Avant, j’utilisais Git ou une combinaison de plusieurs plugins Obsidian, mais c’était toujours complexe
J’ai l’impression de l’avoir complètement mal utilisé
J’aimerais modifier un document en conversant avec lui, comme avec ChatGPT, mais je n’ai encore rien trouvé de vraiment adapté
Je me demande aussi s’il est possible de faire du tool calling pour modifier seulement certaines parties, sans réécrire tout le document
Avec cette fonctionnalité, je pourrais synchroniser depuis le téléphone et ouvrir les documents sur desktop avec Neovim
Si ce sont juste des fichiers Markdown, pourquoi une CLI est-elle nécessaire, et comment une IA manipule-t-elle un vault via la CLI ?
Cela fonctionne déjà plutôt bien avec des compétences personnalisées, mais cette fonctionnalité devrait rendre le workflow plus fluide
J’ai aussi créé un outil CLI appelé obsidian-semantic-search pour faire de l’indexation d’embeddings LanceDB et de la recherche sémantique
Cela permet de mieux créer des liens internes entre les notes