What’s new in 1.12.4
Other versions
What’s new in 1.12
Released on February 27, 2026
New
Obsidian CLI
This release introduces the Obsidian CLI, a command line interface that lets you control Obsidian from your terminal for scripting, automation, and integration with external tools.
For installation help, check the troubleshooting section for the platform-specific information.
Image resizing
Images in Live Preview can now be resized by dragging from the corner. Double-click the corner to reset the image size.
Automatic attachment cleanup
When deleting a file, a prompt will ask if you would also like to delete its attachments. A new setting in Files & Links allows you to configure this behavior (choose “Always”, “Ask every time”, or “Never”).
Improvements
Bases
- Added a search toolbar button to filter query results.
- Added the ability to import files into Bases via drag and drop.
- Right-clicking on a single row in table view now shows context menu items related to that file.
File Explorer
- Copy and paste operations are now supported using
Ctrl-C/Ctrl-V(Cmd-C/Cmd-Von macOS).
Editor
- Added new menu items when you right-click in the empty space next to the editor:
- Toggle line numbers
- Toggle inline title
- Fixed missing space after blockquotes.
- Fixed styling of bold links.
- Image size is no longer treated as display text when dragging a link.
Other
- Added detection for backlinks in Canvas files. They now appear in the Backlinks view, and count as links in the Graph view.
- “Change vault…” has been renamed to “Manage vaults”.
- Added a new “Change vault…” command to quickly switch between vaults via the keyboard.
- Added a new “Open vault…” command to open an existing vault via the keyboard and keep the current vault open.
- Alt-clicking a file in the File Explorer now adds the previous active item to the selection.
- Quick switcher: Dragging results is now supported.
- Added new “Copy image” menu item when right-clicking on an image.
- Copying text from the editor now includes HTML formatting, making it easier to paste into apps like Google Docs.
- Obsidian Sync now logs when files were skipped for being too large.
- Improved fuzzy search results when the query contains spaces.
- Opening files in an external application now shows a confirmation dialog for added safety.
- Added a warning when attempting to open an executable file.
- Added new app translations.
No longer broken
Other
- Keychain: Added handling for when encryption is unavailable on some Linux machines.
- Fixed issue where layout was not always saved when the app is closed.
- Fixed issue where selecting text near a link or tag would incorrectly trigger the link or tag token.
- Fixed issue where closing a pop-out window with active notices would cause them to move to the main window and never disappear.
- Added a new
uniqueURI action. - Fixed the outline view flickering while typing.
- Fixed scroll position not updating after changing the row height in Bases table view.
- Fixed “More options” menu not closing when clicking the ”…” button in a pop-out window.
- Fixed list properties not showing edit and remove options in the context menu when right-clicking a link inside a list item.
- File Explorer: Fixed “Duplicate” menu item generating an incomplete folder name when duplicating a folder that includes ”.” in the name.
Developers
- The installer has been updated to use Electron v39.7.0 (requires downloading the latest installer).
- We’ve updated how our translation files are created and bundled with the app. For translators, see the updated instructions on our translations repository.
- Added theming support for corner shapes using
corner-shapeCSS property. Replaced-electron-corner-smoothing. Requires Chromium 139 and Obsidian 1.11+. - macOS: New
traffic-lights-offset-xand--traffic-lights-offset-yCSS variables to configure where the traffic lights appear in the window frame. These offsets are now applied immediately when the app loads. - We’ve introduced a breaking API change to
BaseOption#shouldHide. This function no longer receives the config as an argument. Options should be accessed fromBasesViewRegistration.optionsinstead.
registerView('my-view-id', {
name: 'View Name',
icon: 'my-icon',
factory: () => new MyView(),
options: (config: BasesViewConfig) => ({
// Here ^
})
});- Added
appendBinarymethod to the vault and adapter API.
A complete list of previous changes can be found on our changelog.