Obsidian Sync가 이제 헤드리스 클라이언트를 지원
(help.obsidian.md)- Obsidian Sync가 데스크톱 앱 없이도 명령줄 환경에서 동기화할 수 있는 헤드리스 클라이언트를 제공
- CI 파이프라인, 서버, 자동화 스크립트 등 비대화형 환경에서 vault 동기화를 수행 가능
-
ob sync명령으로 단발성 또는 지속적 동기화를 실행하며,OBSIDIAN_AUTH_TOKEN환경 변수로 자동 인증 지원 - 원격 vault 생성, 로컬 연결 설정, 상태 확인, 설정 변경 등 세부 명령어 세트를 포함
- Windows와 macOS에서는 파일 생성 시각(birthtime) 을 유지하는 네이티브 모듈을 제공해 데이터 무결성을 강화
개요
- Obsidian Sync의 Headless Client는 데스크톱 앱 없이 vault를 동기화할 수 있는 도구
- CI, 자동화 에이전트, 서버 환경 등에서 유용
- 최신 변경사항을 가져오거나 파일을 지속적으로 최신 상태로 유지 가능
- 한 기기에서는 데스크톱 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
-
Hacker News 의견들
- Obsidian이 CLI 기능을 새로 추가했음
공식 문서 참고
최근 Obsidian을 AI CLI와 함께 쓰는 게 정말 재미있음. 플러그인 없이도 단순히 마크다운 디렉터리 구조라서 바로 활용 가능함- iCloud로 Obsidian을 동기화해왔는데, iCloud 파일 컨테이너 접근 시 전체 디스크 권한을 요구해서 불편했음
다들 유료 Obsidian Sync를 쓰는지, 아니면 SyncThing 같은 대안을 쓰는지 궁금함 - CLI가 다시 주목받는 게 반가움
- 아직 CLI에서 노트를 직접 볼 수는 없지만, 검색 기능 같은 일부 동작은 트리거할 수 있음
- 이 기능 정말 유용하게 쓸 수 있을 것 같음, 고마움
- iCloud로 Obsidian을 동기화해왔는데, iCloud 파일 컨테이너 접근 시 전체 디스크 권한을 요구해서 불편했음
- 내가 이 프로젝트에 직접 참여했음. 궁금한 점 있으면 답변해보겠음
- Obsidian을 만들어줘서 고맙다는 인사와 함께, headless sync client를 Docker나 Podman에서 쓸 수 있도록 패키징할 계획이 있는지 물어봄
또한 obsidian-headless 설치 시 CLI도 함께 제공되는지, 아니면 단순히 동기화 전용인지 궁금함 - 회사에서 CLI 기반 동기화가 없다고 얘기하던 참이었는데, 공식 기능이 생겨서 반가움
이제는 공식 Obsidian Sync를 검토해볼 예정임 - 파일 시스템에서 동기화 충돌이 발생하면 어떻게 처리되는지 궁금함
예를 들어, 동시에 수정했을 때 한쪽이 덮어쓰면 내 변경은 어떻게 되는지 알고 싶음 - 특정 폴더나 노트만 접근 가능한 scoped token 권한을 지원할 계획이 있는지 물어봄
상태 변화나 크론잡으로 특정 노트를 자동 업데이트하고 싶지만, 전체 볼트 접근은 피하고 싶음
제품이 좋아서 VIP Catalyst도 구매했음 - 여러 명이 함께 파일을 수정하고 동기화하는 팀 협업용 설정에 대한 가이드나 시작점을 알고 싶음
- Obsidian을 만들어줘서 고맙다는 인사와 함께, headless sync client를 Docker나 Podman에서 쓸 수 있도록 패키징할 계획이 있는지 물어봄
- 단일 마크다운 파일만 편집할 수 있으면 좋겠음
예를 들어 프로젝트에 readme.md 하나만 있는데, 그걸 열기 위해 별도의 vault와 설정 파일을 만들고 싶지 않음- 그 기능은 언젠가 추가할 예정임
다만 Obsidian의 많은 기능이 vault 단위 설정에 의존하기 때문에 단순하지 않음
예를 들어 어떤 테마를 쓸지, 어떤 플러그인을 활성화할지, [[링크]] 자동완성은 어떻게 처리할지 등 고려할 게 많음
- 그 기능은 언젠가 추가할 예정임
- 이번 기능은 내가 가장 원하던 Obsidian 기능이었음
서버 사이드 자동화나 RAG 기반 작업에 정말 유용할 것 같음 - 어제 headless client를 테스트하다 버그를 발견해 보고했는데, 오늘 바로 수정된 걸 봄
관련해서 내가 작성한 실험적 블로그 글이 있음 → utf9k.net/blog/obsidian-headless
이 워크플로우는 완벽하진 않지만, 글을 쓰고 바로 퍼블리시하기까지의 마찰이 줄어든 느낌임
예전엔 Git이나 여러 Obsidian 플러그인을 조합했지만 항상 복잡했음 - 그냥 Nextcloud를 로컬 마크다운 폴더처럼 쓰면 되는 줄 알았는데, 그게 아니었음
완전히 잘못 쓰고 있었던 것 같음 - 혹시 모바일에서 AI 편집을 지원하는 Obsidian 플러그인 추천이 있는지 궁금함
ChatGPT처럼 문서와 대화하며 수정하고 싶은데, 아직 적당한 걸 못 찾았음
문서 전체를 다시 쓰지 않고 부분 수정만 하는 tool calling이 가능한지도 의문임- 여러 플러그인을 시도해봤지만 결국 Claude Code를 원격 제어 방식으로 쓰는 게 가장 나았음
- 데스크톱에서는 Obsidian을 안 쓰지만, 폰에서는 쓰고 있음
이 기능이 있으면 폰에서 동기화하고 데스크톱에서는 Neovim으로 문서를 열 수 있을 것 같음 - 1년 넘게 “Obsidian CLI”를 매달 검색해왔는데, 드디어 나와서 정말 반가움
- 나도 Obsidian을 Claude나 Codex와 함께 쓰고 있는데, CLI가 어떤 추가 가치를 주는지 잘 모르겠음
그냥 마크다운 파일이라면 CLI가 왜 필요한지, 그리고 AI가 CLI를 통해 볼트를 어떻게 다루는지 궁금함
- 나도 Obsidian을 Claude나 Codex와 함께 쓰고 있는데, CLI가 어떤 추가 가치를 주는지 잘 모르겠음
- 나는 Obsidian을 Claude agent와 함께 써서 연구 자료나 일일 로그를 동기화함
이미 커스텀 스킬로 꽤 잘 작동하지만, 이번 기능이 워크플로우를 더 매끄럽게 만들 것 같음
또 obsidian-semantic-search라는 CLI 도구를 만들어 LanceDB 임베딩 인덱싱과 의미 기반 검색을 구현했음
이걸로 노트 간 내부 연결을 더 잘 만들 수 있음- Claude Code와의 세부 설정을 좀 더 공유해줄 수 있는지 궁금함
- 이 방식이 토큰 사용량이나 쿼터에 어떤 영향을 주는지도 알고 싶음