Review Comments
approvedby Shota Shirai
Notion-style review comments stored as CriticMarkup. AI-friendly format for LLM-assisted editing. - This plugin has not been manually reviewed by Obsidian staff.
Obsidian Review Comments
日本語版 README: README.ja.md
Notion-style review comments for Obsidian. Select text, click the floating button, and add a comment. Comments are stored directly in .md files as CriticMarkup, so Claude / GPT can read the file and apply the requested edits without any export step.
Comment format
The original {==text==}{>>shirai|2026-05-13: please rewrite<<} has an issue.
{==...==}— highlighted span{>>author|date: comment<<}— comment metadata
In the note itself the markup is not shown. The highlighted span is rendered with a small bubble icon next to it, and clicking the icon opens a popover with the comment and a delete button. Put the cursor inside the span and the raw markup appears, so it can still be edited by hand. Newlines inside a comment are stored as \n, which keeps one comment on one line and keeps the surrounding Markdown intact.
Build
Prerequisites: Node.js 18+ (includes npm) and git.
git clone https://github.com/ShotaShirai1719/obsidian-review-comments.git
cd obsidian-review-comments
npm install
npm run build
npm run build runs a production esbuild bundle of the TypeScript sources in src/ (entry point src/main.ts) into a single main.js at the repo root. Together with the existing manifest.json and styles.css, that's everything Obsidian needs to load the plugin — see Install below for where to put them.
For active development, use watch mode instead, which rebuilds main.js automatically on save:
npm run dev
If you symlinked the repo into your vault's plugins folder (see Install), just reload Obsidian (Ctrl/Cmd + R in the developer console, or disable/re-enable the plugin) after each rebuild to pick up changes.
Install
Let $VAULT be the absolute path to your Obsidian vault:
mkdir -p "$VAULT/.obsidian/plugins/review-comments"
cp main.js manifest.json styles.css "$VAULT/.obsidian/plugins/review-comments/"
Or, for development, symlink the working directory:
ln -s "$(pwd)" "$VAULT/.obsidian/plugins/review-comments"
Then in Obsidian:
- Settings → Community plugins → enable Review Comments
- Settings → Review Comments → set
Author nameto your own name
Language
The plugin UI is available in English, Japanese, Spanish, Chinese (Simplified), French, German, Portuguese, and Korean. Traditional Chinese is not translated yet, so zh-TW and zh-HK fall back to English rather than to Simplified Chinese. By default the UI follows Obsidian's own display language (Settings → General → Language); you can override it under Settings → Review Comments → Language.
Switching the language updates the floating bar, the comment modal, notices, the side panel and its tab title, and the settings tab straight away. Command names and the ribbon icon tooltip are registered once at load, so reload Obsidian to update those.
Usage
- Drag-select a span of text
- Click the 💬 Comment button that appears near the selection
- Enter your comment in the modal. Multiline notes and bullet lists are supported.
To change a comment you have already written, open the side panel, press Edit on its card, rewrite the body and press Save (Cmd/Ctrl + Enter saves, Esc cancels). The author and the date recorded on the comment are kept as they were. If the note itself changed while the card was open, the edit is refused instead of overwriting the wrong range.
Alternatively:
- Select text → Command palette →
Review Comments: Add comment to selection - Assign a hotkey (recommended:
Cmd + Shift + M)
Side panel
Open the comments panel from the left ribbon (speech-bubble icon) or via Review Comments: Open comments panel.
- Click a card or
Jump→ jump to the corresponding location in the document Resolvebutton → replace{==text==}{>>...<<}withtext(deletes the comment, keeps the original text)
AI integration
Pass the .md file directly to Claude Code or another LLM with a prompt like:
Apply the edits described in the CriticMarkup comments (
{==...==}{>>...<<}) in this file. Remove the CriticMarkup once each comment has been applied, and restore the highlighted spans to plain text.
This closes the loop: comment in Obsidian → hand off to an LLM → get a clean diff back.
License
Any modified version that you distribute, or expose over a network, must be made available under the same license. If that's a constraint for your use case, please open an issue before integrating this plugin into a closed product.
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.