RustShare86 downloadsSync local vaults to RustShare. RustShare is not affiliated with, endorsed by, or sponsored by Dynalist Inc.
Disclaimer: Obsidian is a trademark of Dynalist Inc. RustShare is not affiliated with, endorsed by, or sponsored by Obsidian.
Sync your local Obsidian vault to RustShare — a self-hosted vault synchronization backend that supports local Markdown-based vaults.
/api/vault-sync/v1)This plugin is not yet available in the Obsidian Community Plugins marketplace.
Build the plugin (or download a pre-built release):
npm install
npm run build
Create the plugin directory in your Obsidian vault:
mkdir -p /path/to/your/vault/.obsidian/plugins/rustshare-vault-sync
Copy the plugin files:
cp main.js manifest.json styles.css \
/path/to/your/vault/.obsidian/plugins/rustshare-vault-sync/
Enable the plugin in Obsidian:
Open Settings → RustShare Vault Sync:
| Setting | Description |
|---|---|
| RustShare URL | Your RustShare instance URL (e.g., https://rustshare.io) |
| Device name | Friendly name for this device (e.g., "My MacBook") |
| Vault ID | Existing vault UUID to connect to, or leave empty to create a new vault |
| Auto-sync interval | Minutes between automatic full syncs (0 to disable) |
Open the command palette (Ctrl/Cmd + P) and run:
RustShare Vault Sync: Connect or create vault
The plugin will:
No manual token entry is required.
Open the command palette and run:
RustShare Vault Sync: Sync vault to RustShare
This performs a full bidirectional sync:
The plugin automatically listens for file changes in your vault and queues incremental sync operations. Changes are debounced (default 1500ms) and batched for efficiency.
When a file is changed both locally and on the server, the plugin:
<filename> (RustShare conflicted copy <device> <timestamp>)<ext>The following paths are ignored by default:
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/plugins/*/data.json
.trash/
.git/
.DS_Store
Thumbs.db
*.tmp
*.swp
The initial full sync scans and hashes every file. For vaults with thousands of files or large attachments, this may take a minute. Subsequent incremental syncs are much faster.
This was a bug in versions before the 2026-06-03 fixes. Update to the latest plugin version.
# Install dependencies
npm install
# Run tests
npx vitest run
# Build for production
npm run build
# Watch mode for development
node esbuild.config.mjs
src/
main.ts # Plugin entry point, event listeners, commands
api.ts # RustShare API client
sync.ts # Full and incremental sync engine
sync-queue.ts # Debounced operation queue with retry
state.ts # Sync state persistence and migration
settings.ts # Plugin settings and validation
sync-log.ts # In-memory sync event logging
utils.ts # SHA-256, path filtering, conflict naming
ui/
settings-tab.ts # Settings UI panel
status-bar.ts # Status bar component
See the main RustShare repository LICENSE file.