- In GitSync.md, set the default save location to Obsidian's iOS file system
- Clone your vault's Git repo into that directory
- Install the Obsidian Git community plugin
- Set your GitHub username, author name, and author email
- Done — pull, commit, and push from Obsidian, or hand sync off to GitSync.md with the
syncmd://sync URL
This post now recommends keeping the plugin's automatic timers off on iPhone and letting GitSync.md own automated sync via the syncmd://x-callback-url/sync URL. For the fuller walkthrough, see How to Use Obsidian Git on iPhone and iPad.
The problem
If you use Obsidian on your desktop with the Obsidian Git plugin, you already have a great workflow: your vault is a Git repo, every edit is version-controlled, and your notes push to GitHub automatically.
Then you open Obsidian on your iPhone and realize — there's no Git on iOS. The mobile app doesn't ship with git, and the Obsidian Git plugin can't clone or push on its own without a real .git directory already in place.
That's what GitSync.md solves. It uses libgit2 to perform real Git operations natively on iOS — clone, pull, commit, push — and writes an actual .git directory to the filesystem. Once that directory exists inside Obsidian's file system, the Obsidian Git plugin picks it up and everything just works.
What you'll need
- GitSync.md installed on your iPhone (App Store — $9.99 one-time)
- Obsidian installed on your iPhone (App Store)
- A GitHub account with a repository containing your Obsidian vault
If you haven't pushed your vault to GitHub yet, you can do that from your desktop first — just git init inside your vault folder, commit everything, and push to a new repo.
Step-by-step setup
Sign in to GitSync.md
Open GitSync.md and sign in with your GitHub account. You can use OAuth (tap "Sign in with GitHub") or paste a Personal Access Token — either works.
Set the save location to Obsidian's filesystem
This is the key step. During onboarding (or later in App Settings), GitSync.md asks you where to save cloned repos. Tap "Choose Location" and navigate to:
On My iPhone → Obsidian
This is the root of Obsidian's iOS file system. By cloning directly into this directory, your repo will appear as an Obsidian vault automatically.
On iOS, each app has its own sandboxed directory in the Files app. When GitSync.md clones a repo into Obsidian's directory, it creates a real folder with a real .git directory inside it — exactly what Obsidian Git needs to function. Obsidian sees the folder as a vault, and the plugin sees the .git directory and treats it as a working repository.
Clone your vault repo
Back in GitSync.md, tap "Add Repository" and browse your GitHub repos. Find your Obsidian vault repo and tap to add it, then hit "Clone Repository".
GitSync.md will clone the full repo — including the .git directory with your complete commit history — straight into Obsidian's file system.
Open the vault in Obsidian
Open Obsidian on your iPhone. If this is your first time, you'll see the vault picker. Your cloned repo should appear as an available vault — tap it to open.
If you already have other vaults, tap "Open folder as vault" and select the cloned repo from Obsidian's file system.
You should see all your notes, just like on your desktop.
Install the Obsidian Git plugin
Inside Obsidian, go to Settings → Community Plugins → Browse and search for "Obsidian Git". Install it and enable it.
If you already have the Obsidian Git plugin configured in your vault on your desktop, its settings file (.obsidian/plugins/obsidian-git/data.json) may already be in the repo. In that case, the plugin will be installed automatically when Obsidian opens the vault — you just need to enable it.
Configure Obsidian Git
Open the Obsidian Git plugin settings (Settings → Obsidian Git) and fill in three fields:
CodyBontecou)Cody Bontecou)cody@example.com)That's it. No tokens to paste, no SSH keys to generate, no authentication configuration. The plugin uses the existing .git directory and remote configuration that GitSync.md already set up when it cloned the repo.
Automate it with the sync URL (recommended)
For a workflow you don't have to think about, hand the Git work to GitSync.md instead of driving the plugin's timers. Trigger this URL whenever you want a full round-trip sync:
syncmd://x-callback-url/sync?repo=MyVault&message=Update%20from%20Obsidian
The sync action pulls first, then stages your local changes, commits them with the message you pass, and pushes to GitHub — then hands you right back to Obsidian. The repo value must match the vault folder name shown in GitSync.md, not the GitHub repository title.
You can fire it from a tapped link in a note, an iOS Shortcut, or any automation you build — one tap and your vault is synced with real Git. Separate actions are also available if you want distinct pull and push buttons:
syncmd://x-callback-url/pull?repo=MyVault
syncmd://x-callback-url/push?repo=MyVault&message=Update%20from%20Obsidian
That's it — it just works
Once those three fields are set, Obsidian Git can pull, commit, and push your vault. You can use the command palette (Ctrl+P or swipe down) and run commands like:
- Obsidian Git: Pull — fetch the latest changes from GitHub
- Obsidian Git: Commit all changes — stage and commit your edits
- Obsidian Git: Push — push commits to GitHub
What about auto-sync?
The plugin does have automatic settings — auto commit-and-sync interval, auto push interval, auto pull interval — and they work, but we recommend leaving them off on iPhone. The plugin's mobile Git engine is experimental and memory-limited on iOS, its timers only fire while Obsidian is open in the foreground, and two apps driving the same .git on independent schedules is far less predictable than one owner.
Instead, let GitSync.md be the single engine for automated sync — trigger the syncmd://x-callback-url/sync URL from Step 7 for one-tap round-trips. Edit a note on your phone, sync once, and it shows up on your desktop. Edit on your desktop, sync on your phone. Real Git, real version history, no sync conflicts.
You can also use GitSync.md itself to pull and push at any time — tap the repo in GitSync.md and use the Pull or Commit & Push buttons. Both apps work with the same .git directory, so they stay in sync with each other.
Why this works so well
Most iOS Git solutions use REST APIs or custom sync layers that don't leave a .git directory on disk. GitSync.md is different — it's built on libgit2, the same C library that powers GitHub Desktop, and it creates real Git repositories on the iOS filesystem. That means:
- Full compatibility — any tool that reads
.gitdirectories works out of the box - Complete history — your entire commit log is on your device
- No middleman — your iPhone talks directly to GitHub, no third-party cloud in between
- No subscription — unlike Obsidian Sync ($8/mo), this is a one-time purchase + your existing GitHub account
Troubleshooting
Obsidian doesn't see the vault
Make sure you set GitSync.md's save location to On My iPhone → Obsidian before cloning. If you cloned to the wrong location, you can remove the repo in GitSync.md, update the save location in App Settings, and clone again.
Obsidian Git says "no git repository found"
This usually means the .git directory wasn't cloned properly. Open GitSync.md, check that the repo shows as "Cloned" with a branch and commit SHA visible. If it looks right, try closing and reopening Obsidian.
Push fails from Obsidian Git
Obsidian Git on iOS relies on the credentials already configured in the .git/config remote URL. If the remote was set up via GitSync.md with OAuth or a PAT, the credentials are embedded. Make sure your GitHub username in the plugin settings matches the one you signed in with in GitSync.md.
Changes made in Obsidian don't appear in GitSync.md
That's normal — both apps share the same filesystem. When you edit a file in Obsidian and then open GitSync.md, it will detect the changes automatically. They're reading and writing the same files.
Recap
The whole setup takes about two minutes:
- Point GitSync.md's save directory at Obsidian's iOS file system
- Clone your vault repo
- Set up Obsidian Git with your username, name, and email
- Keep the plugin's auto-sync timers off and use
syncmd://x-callback-url/syncfor one-tap syncing
No complex configuration, no SSH keys, no cloud middleman. Just real Git on your iPhone, working seamlessly with the app you already use for your notes.
GitSync.md is available on the App Store for $9.99 one-time and is open source on GitHub.