Skip to content

Commit 0ba53e5

Browse files
committed
docs: add openclaw skill file
1 parent d28d32c commit 0ba53e5

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

skill/SKILL.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
name: obsync
3+
description: Obsidian Sync CLI for syncing vaults on headless Linux servers with full end-to-end encryption.
4+
homepage: https://github.com/bpauli/obsync
5+
metadata:
6+
{
7+
"openclaw":
8+
{
9+
"emoji": "🔄",
10+
"os": ["darwin", "linux"],
11+
"requires": { "bins": ["obsync"] },
12+
"install":
13+
[
14+
{
15+
"id": "homebrew",
16+
"kind": "homebrew",
17+
"formula": "bpauli/tap/obsync",
18+
"bins": ["obsync"],
19+
"label": "Homebrew (recommended)",
20+
},
21+
{
22+
"id": "source",
23+
"kind": "source",
24+
"url": "https://github.com/bpauli/obsync",
25+
"bins": ["obsync"],
26+
"label": "Build from source (Go 1.25+)",
27+
},
28+
],
29+
},
30+
}
31+
---
32+
33+
# obsync
34+
35+
Use `obsync` to sync Obsidian vaults on headless Linux servers. Requires an Obsidian Sync subscription and account credentials.
36+
37+
Setup (once)
38+
39+
- `obsync login` (enter email, password, and optional MFA code)
40+
- For headless servers: `export OBSYNC_KEYRING_BACKEND=file`
41+
- Optionally set keyring password: `export OBSYNC_KEYRING_PASSWORD=mysecret`
42+
- Verify: `obsync list`
43+
44+
Output
45+
46+
- Default: human-friendly terminal output with colors and spinners.
47+
- Use `--json` / `-j` for JSON output.
48+
- Use `--verbose` / `-v` for debug logging.
49+
50+
Common commands
51+
52+
- Log in: `obsync login`
53+
- List vaults: `obsync list`
54+
- Pull vault: `obsync pull "My Notes" ~/notes -p "e2e-password"`
55+
- Pull and save password: `obsync pull "My Notes" ~/notes -p "e2e-password" -s`
56+
- Push local changes: `obsync push "My Notes" ~/notes -p "e2e-password"`
57+
- Watch (continuous sync): `obsync watch "My Notes" ~/notes -p "e2e-password"`
58+
- Install systemd service: `obsync install "My Notes" ~/notes`
59+
- Check service status: `obsync status "My Notes"`
60+
- View service logs: `journalctl --user -u obsync@<vault-id>.service -f`
61+
- Uninstall service: `obsync uninstall "My Notes"`
62+
63+
Flags
64+
65+
- `-p, --password` — E2E encryption password
66+
- `-s, --save-password` — save E2E password to keyring for future use
67+
- `-v, --verbose` — enable debug logging
68+
- `-j, --json` — JSON output to stdout
69+
- `--config` — path to config file (or `OBSYNC_CONFIG` env var)
70+
- `--version` — print version and exit
71+
72+
Notes
73+
74+
- Requires a valid Obsidian Sync subscription.
75+
- E2E encryption uses AES-256-GCM with scrypt key derivation.
76+
- Pull/push compare files by SHA-256 hash — only changed files are transferred.
77+
- Watch mode uses WebSocket for remote changes and fsnotify for local changes (500ms debounce).
78+
- Large files are handled with 2MB chunked transfers.
79+
- Automatic reconnection with exponential backoff (1s-60s) on connection loss.
80+
- The `.obsidian/` directory (themes, plugins, settings) is synced.
81+
- For headless servers without a desktop keyring, use `OBSYNC_KEYRING_BACKEND=file`.
82+
- For always-on sync on headless servers, enable lingering: `loginctl enable-linger $USER`.
83+
- Config is stored at `~/.config/obsync/config.json`.

0 commit comments

Comments
 (0)