This update introduces a new migration assistant for Obsidian Sync. This tool will allow you to perform migrations for your remote Sync vaults, such as encryption upgrades, and in the future the ability to switch regions. Learn more
Obsidian occasionally upgrades Sync encryption to maintain the highest security standards. If an encryption upgrade is available you will see an option titled "Upgrade vault encryption" in Obsidian Settings → Sync.
file.tags.contains() not finding files with parent tags (e.g. a/b should match when looking for "a").Obsidian Sync has received a minor security upgrade. File names have always been end-to-end encrypted, but they're now protected using an even stronger method. All new vaults automatically use this stronger encryption. Existing vaults can be upgraded with the new migration assistant in Obsidian 1.9.11.
The old method of encrypting file paths and hashes derived the initialization vector (IV) from a hash of the string. In rare cases, this could create a pattern that an attacker might try to take advantage of if they were able to get access to your encrypted data. Now, file paths and hashes are encrypted with AES-SIV so those patterns can no longer exist.
The way file contents are encrypted hasn't changed, they've always been secured with AES-GCM.
This update introduces a new migration assistant for Obsidian Sync. This tool will allow you to perform migrations for your remote Sync vaults, such as encryption upgrades, and in the future the ability to switch regions.
Obsidian occasionally upgrades Sync encryption to maintain the highest security standards. If an encryption upgrade is available you will see an option titled "Upgrade vault encryption" in Obsidian Settings → Sync.
file.tags.contains() not finding files with parent tags (e.g. a/b should match when looking for "a").Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.10.
Ctrl-Tab and Shift-Ctrl-Tab to switch between tabs on iPad.Introducing Bases, a new core plugin that lets you turn any set of notes into a powerful database. With Bases you can organize everything from projects to travel plans, reading lists, and more.
Bases lets you create custom views to visualize and interact with data in your vault. You can filter your notes by properties and create formulas to derive your own dynamic properties.
All the data in a base is backed by your local Markdown files and properties stored in YAML. To support Bases, we're introducing the .base file format and syntax.
tag, alias, cssclass in favor of tags, aliases and cssclasses. In addition, the values of these properties must be a list. If the current value is a text property, it will no longer be recognized by Obsidian.
In the "Format converter" core plugin, there is a new option to fix any incorrectly formatted aliases, tags, and cssclasses in your vault. It will also migrate your old alias, tag, and cssclass properties to the new format.Command/Ctrl while navigating through files using the arrow keys will now open the file under the cursor.Shift-Enter inside a text property no longer creates an empty input.Ctrl-C.idb has been updated to version 8.0.2.yaml has been updated to version 2.7.0.document.body are now mirrored across all pop-out windows.ButtonComponent now automatically shows a loading spinner if the onClick event is async.window.open(url, '_external').processFrontmatter will no longer create a YAML alias.Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.9.
./link/to/file.png)."text" * 2) in formulas now reports an error.Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.8.
File#hasProperty() function. To check if a file has a property (regardless of value), use file.hasProperty("property"). In the filter menu, "exists" is no longer a valid operator. This was returning incomplete and incorrect results. Instead of "<property> exists", you will need to update your filters to say "file has property <property>".String#reverse and String#repeat functions.+ (e.g. list1 + list2).Command/Ctrl while navigating through files using the arrow keys will now open the file under the cursor..base files.Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.7.
file.backlinks.file:/// path (desktop only).file() and Link.asFile(). You can now also access properties from a file reference.__).null in frontmatter. This behavior is more consistent with text properties.: getting rendered as a link in properties.Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.6.
date > "2025-07-18").a && b).link() not working if URL has spaces.Includes all new functionality and bug fixes up to Obsidian Desktop v1.9.5.