Shota Shirai810 downloadsNotion-style review comments stored as CriticMarkup. AI-friendly format for LLM-assisted editing.
日本語版 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.
The original {==text==}{>>shirai|2026-05-13: please rewrite<<} has an issue.
{==...==} — highlighted span{>>author|date: comment<<} — comment metadataIn 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.
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.
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:
Author name to your own nameThe 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.
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:
Review Comments: Add comment to selectionCmd + Shift + M)Open the comments panel from the left ribbon (speech-bubble icon) or via Review Comments: Open comments panel.
Jump → jump to the corresponding location in the documentResolve button → replace {==text==}{>>...<<} with text (deletes the comment, keeps the original text)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.
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.