Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian
GitHub

GitHub Sync

kevinmkchinkevinmkchin38k downloads

Sync vault to personal GitHub.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates8

Changelog 1.0.7

  • Simplified the sync success notice so successful runs show a shorter confirmation message.

Changelog 1.0.6

  • Plugin loads faster on start up

Changelog 1.0.5

  • Added option to automatically sync on start up if behind remote
  • Added "Sync with Remote" command to command palette

Changelog 1.0.4

  • Simplified setup process.
  • Allow SSH url for remote.

GitHub Sync

Simple plugin that allows you to sync your vault to a personal GitHub repo for syncing across devices.

Highlights

  • Sync your vault with a single ribbon action.
  • Reduce notice noise with configurable notice levels.
  • Keep the success notice to one short confirmation message or hide it entirely.

How to Use

Click the Sync with Remote ribbon icon to pull changes from your GitHub repo and push local changes. If there are any conflicts, the unmerged files will be opened for you to resolve (or just push again with the unresolved conflicts - that should work too).

Setup

Setting up a GitHub repo

If your vault is already set up as a GitHub repository, you can skip this step. Otherwise, create a new public or private GitHub repository that you want to use for your vault.

Navigate to your vault and git init the folder. At this point, add anything you don't want syncing across your devices to a .gitignore.

This is not required, but you should try pushing your vault to your GitHub repository before continuing to make sure you can do that in the first place before using this plugin:

git add .
git commit -m "my obsidian vault first commit"
git branch -M main
git remote add origin <remote-url>
git push -u origin main

Verify that this works before continuing.

For simplicity, this plugin does not support branching. Everything gets pushed to main.

Setting up remote URL

All this plugin needs now is your GitHub repo's remote URL. You can grab this from the GitHub repo page for your vault:

You can use either the HTTPS or SSH url. Grab it and paste it in the GitHub Sync settings tab like so:

Done. Try clicking the Sync button now - it should work.

The first time may prompt you to authenticate if you haven't, or it may ask you to configure git with your email and name.

Optional

You can reduce UI noise from sync operations with the Notice level setting:

  • ALL shows every GitHub Sync notice.
  • WARNING shows only warnings and errors.
  • ERROR shows only error notices, so sync can run mostly in the background.

You can also use Hide Success Message to suppress the single confirmation notice shown after a successful sync. With the toggle off and Notice level set to ALL, a successful sync shows exactly one success message instead of multiple informational notices.

If your git binary is not accessible from your system PATH (i.e. if you open up Command Prompt or Terminal and can't use git), you need to provide its location. I initialize git only when launching Cmder, so I need to input a custom path like so: C:/Users/Kevin/scoop/apps/cmder-full/current/vendor/git-for-windows/cmd/. Note that I excluded git.exe from the end of the path.

You can also include your GitHub username and personal access token in the remote url. Like so: https://{username}:{personal access token}@github.com/{username}/{repository name}. This is not recommended anymore, but it was how the plugin worked prior to 1.0.4. If you're doing this, you'll have to add .obsidian/plugins/github-sync/data.json to your .gitignore. See: https://github.com/kevinmkchin/Obsidian-GitHub-Sync/issues/2#issuecomment-2168384792.

Rationale

This plugin is for personal use, but I figured others might find it useful too. This is basically a glorified script - the code is tiny its like ~200 SLOC. I keep a private GitHub repository for my Markdown notes, and I wanted some way to pull/push my notes from within Obsidian without opening a command line to run a script or set up an auto sync script on a timer. I don't use Git branches for my notes so this plugin doesn't support branching.

The Node API used by this plugin works with any remote host, but I use GitHub so I centered the whole plugin around that.

Mobile support could come in the future depending on how much I need it myself.

Follow my stuff at https://kevin.gd/

79%
HealthExcellent
ReviewCaution
About
Sync your vault to a personal GitHub repo with a single ribbon action to pull remote changes and push local edits. Open unmerged files for conflict resolution, support HTTPS or SSH remotes, enable auto-sync on startup, and show concise or hidden sync notices.
GitSyncingBackup
Details
Payments
Optional
Current version
1.0.7
Last updated
2 weeks ago
Created
2 years ago
Updates
8 releases
Downloads
38k
Compatible with
Obsidian 0.15.0+
License
MIT
Report bugRequest featureReport plugin
Author
kevinmkchinkevinmkchin
kevin.gd/
GitHubkevinmkchin
  1. Community
  2. Plugins
  3. Git
  4. GitHub Sync

Related plugins

Remotely Save

Sync notes between local and cloud with smart conflict: S3, Dropbox, webdav, OneDrive, Google Drive, Box, pCloud, Yandex Disk, Koofr, Azure Blob Storage.

Git

Integrate Git version control with automatic backup and other advanced features.

YAOS

Simple real-time sync powered by your own Cloudflare Worker.

GitHub

GitHub Gitless Sync

Sync a GitHub repository with vaults on different platforms without requiring git installation

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Rsync

Sync notes and automate backups using Rsync.

Remotely Sync

Security fixes for the remotely-save unofficial plugin allowing users to synchronize notes between local device and the cloud service. Not backwards compatible.

Cloud sync

Sync your notes to multiple cloud storage services and provide end-to-end encryption protection.

Notes Sync Share

Sync and share (publish) your notes in your own private service.

SyncFTP

Connect to an SFTP and push/pull file changes to it.