Scroll Anchor
pendingby senjanson
Remembers scroll and cursor position for every note across all tabs. Restores all open tabs on app restart — great for mobile.
Scroll Anchor
An Obsidian plugin that anchors your scroll and cursor position in every note, and restores them all when the app restarts.
Features
- Per-file position memory: Independently saves cursor and scroll position for each note
- Multi-tab restore: All open tabs restore their positions on app restart, not just the last active one
- Reading mode support: Saves and restores scroll position in both editing and reading modes
- Mobile-first design: Aggressive save strategy for iOS/Android where the app may be killed by the system — you never lose your reading spot
- Configurable: Adjustable save interval, restore delay, and maximum stored entries
How It Works
Positions are saved to a JSON file inside your vault. Saving happens:
- Continuously while you read (every 200ms for the active tab, flushed to disk every 5s)
- When switching between tabs
- When the app goes to background (critical for mobile)
- On app quit
When the app restarts, every previously open tab is restored to its saved position.
Installation
From Obsidian Community Plugins (Recommended)
- Open Settings → Community plugins → Browse
- Search for "Scroll Anchor"
- Click Install, then Enable
Manual Installation
- Download
main.jsandmanifest.jsonfrom the latest release - Create a folder
scroll-anchorinside your vault's.obsidian/plugins/directory - Copy the downloaded files into that folder
- Restart Obsidian and enable the plugin in Settings → Community plugins
Settings
| Setting | Description | Default |
|---|---|---|
| Data file name | Path to the JSON file that stores positions | .obsidian/plugins/scroll-anchor/cursor-positions.json |
| Delay after opening a note | Delay before restoring scroll position (increase if interfering with #header links) | 100 ms |
| Save interval | How often positions are flushed to disk | 5000 ms |
| Max entries | Maximum number of file positions to remember | 1000 |
Compatibility
- Obsidian v0.9.12+
- Desktop (Windows, macOS, Linux) and Mobile (iOS, Android)
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.