Skills obsync
Obsidian Sync CLI for syncing vaults on headless Linux servers with full end-to-end encryption.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bpauli/obsync" ~/.claude/skills/openclaw-skills-obsync && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bpauli/obsync" ~/.openclaw/skills/openclaw-skills-obsync && rm -rf "$T"
manifest:
skills/bpauli/obsync/SKILL.mdsource content
obsync
Use
obsync to sync Obsidian vaults on headless Linux servers. Requires an Obsidian Sync subscription and account credentials.
Setup (once)
(enter email, password, and optional MFA code)obsync login- For headless servers:
export OBSYNC_KEYRING_BACKEND=file - Optionally set keyring password:
export OBSYNC_KEYRING_PASSWORD=mysecret - Verify:
obsync list
Output
- Default: human-friendly terminal output with colors and spinners.
- Use
/--json
for JSON output.-j - Use
/--verbose
for debug logging.-v
Common commands
- Log in:
obsync login - List vaults:
obsync list - Pull vault:
obsync pull "My Notes" ~/notes -p "e2e-password" - Pull and save password:
obsync pull "My Notes" ~/notes -p "e2e-password" -s - Push local changes:
obsync push "My Notes" ~/notes -p "e2e-password" - Watch (continuous sync):
obsync watch "My Notes" ~/notes -p "e2e-password" - Install systemd service:
obsync install "My Notes" ~/notes - Check service status:
obsync status "My Notes" - View service logs:
journalctl --user -u obsync@<vault-id>.service -f - Uninstall service:
obsync uninstall "My Notes"
Flags
— E2E encryption password-p, --password
— save E2E password to keyring for future use-s, --save-password
— enable debug logging-v, --verbose
— JSON output to stdout-j, --json
— path to config file (or--config
env var)OBSYNC_CONFIG
— print version and exit--version
Notes
- Requires a valid Obsidian Sync subscription.
- E2E encryption uses AES-256-GCM with scrypt key derivation.
- Pull/push compare files by SHA-256 hash — only changed files are transferred.
- Watch mode uses WebSocket for remote changes and fsnotify for local changes (500ms debounce).
- Large files are handled with 2MB chunked transfers.
- Automatic reconnection with exponential backoff (1s-60s) on connection loss.
- The
directory (themes, plugins, settings) is synced..obsidian/ - For headless servers without a desktop keyring, use
.OBSYNC_KEYRING_BACKEND=file - For always-on sync on headless servers, enable lingering:
.loginctl enable-linger $USER - Config is stored at
.~/.config/obsync/config.json