Eghosa Osayande43 downloadsBackup your vault as an archive, with optional encryption and Git version control.
Safe Vault is an Obsidian backup plugin for creating archive-based backups of your vault.
Backups can optionally be encrypted and version-controlled, making it possible to keep local backup snapshots as well as store them in a Git repository.
Safe Vault currently uses:
tar for creating and extracting archivesage for optional encryptiongit for version control and remote synchronizationThese tools must be installed on your system and available on your PATH before their corresponding Safe Vault features can be used.
Safe Vault supports:
ageSafe Vault provides the following commands:
Creates a new archive of the current vault using the configured backup settings.
Pushes the backup repository to its configured Git remote.
Pulls the latest changes from the configured Git remote.
Creates a new backup and then pushes the updated backup repository to its configured remote.
Restores the vault from an existing Safe Vault backup.
Specifies where Safe Vault should store backup archives.
If the backup directory is located in the current vault directory it must be excluded. Otherwise, it must be located outside the current vault directory.
For example:
Documents/
├── .backups/
└── MyVault/
├── Notes/
└── Attachments/
In this example, .backups/ can be used as the backup directory because it is outside MyVault.
Or:
MyVault/
├── .backups/
└── Notes/
In this example, .backups/ can only be used as the backup directory if it is excluded from the archive.
Specifies files or directories that should not be included in the archive.
Excluded paths are specified relative to the vault root.
For example:
.obsidian/workspace.json
Attachments/temp
private-notes
Paths currently use exact relative path matching.
Wildcards are not supported.
Safe Vault allows you to configure how backup archive files are named.
Available naming strategies include:
Every backup uses the same configured archive name.
For example:
vault-backup.tar.gz
If an archive with the same name already exists, Safe Vault can handle it using one of the following strategies:
Delete then create new is the default behaviour.
Generates archive names using the date and time of the backup.
For example:
vault-backup-2026-08-30.tar.gz
This is useful when you want to retain multiple backup snapshots.
Prompts for the archive name before creating each backup.
This is useful when you want to assign descriptive names to individual backups.
Safe Vault supports optional backup encryption using age.
When encryption is enabled, the generated archive is encrypted before being stored in the backup directory.
Two encryption methods are supported.
Encrypts the archive using an age passphrase.
The same passphrase is required when restoring the backup.
This can be useful for simple personal backups where managing a separate identity file is unnecessary.
Uses an age public/private key pair.
This is the default encryption method.
The public recipient key is used when creating backups, while the corresponding private identity is required when decrypting and restoring them.
A new identity can be generated with:
age-keygen -o key.txt
The public recipient can be derived from the identity with:
age-keygen -y key.txt
Keep the identity file secure. Anyone with access to the private identity can decrypt backups encrypted for its corresponding recipient.
Safe Vault relies on external command-line tools rather than bundling its own implementations.
Depending on the features you use, you will need:
tar
age
git
Each required command must be available from your system PATH.
You can verify this from a terminal with:
tar --version
age --version
git --version
If a command is unavailable, the Safe Vault feature that depends on it will not work.
A typical Safe Vault workflow is:
Obsidian Vault
│
▼
Archive
tar
│
▼
Optional Encryption
age
│
▼
Backup Directory
│
▼
Optional Version Control
git
│
▼
Remote Repository
For a simple local setup, you can use Safe Vault only for archive creation.
For a more complete backup strategy, you can combine archive creation, encryption, and Git synchronization.