A linter for your .bib file. Every entry is checked against the real scholarly record - catch fabricated citations, retractions, and missing open-access copies as inline diagnostics, before you submit.
Free extension for VS Code, Cursor, Windsurf, and Positron. No API key required. A thin client over the Scholar Sidekick API.
Most tools in your writing stack already insert and format citations well. The risky moment is the bibliography you're about to submit: a .bib assembled from a collaborator's references, an old project, or an AI-generated reading list, where a claimed title may not match what its identifier actually resolves to. This extension lints that file in place - so a fabricated or retracted reference is caught in the editor, not by a reviewer.
This is not a citation inserter. Quarto's editor already looks up a DOI and inserts the citation; Zotero + Better BibTeX manages your library and exports .bib. The extension adds the one thing neither does: a claimed-vs-resolved fabrication check, plus retraction and open-access status, on the references you already have.
.bib file and save it - or run Scholar Sidekick: Verify Bibliography from the Command Palette.Open-access status and the best legal URL are shown in the hover card (enable scholarSidekick.checkOpenAccess) rather than as a squiggle - flagging every open-access paper would be noise in a verifier.
VS Code via the Visual Studio Marketplace, and Cursor, Windsurf, Positron, and VSCodium via Open VSX (the registry those editors use). Positron is where many Quarto and R Markdown authors write, so the linter meets that workflow directly.
DOI, PMID, PMCID, ISBN, ISSN, arXiv ID, and ADS bibcode, read from the standard BibTeX fields. Entries with no resolvable identifier are reported as unverifiable - the extension reports its coverage honestly rather than implying a clean bill when part of the file could not be checked.
https://scholar-sidekick.com (/api/verify, /api/retraction-check, /api/oa-check).Search “Scholar Sidekick” in the Extensions panel of your editor, or install from a registry:
Verification runs automatically on save (toggle with scholarSidekick.verifyOnSave). Source on GitHub (MIT licensed): github.com/mlava/scholar-sidekick-vscode.
It turns your .bib file into a linted document. Open or save a BibTeX file and each entry is checked against the Scholar Sidekick API; problems appear as native diagnostics (squiggles + the Problems panel) and a status-bar tally, with full detail on hover: a possible fabricated citation, a retraction or correction, an unresolved identifier, or an open-access copy.
They do different things, and the extension deliberately doesn't duplicate them. Quarto's editor inserts citations from a DOI lookup; Zotero + Better BibTeX manages your library and exports .bib. Neither checks whether the entries you already have are real. The gap this fills is the verify layer: a claimed-vs-resolved fabrication check, plus retraction and open-access status, on the bibliography that's about to go into your manuscript. It is not a citation inserter.
When an entry has a claimed title and an identifier, the extension cross-checks the claim against the metadata the identifier actually resolves to (via Crossref, PubMed, and OpenAlex). The failure mode documented by Topaz et al. (Lancet, 2026) - a real DOI paired with an invented title and authors - shows up as a red diagnostic with the resolved title, so you can see exactly what the identifier really points to.
VS Code (from the Visual Studio Marketplace) plus Cursor, Windsurf, Positron, and VSCodium (from Open VSX, which those editors use). Positron in particular is where many Quarto and R Markdown authors work. Anywhere you edit a .bib, the linter runs.
Yes. No account, no API key, no payment. The extension uses the anonymous tier of the Scholar Sidekick API. Set a Scholar Sidekick API key (ssk_…) in the extension settings for higher rate limits if you verify large bibliographies.
DOI, PMID, PMCID, ISBN, ISSN, arXiv ID, and ADS bibcode, read from the standard BibTeX fields (doi, pmid, isbn, eprint + archivePrefix, etc.). Entries with no resolvable identifier are reported as unverifiable rather than guessed at.
The extension sends only the bibliographic entries it checks - to https://scholar-sidekick.com over HTTPS (/api/verify, /api/retraction-check, /api/oa-check). It does not read anything else in your workspace. No API key required for the anonymous tier. Inputs are not retained or used for training; see the privacy policy for full disclosure.
GitHub issues on the extension source at github.com/mlava/scholar-sidekick-vscode. Include your editor and version, the extension version, and the x-request-id from a failing response for API-related issues.