README file from
GithubRedline
Add PR-style review comments to any document in your Obsidian vault. Anchor comments to specific paragraphs, headings, list items, images, code blocks, callouts, or tables — your source documents stay clean because comments live in a sibling .review.md sidecar file.
Demo

Why
Obsidian is great for writing long documents collaboratively (with yourself, your future self, or external tools), but it has no built-in equivalent to a GitHub pull-request review. This plugin adds that workflow:
- Read a document.
- Drop comments where something needs to change.
- Hand the document plus its
.review.mdsidecar to any tool — a human, a script, an AI assistant — that can act on the comments. - The tool resolves each comment by editing the source doc and flipping the comment status in the sidecar.
The plugin is intentionally protocol-based: it stores comments in a documented markdown sidecar format and does not bind to any specific downstream tool. Anything that can read markdown can participate.
Features
- Add review comment on any paragraph, heading, list item, image, code block, callout, or table.
- Block-reference anchoring: comments are pinned to Obsidian's native
^blockrefmarkers, so they survive document reflow. - Markdown rendered comment bodies in both the sidebar cards and the editor hover tooltip — bold, links, lists, code spans, inline images all just work.
- Edit existing comments from the sidebar; Cmd/Ctrl+Enter saves the modal.
- Hover anywhere in the anchored block to see the comment as a tooltip (paragraph-wide, code-block-wide, table-wide, callout-wide).
- Per-comment due dates with an overdue indicator (red border, dot, and an "overdue" sidebar filter).
- Gutter markers in the editor: amber for
open, gray forresolved, red forstaleoroverdue. - Review sidebar for the active document with filters (all / open / overdue / resolved / stale), jump-to-anchor, edit, toggle status, reattach, and delete.
- Cross-doc dashboard lists every
.review.mdin the vault with per-doc open / stale / overdue counts, sortable columns, and click-through to the source doc. - Stale anchor detection + Reattach — if the anchor block is edited away, the comment is flagged stale; saved anchor context lets you reattach with one click.
- Source-doc rename / move / delete are mirrored on the sidecar so reviews follow the document around (toggle in settings).
- Jump to next open comment — keyboard-friendly navigation through unresolved items.
- Per-document or central-folder sidecar storage (settings).
Installation
From the Obsidian community catalog (once published)
Settings → Community plugins → Browse → search "Redline" → Install → Enable.
Manual install
- Build (or download a release):
git clone <this-repo> cd redline npm install npm run build - Copy
manifest.json,main.js, andstyles.cssto<vault>/.obsidian/plugins/redline/. - Reload Obsidian → Settings → Community plugins → enable "Redline".
Usage
Add a comment
- Place your cursor on a paragraph (or select within it), or click an image/code-block/heading/etc.
- Open the command palette (
Cmd/Ctrl + P) → Redline: Add comment at cursor. - Type your comment (markdown is supported). Optionally pick a due date. Press Cmd/Ctrl+Enter to save.
The plugin will:
- Inject a
^blockrefanchor on the target block if it doesn't have one (reusing an existing anchor when present). - Create (or update)
<doc>.review.mdnext to your document. - Show an amber gutter dot next to the anchored line and a card in the sidebar.
Open the review sidebar
Click the speech-bubble ribbon icon on the left, or run Redline: Toggle sidebar.
Open the cross-doc dashboard
Click the layout-dashboard ribbon icon, or run Redline: Open dashboard. You get a sortable table of every doc that has open / stale / overdue comments — click a row to jump into that doc.
Resolve, edit, reattach a comment
In the sidebar:
- Resolve / Reopen — flips status between
openandresolved. - Edit — open the modal again to update the body or due date.
- Reattach — only shown for stale comments; uses the saved anchor context to find the original line and re-injects a fresh anchor.
Hand off to a downstream tool
The <doc>.review.md sidecar is a plain, documented markdown file. Any tool you trust to edit your documents — a script, an AI assistant, a coworker — can read the open comments and apply the requested changes.
Settings
- Sidecar location — alongside the source doc (default) or in a central
_reviews/folder. - Central folder name — vault-relative folder used when central layout is selected.
- Mirror source-doc lifecycle — when on (default), renaming, moving, or deleting a source doc also renames/moves/deletes its sidecar.
Commands
| Command | What it does |
|---|---|
| Redline: Add comment at cursor | Create a new comment anchored to the current block. |
| Redline: Toggle sidebar | Show/hide the review sidebar on the right. |
| Redline: Open dashboard | Open the cross-doc dashboard tab. |
| Redline: Jump to next open comment | Move the cursor to the next unresolved comment in the active doc. |
Development
npm install
npm run dev # watch mode
npm run build # production build
npm test # vitest unit tests for parser + block-id logic
Tests cover the sidecar parser/serializer round-trip and the block-id injection logic. UI components are verified manually inside Obsidian.
License
MIT — see LICENSE.