explaingit

vinzent03/obsidian-git

10,893TypeScriptAudience · writerComplexity · 2/5Setup · moderate

TLDR

A plugin for the Obsidian note-taking app that adds Git version control, letting you automatically back up and sync your notes to GitHub or another remote on a schedule, no terminal required.

Mindmap

mindmap
  root((obsidian-git))
    Core Features
      Auto commit and sync
      Source Control panel
      History log
      Diff View
    Platforms
      Desktop stable
      Mobile experimental
    Tech Stack
      TypeScript
      isomorphic-git
    Audience
      Note takers
      Writers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically back up your Obsidian vault to GitHub every hour without opening a terminal.

USE CASE 2

Stage and commit individual note changes from inside Obsidian using the visual Source Control panel.

USE CASE 3

Review the full history of your vault and see which notes changed in each past snapshot.

USE CASE 4

Compare the current and previous version of a note side by side using the built-in Diff View.

Tech stack

TypeScriptisomorphic-git

Getting it running

Difficulty · moderate Time to first run · 30min

Mobile (iOS/Android) is experimental: no SSH auth, memory crashes on large vaults, and no submodule support, may not work reliably.

In plain English

Obsidian Git is a community-made plugin for Obsidian.md, a note-taking application that stores your notes as plain text files in a folder on your computer called a vault. This plugin adds Git support directly inside Obsidian. Git is a version control system that tracks changes to files over time, lets you go back to earlier versions, and can sync files with online services like GitHub. The core feature is automatic commit-and-sync on a schedule. You set a time interval, and the plugin will periodically save a snapshot of your vault, pull any changes from a remote location, and push your local changes out. This means your notes are continuously backed up and kept in sync across devices without you having to think about it. On startup, Obsidian can also pull the latest changes automatically. For people who want more control, the plugin provides a Source Control panel inside Obsidian where you can see exactly which files changed, stage individual files (marking them as ready to include in a snapshot), review the differences line by line, and write your own snapshot message before saving. There is also a History panel that shows a log of past snapshots and which files changed in each one, and a Diff View that shows a side-by-side comparison of the current and previous version of any file. Desktop use is stable and well-supported. Mobile use (iOS and Android) is experimental and comes with significant warnings in the README. On mobile, the plugin relies on a JavaScript reimplementation of Git called isomorphic-git rather than a native Git installation, and that approach has real limitations: no SSH authentication, memory constraints that can cause crashes on large vaults, and no support for submodules or certain merge strategies. The author explicitly notes that mobile may not work for everyone and that filing issues will not result in fixes for the underlying causes. Installation is through Obsidian's community plugin browser. Full documentation, authentication setup guides, and Linux-specific notes live in the linked external documentation site.

Copy-paste prompts

Prompt 1
Set up obsidian-git to automatically commit and push my Obsidian vault to a private GitHub repository every 30 minutes.
Prompt 2
Walk me through using the obsidian-git Source Control panel to stage specific files and write a custom commit message.
Prompt 3
How do I set up SSH authentication with GitHub for obsidian-git on a Mac?
Prompt 4
Show me how to use obsidian-git's History panel to find the last time a specific note was changed and what the previous version looked like.
Open on GitHub → Explain another repo

← vinzent03 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.