Skip to content

Markback for VS Code

Review Markdown like a doc — and keep the feedback in git. The Markback VS Code extension lets you comment on the rendered Markdown preview (and any file) with inline bubbles and replies. Every comment is saved to a plain-text .mb sidecar that lives next to the file and diffs cleanly in your pull requests.

It's the same .mb format used by the CLI, Python API, Node.js API, and the browser editor — no server, no account, no lock-in.

Install

From the Extensions view, search for Markback and click Install. Or from the command line:

bash
code --install-extension dandriscoll.markback-vscode

Marketplace listing: marketplace.visualstudio.com/items?itemName=dandriscoll.markback-vscode

Comment on the Markdown preview

  1. Open a Markdown file and open its preview (Cmd/Ctrl+Shift+V).
  2. Select some text in the preview, then click 💬 Comment.
  3. Type your feedback. A sidecar <filename>.mb appears next to the file.
  4. Commit it — the feedback now diffs in your PRs.

Reopen the file later and the 💬 badges are still there. Click one to read the thread or reply.

Restricted Mode: preview commenting uses VS Code command links, which are disabled in untrusted workspaces. Trust the workspace to enable it — the preview shows a banner when commenting is blocked.

Comment in any editor

You don't need the preview. Highlight text in any file, right-click → Markback: Comment on Selection (or press Cmd/Ctrl+Shift+M), and the selection's range gets a comment in the .mb sidecar.

The .mb sidecar

Comments are saved beside the file: essay.mdessay.md.mb. The sidecar is plain, human-readable text — hand-editable, lintable, and diffable in PRs:

mb
%markback 2

@id a1b2-c3d4
@by alice@example.com
@action created 2026-06-18T10:00:00Z alice@example.com
@file ./essay.md:3:5-3:18 <<< awkward phrasing

<<< is the whole syntax. Because it's just a .mb file, you can lint it with mb --lint, normalize it with mb --normalize, and round-trip it through the browser editor — see the format spec for the details.

When the commented selection is small enough to be manageable, the extension embeds the quoted source text inline under @file, so the comment is self-contained:

mb
@id e5f6-a7b8
@action created 2026-06-18T10:00:00Z alice@example.com
@file ./essay.md:3:5-3:18

the quick brown fox
<<< awkward phrasing

Resolving comments

Every comment records when it was created. From a comment thread's toolbar you can Resolve it (and later Reopen it); each action is saved as a timestamped @action line, and resolved threads are marked so you can tell at a glance what's still open. Resolution state lives in the .mb and survives reopening the file.

Settings

SettingDescription
markback.authorIdentifier written as @by on every comment. If empty, falls back to git config user.email, then to no @by header.
markback.inlineExcerpt.enabledEmbed the quoted source text inline when the selection is small enough. Default true.
markback.inlineExcerpt.maxLinesMax lines a selection may span to be embedded inline (default 10).
markback.inlineExcerpt.maxCharsMax characters a selection may contain to be embedded inline (default 600).
  • CLI How-Tos — lint, normalize, and add feedback from the terminal.
  • Python API and Node.js API — work with .mb files in code.
  • Try It — the browser editor, no install required.
  • Source & issues — the extension is open source (MIT), in the packages/markback-vscode directory.