rhoades-brown95 downloadsSync your Obsidian vault with GitHub using the Octokit API. Two-way sync, multi-repo support, visual diffs, conflict resolution, and auto-sync — no Git CLI required. Works on desktop and mobile.
Sync your Obsidian vault with GitHub using the official Octokit API — no Git CLI required. Use GitHub as a remote backup and collaboration tool for your vault on any device, including mobile.
.obsidian settings (themes, snippets, hotkeys) across devices.github-sync-repos.json inside the vault, so they are synced with the primary repo and automatically picked up on other devicesSecretStorage, never in plaintext data.jsonSecretStorage on first load after upgrade{date} and {action} variablesNote: Back up your vault before installing. This plugin is in early development.
rhoades-brown/obsidian-githubmain.js, manifest.json, and styles.css from the latest release<vault>/.obsidian/plugins/github-octokit/repo scope.github-sync-repos.json in your vault and synced automaticallyOpen the command palette (Ctrl/Cmd + P) and search for:
| Command | Description |
|---|---|
| Sync now | Full bidirectional sync |
| Pull from GitHub | Download remote changes only |
| Push to GitHub | Upload local changes only |
| Open sync panel | Open the sidebar sync panel |
| Open sync modal | Open the sync modal |
| Open diff view | Open the diff comparison view |
| View sync conflicts | Jump to conflicts in the sync panel |
| Open GitHub settings | Open plugin settings |
| Setting | Description |
|---|---|
| GitHub token | Your Personal Access Token (stored encrypted) |
| Repository | The GitHub repo to sync with |
| Branch | Branch name (default: main) |
| Subfolder path | Sync only a subfolder of the remote repo |
| Sync configuration | Include .obsidian settings in sync |
| Sync on save | Auto-sync when you modify a file (debounced) |
| Sync on interval | Sync every N minutes |
| Sync on startup | Sync when Obsidian opens |
| Commit message | Template with {date} and {action} variables |
| Conflict strategy | Default resolution: manual, keep-local, keep-remote, keep-both |
| Status bar | Show/hide the sync status indicator |
| Notifications | Show/hide sync result notices |
| Logging | Enable/disable, set level, optionally persist to file |
The following paths are always excluded from sync:
.obsidian/plugins/** — plugin files are managed separately.obsidian/workspace.json and workspace-mobile.json — machine-specific.git/**, .gitignoreAdd custom glob patterns in Settings → Ignore patterns:
*.log
private/**
*.tmp
drafts/wip-*
See DEVELOPMENT.md for build instructions, project structure, conventional commit guidelines, and the automated CI/CD versioning workflow.
repo scopeCmd+Option+I on macOS, Ctrl+Shift+I on Windows) for real-time logsMIT