Obsidian is one of the best note-taking apps available today. It provides a powerful, Markdown-based experience with local-first storage. However, there is one problem: the official sync feature costs around $8 per month. What if I told you there’s a way to sync your notes across multiple devices completely free? In this guide, I will walk you through a method using GitHub and Git that allows you to keep your notes in sync without spending a dime.
It could feel that you need to do a lot of things, but don’t worry; in an ideal scenario, you would need about 10–15 minutes and these things:
GitHub is a cloud-based platform primarily used for software development, but it can also be used for managing personal projects and files — including Obsidian notes.
A Git repository (or repo) is a storage space where Git tracks all the changes to a set of files. It records modifications, allowing you to revert to previous versions, collaborate with others, and synchronize your files across different devices. In the context of Obsidian, a Git repository helps store and sync your notes while keeping track of all edits.
If you don’t have Git installed, follow these steps:
brew install git
.
sudo apt-get install git
(for Debian-based systems) or sudo dnf install git (for Fedora-based systems).
Once installed, open your terminal (Command Prompt, PowerShell, or macOS Terminal) and verify installation by running:
git --version
Here are three essential Git commands that you’ll use frequently:
git status
This command shows the current state of your repository. It tells you which files have been modified, added, or staged for commit.git status
git pull
This command fetches the latest changes from the remote repository (GitHub) and updates your local repository.
git push
After making changes, you need to upload them to GitHub using git push. This command sends your committed changes from your local repository to the remote repository.
Now, let’s connect your local Obsidian vault to GitHub:
git clone YOUR-REPO-URL
Move your Obsidian notes into this folder so they are ready for syncing.
GitHub has deprecated password-based authentication for Git operations. Instead, it requires you to use a Personal Access Token (PAT), which provides a more secure way to authenticate.
How to Get a GitHub Classic Token
Go to GitHub Developer Settings:
Set Expiration & Permissions:
Select the necessary scopes:
Generate and Copy the Token:
Use the Token in Git Authentication:
To avoid entering your password every time you sync, you can set up SSH authentication:
ssh-keygen -t ed25519 -C "[email protected]"
cat ~/.ssh/id_ed25519.pub
Now, your system will authenticate with GitHub automatically.
I assume you already have the Obsidian App, which is why I won’t cover the installation process for it here. I will only show you the quick steps to install the Git plugin.
Obsidian has a plugin that makes Git syncing easier:
Now, whenever you edit notes, Obsidian will sync them automatically with GitHub.
Syncing on mobile is slightly more complicated but still doable.
iSH App
Open iSH, and install Git using:
apk add git
mkdir obsidian
Run the mount command to mount the obsidian vault folder.
mount -t ios . obsidian
cd obsidianrm -rf .git clone YOUR-REPO-URL .
Once this step is done, you will see your notes in the Obsidian application.
The last step in our tutorial - the Git community plugin.
Open Obsidian.
Go to Settings > Community Plugins.
Tap Browse and search for Obsidian Git.
Tap Install, then Enable the plugin.
Set up an auto-commit interval (e.g., every 5 minutes).
Enable Pull on Startup to sync changes when opening Obsidian.
If you are struggling with the steps, I recommend you to watch my detailed video tutorial.
While it takes a bit of setup, once done, it works seamlessly. If you found this guide helpful, let me know in the comments, and feel free to ask any questions!
Cheers! ;)