PDF Review for Coding Agents
Review a PDF the way you would with a pen, then let your coding agent apply the changes.
You highlight text (or a figure) in VS Code and write a comment. Every comment becomes one
line in a Markdown file next to the PDF, with the page, the quoted text and, for LaTeX
documents, the exact file.tex:line it comes from. Point your agent at that file and it goes
straight to the right line of the source.

Why
Coding agents (Claude Code, Codex, Copilot, Cursor…) are good at editing LaTeX. The hard part
is telling them where.
- If you describe the change in chat ("in the abstract, the sentence that says we beat every
baseline…"), you spend time writing context and the agent spends tokens searching the project.
- If you annotate the PDF in a regular viewer, the comments stay inside the PDF, where the agent
can't read them.
This extension closes that gap. You review the rendered PDF, which is what you actually want
to read, and the agent gets a short, structured list of located comments:
- [#1](https://github.com/adgiz05/pdf-review-for-agents/issues/1) p1 paper.tex:14 "Our method clearly outperforms every baseline by a wide margin on all benchmarks we tried." :: Overclaim: we only evaluate on two datasets. Soften it and give the actual numbers.
- [#2](https://github.com/adgiz05/pdf-review-for-agents/issues/2) p1 paper.tex:25 "Prior work has studied annotation tools extensively" :: Cite the actual papers instead of a placeholder reference.
- [#4](https://github.com/adgiz05/pdf-review-for-agents/issues/4) p1 [area 0.25,0.535,0.5,0.215] paper.tex:45 :: Add error bars (std over seeds) and label both axes with units.
The file also starts with a short paragraph that explains this format to the agent and asks it to
justify each change in its reply. All you have to say is:
Address the notes in paper.pdf.notes.md.
Workflow
- Compile your paper with SyncTeX (
-synctex=1; latexmk and LaTeX Workshop do it by default).
On Overleaf, download the .synctex.gz from Logs and output files and put it next to the PDF.
- Open the PDF in VS Code. Select text, or drag a rectangle over a figure, and click the speech
bubble to comment.
- Ask your agent to address the notes. It edits the
.tex files and recompiles.
- The viewer reloads by itself. Highlights are found again by their quote, and a note whose
text no longer appears is flagged, which usually means it has been handled.
A complete example lives in example/: a small paper, its PDF and a notes file.
Features
- Fast on long documents. Built on pdf.js. Only the visible pages are rendered and distant
ones are released, so memory stays flat and a 500-page document opens in about a second.
- Text and area comments. Select text, or drag from a spot without text to box a figure,
table or image (the ▭ button lets you draw a box over text too).
- Source locations via SyncTeX. Each note gets
file.tex:line, parsed from
paper.synctex.gz directly, with no TeX installation required.
- Token-efficient notes. One line per note, long quotes shortened to
"start…end", and no
coordinates for text highlights.
- Live reload. Recompiling reloads the PDF and keeps your position. Editing the notes file
by hand updates the panel.
- Hover a highlight to read its comment, and click it to jump to the note. ⇅ limits the
panel to the notes of the visible pages.
Works with any PDF. Without SyncTeX, notes simply carry the page and the quote.
The notes file
paper.pdf.notes.md is the only file the extension writes. Each line follows this format:
- #<id> p<page> [area x,y,w,h] <file.tex>:<line> "<quote>" :: <comment>
| Field |
Meaning |
#<id> |
Stable note id, handy to reference in the agent's reply |
p<page> |
PDF page |
[area x,y,w,h] |
Only for area comments: the box as fractions of the page, from the top-left corner |
<file.tex>:<line> |
LaTeX source location from SyncTeX (may be off by a line or two) |
"<quote>" |
Highlighted text; long quotes are shortened to "start…end" |
<comment> |
Your comment; ⏎ marks a line break |
Plain text, so you can commit it, diff it, or edit it by hand.
Install
- VS Code Marketplace: search for PDF Review for Coding Agents, or run
code --install-extension adgiz05.pdf-review-for-agents.
- Open VSX (VSCodium, Cursor, Windsurf…): search for the same name.
- Manually: download the
.vsix from the
releases page and run
code --install-extension pdf-review-for-agents-<version>.vsix.
The extension registers itself as the default viewer for .pdf files. If you use another PDF
extension, choose Reopen Editor With… → PDF Review.
Privacy
Everything runs locally. The extension makes no network requests and collects no telemetry. It
only reads the PDF and its .synctex.gz, and only writes <file>.pdf.notes.md.
Development
npm install # fetches pdfjs-dist and copies it into media/pdfjs
npm run package # builds the .vsix
Press F5 to open an Extension Development Host. After changing extension.js, restart it
(Ctrl+Shift+F5); reloading the editor tab is not enough.
License
MIT