Giuseppe51 downloadsAnnotate Markdown and PDF text with highlights, margin notes, and a review sidebar.
Siden adds annotations to Markdown notes and PDFs in Obsidian.
Select a passage, write a Markdown comment in the sidebar, and return to it later. Markdown annotations can also appear beside the text as margin cards.
PDF annotations use sidebar comments and highlights only. Margin cards are available for Markdown notes.
Once Siden is accepted into the community plugin directory, install it from Settings → Community plugins → Browse.
For manual installation, download main.js, manifest.json, and styles.css
from the same GitHub release and copy them into:
<vault>/.obsidian/plugins/siden/
Reload Obsidian, then enable Siden under Settings → Community plugins.
Ctrl/Cmd+Enter to save.Run Siden: Add annotation to current document without selecting text.
Run Siden: Open annotations or use the message icon in the ribbon.
The sidebar can show annotations for the current file or the entire vault. Use its search box and status filter to find open, resolved, or orphaned annotations.
Siden lets you configure:
Margins automatically choose the side with more space. They are hidden when the Siden sidebar is open or when neither side has enough room.
Annotations are stored as individual Markdown files under:
.siden/annotations/
Deleting an annotation moves it to .siden/trash/. Source Markdown and PDF
files are never modified.
Run Siden: Export all annotations to Markdown to create a readable export
under .siden/exports/.
.siden/.PDF selection and highlight positioning integrate with Obsidian's internal PDF viewer DOM because the public plugin API does not expose those features. An Obsidian update can therefore require a compatibility update to Siden.
Requires Node.js 24 or newer.
npm ci
npm run lint
npm test
npm run build
The production build writes main.js to the repository root.
npm version patch, npm version minor, or npm version major.0.2.0 (without a v
prefix).main.js, manifest.json, and
styles.css.The version in package.json, manifest.json, the Git tag, and the GitHub
release must match exactly.