- Obsidian Sync cung cấp client headless cho phép đồng bộ trong môi trường dòng lệnh mà không cần ứng dụng desktop
- Có thể thực hiện đồng bộ vault trong các môi trường không tương tác như pipeline CI, máy chủ và script tự động hóa
- Chạy đồng bộ một lần hoặc liên tục bằng lệnh
ob sync, đồng thời hỗ trợ xác thực tự động qua biến môi trường OBSIDIAN_AUTH_TOKEN
- Bao gồm bộ lệnh chi tiết như tạo vault từ xa, thiết lập liên kết cục bộ, kiểm tra trạng thái và thay đổi cấu hình
- Trên Windows và macOS, cung cấp module native giúp giữ nguyên thời điểm tạo tệp (birthtime) để tăng cường tính toàn vẹn dữ liệu
Tổng quan
- Headless Client của Obsidian Sync là công cụ cho phép đồng bộ vault mà không cần ứng dụng desktop
- Hữu ích trong các môi trường như CI, agent tự động hóa và máy chủ
- Có thể lấy về các thay đổi mới nhất hoặc giữ tệp luôn được cập nhật liên tục
- Trên một thiết bị, không nên dùng đồng thời Desktop Sync và Headless Sync, vì có nguy cơ xung đột dữ liệu
- Cài đặt bằng lệnh
npm install -g obsidian-headless
Cách dùng cơ bản
- Đăng nhập:
ob login
- Xem danh sách vault từ xa:
ob sync-list-remote
- Thiết lập vault cục bộ:
ob sync-setup --vault "My Vault"
- Đồng bộ một lần:
ob sync
- Đồng bộ liên tục:
ob sync --continuous
- Trong môi trường không tương tác, có thể tự động hóa xác thực bằng cách thiết lập biến môi trường
OBSIDIAN_AUTH_TOKEN
Các lệnh chính
ob sync-list-remote: Hiển thị danh sách tất cả vault từ xa trong tài khoản, bao gồm cả vault được chia sẻ
ob sync-list-local: Hiển thị các vault đã được thiết lập cục bộ và đường dẫn của chúng
ob sync-create-remote: Tạo vault từ xa mới
- Tùy chọn:
--name, --encryption(standard hoặc e2ee), --password, --region
ob sync-setup: Thiết lập liên kết giữa vault cục bộ và vault từ xa
- Tùy chọn:
--vault, --path, --password, --device-name, --config-dir
ob sync: Chạy đồng bộ cho vault đã được cấu hình
- Hỗ trợ theo dõi thay đổi và đồng bộ liên tục với tùy chọn
--continuous
ob sync-config: Xem hoặc thay đổi cấu hình đồng bộ của vault
- Có thể chỉ định chiến lược xung đột (
merge/conflict), loại tệp, nhóm cài đặt cần đồng bộ, thư mục loại trừ, v.v.
ob sync-status: Hiển thị trạng thái đồng bộ và cấu hình của vault
ob sync-unlink: Gỡ vault khỏi đồng bộ và xóa thông tin xác thực đã lưu
Module native
- Bao gồm addon native cho Windows và macOS để thiết lập thời điểm tạo tệp (birthtime)
- Giữ nguyên thời điểm tạo gốc khi tải tệp từ máy chủ xuống
- Nhắm tới N-API phiên bản 3, đồng thời duy trì khả năng tương thích ABI giữa các phiên bản Node.js
- Trên Linux, birthtime không được hỗ trợ nên không đi kèm addon, nhưng việc đồng bộ vẫn hoạt động bình thường
- Các mục tiêu binary dựng sẵn:
win32-x64, win32-arm64, win32-ia32, darwin-x64, darwin-arm64
1 bình luận
Ý kiến trên Hacker News
Xem tài liệu chính thức
Gần đây dùng Obsidian cùng AI CLI thực sự rất thú vị. Ngay cả không cần plugin thì cũng có thể dùng ngay vì về cơ bản nó chỉ là cấu trúc thư mục Markdown
Tôi tò mò không biết mọi người có dùng Obsidian Sync trả phí hay các phương án thay thế như SyncThing không
Ngoài ra cũng muốn biết khi cài obsidian-headless thì CLI có được cung cấp kèm hay chỉ là công cụ chuyên để đồng bộ
Giờ tôi sẽ cân nhắc dùng Obsidian Sync chính thức
Ví dụ nếu hai bên cùng chỉnh sửa và một bên ghi đè thì thay đổi của tôi sẽ ra sao
Họ muốn tự động cập nhật một số ghi chú nhất định theo thay đổi trạng thái hoặc cron job, nhưng muốn tránh quyền truy cập toàn bộ vault
Vì thích sản phẩm nên họ còn mua cả VIP Catalyst
Ví dụ trong một dự án chỉ có đúng file readme.md, và tôi không muốn phải tạo riêng một vault cùng file cấu hình chỉ để mở nó
Tuy nhiên điều này không đơn giản vì nhiều tính năng của Obsidian phụ thuộc vào cài đặt ở cấp vault
Chẳng hạn như dùng theme nào, kích hoạt plugin nào, hay xử lý tự động hoàn thành [[liên kết]] ra sao
Nó có vẻ sẽ rất hữu ích cho tự động hóa phía máy chủ hoặc các công việc dựa trên RAG
Nhân tiện, tôi có viết một bài blog thử nghiệm về chuyện này → utf9k.net/blog/obsidian-headless
Workflow này chưa hoàn hảo, nhưng cảm giác ma sát đã giảm đi từ lúc viết bài đến lúc xuất bản ngay lập tức
Trước đây tôi từng kết hợp Git hoặc nhiều plugin Obsidian khác nhau, nhưng lúc nào cũng phức tạp
Có vẻ như trước giờ tôi đã dùng hoàn toàn sai cách
Tôi muốn chỉnh sửa bằng cách trò chuyện với tài liệu như ChatGPT, nhưng vẫn chưa tìm được thứ gì thật sự phù hợp
Tôi cũng không rõ liệu có thể tool calling để chỉ sửa từng phần thay vì viết lại toàn bộ tài liệu hay không
Nếu có tính năng này thì tôi có thể đồng bộ trên điện thoại và mở tài liệu bằng Neovim trên desktop
Nếu chỉ là các file Markdown thì vì sao lại cần CLI, và AI sẽ thao tác với vault qua CLI như thế nào
Với custom skill thì hiện tại đã hoạt động khá tốt, nhưng tính năng mới này có vẻ sẽ làm workflow mượt hơn nữa
Ngoài ra tôi còn tạo một công cụ CLI là obsidian-semantic-search để triển khai lập chỉ mục embedding LanceDB và tìm kiếm ngữ nghĩa
Nhờ đó có thể tạo liên kết nội bộ giữa các ghi chú tốt hơn