opswhisperer41 downloadsKeep chosen notes pinned as tabs in the right sidebar so they are never replaced, with optional enforced reading view.
Keep chosen notes pinned as tabs in the right sidebar. They are never replaced, and you can optionally force them to stay in reading view.
Obsidian lets you pin a note in the sidebar, but it doesn't stay put. If you click a link inside it, open something from the quick switcher, or use a plugin while that tab is focused, Obsidian often reuses the sidebar tab or opens a new tab inside the sidebar. Eventually your reference note is gone.
Super Pin guards the tabs you choose:
Super Pin is different from plugins like Pinned Files, which keep a list of links in a sidebar panel. Super Pin keeps the note itself open and readable in the sidebar.
Pin a note in any of these ways:
To unpin, use Super Pin: Unpin current note, Remove pin from right sidebar in the file menu, or delete the pin in settings. By default, closing a pinned tab also removes the pin.
| Command | Description |
|---|---|
| Pin current note to right sidebar | Pins the active note. |
| Unpin current note | Removes the pin and closes its tab. |
| Toggle reading view enforcement for current pin | Overrides the global reading view setting for this pin. |
| Pick a note to pin | Fuzzy search for a note to pin. |
| Restore all pins | Reopens any pinned notes whose tabs are missing. |
No hotkeys are set by default. Assign your own under Settings → Hotkeys.
The native pin flag alone isn't enough, because several of Obsidian's code paths ignore it. Super Pin wraps these methods using monkey-around:
Workspace.getLeaf: when a Super Pin tab is focused, the main area is made active first, so new and reused tabs land there.Workspace.openLinkText: links that point at the pinned note itself are opened inside the pinned tab, for heading and block navigation.WorkspaceLeaf.openFile / WorkspaceLeaf.setViewState: anything that tries to put a different file or view into a pinned tab is redirected to the main area.MarkdownView.setState: keeps enforced pins in reading view.A layout-change safety net also re-pins and restores any pinned tab that changed anyway.
All wrappers only act on tabs Super Pin manages. They are removed when the plugin is disabled, and your tabs are left where they are.
Once the plugin is listed: Settings → Community plugins → Browse → search for "Super Pin", or open Super Pin in Obsidian.
Copy main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/super-pin/, then enable Super Pin under Settings → Community plugins.
npm install
npm run dev # watch build
npm run build # type check and production build
npm run lint # eslint with eslint-plugin-obsidianmd
For live testing, symlink this folder into a test vault at .obsidian/plugins/super-pin.
minAppVersion in manifest.json if needed.npm version patch (or minor / major). This bumps manifest.json, package.json and versions.json.git push --follow-tags. The release workflow builds the plugin and attaches main.js, manifest.json and styles.css to a GitHub release named after the tag.Release tags have no v prefix.