Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/chrisgrieser/shimmering-obsidian/llms.txt

Use this file to discover all available pages before exploring further.

Shimmering Obsidian includes a built-in vault backup command that compresses your entire vault into a timestamped zip archive and moves it to a folder of your choice — no third-party software required. A configurable rotation limit ensures old backups are automatically pruned so your backup folder never grows unbounded.

Running a Backup

Type obackup in Alfred and press . The workflow immediately compresses your vault and saves the archive to your configured backup destination. A notification confirms the backup path once it completes.

How It Works

The backup script runs the following steps in sequence:
1

Compress the vault

The entire vault directory is compressed into a zip file named Obsidian-Backup_YYYY-MM-DD_HH-MM.zip. The timestamp in the filename makes it easy to identify when each backup was taken.
2

Move the archive

The zip file is moved to the folder you specified in backup_destination inside the workflow configuration. The destination folder is created automatically if it does not already exist.
3

Rotate old backups

After the new archive is saved, the script counts the existing backups in the destination folder. If the count exceeds max_number_of_bkps, the oldest backup (determined by file modification time) is deleted automatically.

What is included and excluded

ItemIncluded in backup
All notes and attachments✅ Yes
.obsidian config folder✅ Yes
.trash folder✅ Yes
.git folder❌ No
The .git folder is deliberately excluded to keep archive sizes manageable. If you need git history preserved, commit and push to a remote repository separately.

Configuration

Set these two values in the workflow’s configuration panel (Alfred Preferences → Workflows → Shimmering Obsidian → Configure Workflow):
VariableDescription
backup_destinationAbsolute or tilde-prefixed path to the folder where backups are stored (e.g. ~/Backups/Obsidian)
max_number_of_bkpsMaximum number of backup archives to keep before the oldest is deleted

Automating Backups

For hands-free scheduled backups, you can trigger obackup programmatically using Alfred’s External Trigger via AppleScript. This makes it straightforward to wire the backup into launchd, a Cron job, or a Keyboard Maestro macro.
tell application id "com.runningwithcrayons.Alfred"
	run trigger "backup-obsidian" in workflow "de.chris-grieser.shimmering-obsidian"
end tell
To suppress the confirmation sound that plays after a successful backup, pass no sound as the trigger argument:
tell application id "com.runningwithcrayons.Alfred"
	run trigger "backup-obsidian" in workflow "de.chris-grieser.shimmering-obsidian" ¬
		with argument "no sound"
end tell
Common automation hosts:
  • launchd — macOS’s native job scheduler; suitable for time-based or interval-based triggers without any additional software.
  • Cron jobs — the classic Unix scheduler, available in macOS via crontab -e.
  • Keyboard Maestro — a macOS automation app that can trigger the AppleScript above on a schedule, on application quit, or on any other event it supports.
This is a simplistic backup solution designed for convenience, not resilience. It creates a single point-in-time snapshot with no incremental history, no off-site copy, and no verification step. For critical or irreplaceable data, use a dedicated backup solution such as Time Machine, Backblaze, or Arq alongside this command. This workflow is provided without any warranty, as stated in its license.

Build docs developers (and LLMs) love