Skip to content

Config file

Roy Padina edited this page Oct 19, 2026 · 1 revision

Config file

~/Library/Application Support/ObsidianVaultGitWatcher/config.json. The Settings window writes it. You can also edit it by hand: the running app picks the change up within seconds. An invalid edit is refused, logged and shown in Settings, and the previous settings stay in use.

Example

Every key spelled out (only vaults[].path is required; any other key falls back to the value shown):

{
  "version": 2,
  "menuBarIcon": "always",
  "showFileCount": false,
  "logFile": "~/Library/Logs/obsidian-vault-git-watcher.log",
  "vaults": [
    {
      "path": "~/Obsidian/Notes",
      "state": "state-Notes.json",
      "name": "",
      "enabled": true,
      "quietMinutes": 60,
      "reminderTime": "10:00",
      "reminderDays": [1, 2, 3, 4, 5, 6, 7],
      "notify": "dialog",
      "snoozeHours": [1, 3],
      "commitMessage": "Vault update {date}",
      "stage": "all",
      "ignore": [".obsidian/workspace*.json", ".stversions", ".stfolder"],
      "push": true,
      "remote": "",
      "branch": "",
      "obsidianVault": ""
    }
  ]
}

Keys

Key Values
version Schema version, 2. A file without it is schema 1 (see below)
menuBarIcon always or whenNeeded
showFileCount true / false
logFile Path; ~ allowed
path The vault folder (top of a git repository); ~ allowed
state The vault's state file, relative to the config folder unless absolute
name Display name; "" = folder name
enabled false = not watched
quietMinutes 1–1440
reminderTime HH:mm, 24-hour
reminderDays Weekdays, 1 = Sunday … 7 = Saturday; at least one
notify dialog or banner
snoozeHours Numbers above 0, up to 336
commitMessage Not empty; tokens {date} {time} {files} {vault}
stage all (git add -A) or tracked (git add -u)
ignore Paths relative to the vault; no leading / or ~, no ..
push true / false
remote, branch Plain names (letters, digits, . _ / -); "" = upstream
obsidianVault Vault name for obsidian://open?vault=; "" = open the folder

The same folder can't be listed twice, and two vaults can't share a state file.

Schema versions

Schema 1 files (no version, entries with only path and state) still load as they are, with every newer setting at its default. The first save rewrites the file as version 2 and keeps the original as config.json.bak.

State files

One per vault, next to config.json (state-<folder>.json unless set). It tracks the current change fingerprint, when it was first seen, any snooze or skip, and the next due time. Safe to delete; it's recreated on the next check.

Log

~/Library/Logs/obsidian-vault-git-watcher.log by default: start-up, reminders shown, config reloads and errors, commit and push failures.

Clone this wiki locally