Autosave Control
unlistedby Miha Smrekar
Delay autosave until editing has stopped for a chosen number of seconds.
Obsidian Autosave Control
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.
Modes
1. Delayed Autosave
- 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.
2. Autosave Disabled
- 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).
- Closing a note or quitting Obsidian with unsaved changes will show a warning.
Workspace Layout Saves
- 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.
Status Indicator
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.
Settings
Save Delay
- Defines how long Obsidian waits after you stop editing before saving
- Only available in Delayed Autosave mode
Disable Autosave Completely
- Turns off all automatic saving
- Hides the delay setting
- Requires manual saves
Defer workspace layout saves
- Delays writes to
.obsidian/workspace.json - Helps reduce sync activity when switching notes
- Works independently of note autosave mode
Workspace layout save delay
- How long to wait before writing deferred layout changes
- Only used when Defer workspace layout saves is enabled
- Separate from the note save delay
Saved status color
- Status dot color when all changes are saved.
Pending status color
- Status dot color while changes are not saved.
Status icon size
- Size of the status bar dot in pixels.
Installation
-
Download the latest release from GitHub:
https://github.com/mihasm/obsidian-autosave-control/releasesPlease download obsidian-autosave-control.zip, not the source code.
-
Extract the
.zipfile. It should contain a main.js file and manifest.json file. -
Copy the contents into:
your-vault/.obsidian/plugins/autosave-control. -
In Obsidian:
- Open Settings ā Community Plugins
- Enable the plugin
Important Notes
- 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.
Testing
Desktop
Setup:
- Run
npm install. - The first test run downloads Obsidian into
.obsidian-cache/.
Run tests:
npm run wdio
Run one specific 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"
Android
Setup:
- You need the Android command-line SDK tools installed, specifically:
adbemulator
- You need at least one Android Virtual Device already created on your machine.
- By default this suite tries to start an emulator named
obsidian_test. - If you use a different AVD name, export
OBSIDIAN_ANDROID_AVDbefore running the suite.
npm run wdio:android
with different AVD:
export OBSIDIAN_ANDROID_AVD="avd_name" && npm run wdio:android
License
MIT ā see LICENSE
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.