Jakob He345 downloadsAgentic two-way sync for your vault and submodules with GitHub. AI resolves conflicts and git errors autonomously.
A GitHub two-way sync plugin for Obsidian users who don't know git. Three things make it different.

Hand the messy parts of git off to an AI.

Private notes stay private while team work happens alongside — independent, non-interfering.

A background scheduler pulls and pushes on a timer while you write. Tokens and machine-local state stay in .obsidian/ (never committed); remote URLs and the submodule list live in .github-sync.json and travel with the repo, so a fresh clone on another machine restores your config automatically.
Community plugins: Settings → Community plugins → Browse → search Agentic Git Sync → Install → Enable.
Manual: download main.js, manifest.json, styles.css from the latest release, drop them into <vault>/.obsidian/plugins/agentic-git-sync/, restart Obsidian, and enable.
Settings → Agentic Git Sync → Run setup wizard, then connect GitHub.
Recommended — GitHub App (no token to manage; access scoped to repos you pick):
Manage or revoke anytime at github.com/settings/installations.
Alternative — Personal Access Token: on Your Credentials, open the token option (the ? opens GitHub's token page). Classic needs repo; fine-grained needs Contents: read & write.
Then paste (or Browse for) your vault repo's HTTPS URL — the plugin handles the initial commit and push, even for an empty repo. Add per-folder submodules from the dashboard later if you want.
Credentials stay on your device, access stays minimal. The GitHub App grants only the repos you select and uses short-lived tokens — nothing long-lived in your vault; revoke anytime from GitHub settings. A PAT lives only in local data.json. The committed .github-sync.json has no token field by schema, so credentials can't leak into a commit.
Browse the commit history of any file without leaving Obsidian. Click a commit (or shift-click a range) to see the diff inline; commit messages are the semantic ones the AI drafted when the change was synced.
