This plugin gives you full control over how Obsidian.md saves your notes.
By default, Obsidian saves every ~2 seconds while you type. While convenient, this behavior can cause issues such as:
- Sync conflicts with cloud storage (e.g. Google Drive, Dropbox, Proton Drive, ...)
- Performance problems with large files
- Issues when working on network drives
- Increased battery usage
This plugin allows you to change that behavior.
- You type normally.
- The save timer resets on every edit (per file).
- Obsidian saves once, only after you stop editing for the configured delay (by default 10 seconds).
This reduces unnecessary writes and avoids constant file updates.
- No automatic saving occurs.
- Files are saved only when you manually trigger a save.
- You must use the Save File command (assign a hotkey if needed).
- Quitting Obsidian or closing its window with unsaved changes shows a warning that lists the affected notes.
- Switching notes in a tab or closing a note tab does not prompt: your unsaved changes are kept in memory and restored when you reopen the note.
- Hover the status-bar indicator to see the list of notes with unsaved changes.
- Obsidian also saves layout state to
.obsidian/workspace.json. - Switching notes can update that file even when note content does not change.
- This plugin can delay those writes too.
The plugin shows save state in the status bar:
🔵 Blue — Unsaved changes pending
🟢 Green — All changes saved
Colors and the size of the icon can be customized in settings.
- Defines how long Obsidian waits after you stop editing before saving
- Only available in Delayed Autosave mode
- Turns off all automatic saving
- Hides the delay setting
- Requires manual saves
- Delays writes to
.obsidian/workspace.json - Helps reduce sync activity when switching notes
- Works independently of note autosave mode
- How long to wait before writing deferred layout changes
- Only used when Defer workspace layout saves is enabled
- Separate from the note save delay
- Status dot color when all changes are saved.
- Status dot color while changes are not saved.
- Size of the status bar dot in pixels.
This plugin is available in the official Obsidian Community Plugins directory:
https://community.obsidian.md/plugins/autosave-control
- In Obsidian, open Settings -> Community plugins.
- Select Browse.
- Search for
Autosave Control. - Install the plugin.
- Enable the plugin.
This plugin can be installed and auto-updated with BRAT (Beta Reviewers Auto-update Tester):
- In Obsidian, install BRAT from Settings -> Community plugins -> Browse.
- Open the command palette and run
BRAT: Plugins: Add a beta plugin for testing (with or without version). - Enter this repository path:
mihasm/obsidian-autosave-control - Choose
Latest versionif you want BRAT to keep the plugin updated automatically. - Confirm the install.
BRAT installs the plugin from this repository's GitHub releases and can update it for you later.
-
Download the latest release from GitHub:
https://github.com/mihasm/obsidian-autosave-control/releases -
Create this folder in your vault if it does not exist:
your-vault/.obsidian/plugins/autosave-control -
Download
main.js,manifest.json, andstyles.cssfrom the release and place them in that folder. -
In Obsidian:
- Open Settings → Community Plugins
- Enable the plugin
- Unsaved changes are kept in memory until written to disk.
- If Obsidian or your system crashes before saving, changes may be lost.
- If workspace layout deferral is enabled, recent layout state can also be lost after a crash until
workspace.jsonis flushed. - Some Obsidian features and community plugins only update after a save occurs. For example, the Outline (headings) pane on the right won't reflect new headings until the autosave fires. Because this plugin delays or disables saves, expect similar lag in any feature or plugin that reacts to file writes rather than in-editor changes.
- Run
npm install.
Desktop:
npm run wdio:desktopAndroid:
npm run wdio:androidAll tests:
npm run wdioOne test:
npx wdio run ./wdio.conf.mts --spec ./test/specs/autosave-control.e2e.ts --mochaOpts.grep "stops typing and waits for exactly one save after the configured delay"MIT — see LICENSE