Jiwoo Roh85 downloadsMargin comments stored inline in your Markdown, with a formatting toolbar, custom highlight colors, and an underline style.
This is a fork of kylemcd/obsidian-document-comments (Document Comments) by Kyle McDonald. All credit for the original plugin goes to the original author. This fork adds the features listed below. The original work is used under the MIT License; see LICENSE.
Notion-style Comments adds inline comments to Obsidian notes. It shows each comment as a card beside the text on desktop and iPad.
Install it from the Obsidian community plugin directory.
If you like it,
The plugin stores each comment inside its Markdown file as an HTML comment. Other editors, version control tools, and agents can read the comment.
For more Notion-style editing, check out Notion Selection Toolbar, another plugin of mine.

Select text while you write or edit a comment, and a small toolbar appears above the comment box:

Choose how commented text is marked in your notes.


Pair this fork with Notion Selection Toolbar, another plugin of mine. Select text in a note and choose Comment from its floating toolbar to start a comment.

When you export a note to PDF, each commented passage is highlighted with a footnote number, and its comment (with replies) is printed beside it in a right-hand margin column. Turn it off with Show comments in PDF export in settings, or run Toggle comments in PDF export from the command palette. Resolved comments are included only when Show resolved comments is on.
When the window is too narrow for the margin (or an iPad in portrait), comment cards hide and appear when you hover over or tap the highlighted text, so the note keeps its full width.

In settings, set Profile photo to an image from your vault (Choose…) or an image link. It shows as a small round photo next to your name on your own comments and replies. Turn off Show my profile to hide your name and photo on your comments.
Turn off Show author names in settings to hide who wrote each comment and reply, on comment cards and in highlight hover previews.
Long comments show in full when there's room. A comment folds to a "more" preview only when it would run into the next card, or when it's taller than the window (then it offers Open in sidebar →). Use less / more to fold or unfold one yourself; your choice stays until you click the other.
iPad shows comment cards in the margin, like desktop. Phones show highlights only, and you read and add comments in the sidebar and a pop-up.
The plugin uses an anchor pair and a comment block:
We should <!--c:k3f9-->ship on Friday<!--/c:k3f9--> regardless of the QA timeline.
<!--co:k3f9 by:kyle at:2026-06-17T10:00:00.000Z status:open quote:"ship on Friday"
kyle (2026-06-17T10:00:00.000Z): I thought we agreed Thursday?
sam (2026-06-17T10:05:00.000Z): Thursday is better for QA.
-->
The <!--c:ID--> and <!--/c:ID--> markers identify the selected text. The matching <!--co:ID ...--> block stores the comment thread.
Markdown renderers hide these HTML comments. Tools that read the source file can find each comment and its selected text.
Comments on fenced code blocks use the same format. The comment block also stores the selected line range and exact code text.
A comment's color or style override (set from its ⋯ menu) is stored in the same header, for example color:blue style:underline.
An empty comment uses the same markers. Its comment block has no thread lines:
We should <!--c:h7k2-->ship on Friday<!--/c:h7k2--> regardless of the QA timeline.
<!--co:h7k2 by:kyle at:2026-06-17T10:00:00.000Z status:open quote:"ship on Friday"
-->
Notion-style Comments requires Obsidian 1.7.2 or newer. It supports desktop and mobile.
Install it from Obsidian:
Use BRAT to install a pre-release build:
jiwooroh/obsidian-document-comments.BRAT installs the latest GitHub release and checks for updates.
main.js, manifest.json, and styles.css from the latest release.<your-vault>/.obsidian/plugins/notion-style-comments/.Create the notion-style-comments directory if it does not exist.
git clone https://github.com/jiwooroh/obsidian-document-comments
cd obsidian-document-comments
npm install
npm run build
Copy or link main.js, manifest.json, and styles.css to <your-vault>/.obsidian/plugins/notion-style-comments/.
Then enable Notion-style Comments in Community plugins.
Press Shift+Enter to add a line break. On a phone, use the dialog to save the comment.
Notion-style Comments disables empty comments by default.
The plugin highlights the selected text and shows a comment card. The card shows Empty until you add text.
Select Empty to add the first comment text. Use the card menu to delete the empty comment.
You can also select all the highlighted text and run Add comment again. Write text to add the first comment. Submit the empty field to delete it.
When Allow empty comments is off, an empty field closes without a change. Existing empty comments remain available. You can add text or delete them.
The optional Commander plugin can add commands to the editor menu.
Notion-style Comments: Add comment.The command now appears at the bottom of the editor right-click menu. Select text before you use it.
The Reading view command cannot add comments to embedded content.
Select a card to open its reply field. Each entry has react, resolve, and reply buttons, plus a ⋯ menu to change the comment's color or style, or delete it. Click your own comment text to edit it.
Use the Open comments sidebar command or ribbon icon to show all comments in the active note.
Use Toggle comments to show or hide all cards and highlights. Use Toggle resolved comments to show or hide resolved comments. Use Toggle comments in PDF export to include or leave out comments when exporting to PDF.
Open Settings → Notion-style Comments. Set Author to the name that the plugin adds to new comments.
The plugin uses me when the Author setting is empty. Your profile photo and Show my profile apply to comments written under this name.
| Setting | What it does | Default |
|---|---|---|
| Author | Name added to your new comments | me |
| Profile photo | Small round photo next to your name on your own comments (vault image or link) | None |
| Show comments | Show the comment cards and highlights | On |
| Show my profile | Show your name and photo on your own comments | On |
| Show author names | Show who wrote each comment and reply, on cards and hover previews | On |
| Show resolved comments | Keep resolved comments visible | Off |
| Allow empty comments | Let a comment be saved without text (highlight only) | Off |
| Show comments in PDF export | Print comments in a margin column when exporting to PDF | On |
| Annotation style | Highlight, Underline, or Highlight + underline | Highlight |
| Highlight color | Theme default or one of Notion's 9 colors | Theme default |
| Highlight intensity | How bold the highlight color is (0% = Notion's exact color) | 0% |
| Custom highlight colors | Your own hex for each color, per light/dark theme | Notion's palette |
Desktop and tablet (iPad) views show cards in a margin beside the note. The cards align with their selected text and avoid overlaps.
Phone views show the highlights without a margin. Use the sidebar to read and manage comments there.
Phones use a dialog for new comments. The stored comment format stays the same on all devices.
This repository includes an agent skill for the comment format:
skills/document-comments/
The skill explains how to read and edit comments without damaging their markers. It also includes a validation script:
python3 skills/document-comments/scripts/validate_comments.py path/to/file.md
The plugin does not use the network, telemetry, or accounts. It stores all comment data in the note.
npm install
npm run dev
npm run build
npm run check
npm test
npm run dev watches the source files and rebuilds main.js.npm run build checks types and creates a production bundle.npm run check checks formatting, lint rules, types, and tests.npm test runs the test suite.Update manifest.json, package.json, versions.json, and CHANGELOG.md before a release. The tag must match the version in manifest.json exactly, with no leading v.
Build, then create the GitHub release with the plugin files attached, using that version's CHANGELOG section as the notes:
npm run build
gh release create 0.2.9 --title 0.2.9 --notes "…" main.js manifest.json styles.css
Notion-style Comments uses the MIT License. See LICENSE.