Two-way sync your Obsidian vault with Google Drive. DriveSync syncs your vault,
including .obsidian, except for a small set of vault-technical files such as
.obsidian/workspace.json, .obsidian/workspace-mobile.json, and
.obsidian/graph.json.
DriveSync is for vaults that need Google Drive sync without real-time syncing. It uses your own Google Cloud project and Google account, so you can keep your vault in storage you already control.
This is not real-time sync. Sync happens in four scenarios:
Conflict resolution: newest version wins, and the older version is saved as
(conflicted).md.
Use your own GCP account: A personal GCP account with your own tokens is enough to keep your Obsidian vault in sync.
[!warning]+ Back up your vault Before setting up DriveSync, create a backup of your vault. During the first sync, DriveSync downloads remote files and may overwrite local files when the same file exists both locally and in Google Drive.
Select APIs & Services → OAuth consent screen
https://www.googleapis.com/auth/driveSelect APIs & Services → Credentials → Create credentials → OAuth client ID
http://127.0.0.1:8520Copy the Client ID and Client secret
8520 (or change it if you used a different one in step 2)Ctrl+P (Windows/Linux) or Command+P (macOS), then perform Connect Google DriveDriveSync requests full Google Drive access because it must discover, download,
update, move, and delete files that already exist inside the synchronized
folder. Google limits the narrower drive.file scope to files created by the
plugin or explicitly selected through Google Picker.
| Command | Description |
|---|---|
| Sync now | Run a full two-way sync immediately |
| Connect Google Drive | Authenticate with Google Drive |
| Disconnect Google Drive | Remove credentials and stop syncing |
| Show sync status | Open the status panel in the sidebar |
| Setting | Default | Description |
|---|---|---|
| Google OAuth client ID | — | From Google Cloud Console |
| Google OAuth client secret | — | From Google Cloud Console |
| Redirect port | 8520 |
Local port for OAuth callback |
| Google Drive folder | Obsidian Vault |
Top-level Drive folder used for this vault |
| Auto-sync on file changes | On | Upload changes as you edit |
| Debounce (ms) | 2000 |
Wait time after last change before uploading |
npm install
npm run dev # watch mode
npm run build # production build
npm run lint # run ESLint
npm version patch (or minor / major)npm run version to sync manifest.json and versions.jsonmain.js, manifest.json, and styles.cssmanifest.json exactly (no v prefix)