swekizer286 downloadsSync your vault natively with a GitHub repository on both Desktop and Mobile.
Sync your Obsidian vault directly with a private GitHub repository on desktop and mobile.
End to end: open Settings, add your repository URL and token, save, and sync.
Direct Git Sync is built for people who want simple Git-based vault sync without installing Git on every device. It uses isomorphic-git for repository operations and Obsidian-friendly HTTP requests so the same flow can work inside desktop and mobile Obsidian.
Obsidian Sync is great when you want the official full-vault sync experience. Direct Git Sync is for the case where you want your vault backed by a GitHub repository instead:
The plugin keeps the workflow intentionally small:
Settings -> Community plugins -> Browse.Direct Git Sync.Install, then Enable.Download these files from the latest GitHub release into: Files required:
main.jsmanifest.jsonstyles.cssThen enable the plugin in Settings -> Community plugins.
Caption: The GitHub release should include main.js, manifest.json, and styles.css for manual installation.
Create a private GitHub repository for your vault. A typical URL looks like:
https://github.com/your-username/your-repo.git
Create a GitHub token that can read and write the repository. Steps:
repo scope is enough.Open Settings -> Direct Git Sync and fill in:
GitHub repository URLPersonal access tokenAuthor name (Any name will work)Author email (Any email will work)You can also enable auto-sync and add extra ignore rules there.
Each sync run follows the same sequence:
On first-time setup, if the remote already contains files that would overwrite local files, the plugin creates local backup copies before checkout.
Caption: A sync run verifies the repository, stages local changes, fetches remote updates, merges them, and pushes the final result.
If the same file changed locally and remotely, the plugin does not discard your local work.
Instead it:
This is a local-first conflict strategy designed to avoid silent data loss.
The plugin includes a sync history modal with:
Open it from the command palette:
Direct Git Sync: Show sync history
You can enable automatic sync in settings and choose an interval in minutes.
When enabled, the plugin periodically runs the same sync flow in the background.
Caption: Auto Sync Feature
The plugin automatically ignores a few vault-local paths such as workspace state and its own data.json.
You can add your own ignore rules in plugin settings, one path per line. These are written into the vault .gitignore.
data.json so the token is not supposed to be committed by the plugin itself.Because the token is stored locally, keep your vault and backups private.
.obsidian may create noisy Git history if you choose to track them.npm install
npm run build
For development with automatic rebuilds:
npm run dev
The bundled plugin output is main.js.
0BSD