README file from
GithubScholar Sidekick - Cite from any identifier (Obsidian plugin)
Paste a DOI, PMID, ISBN, arXiv ID, ADS bibcode, or PMCID into a note and replace it with a formatted citation. No reference manager required.
Backed by the public Scholar Sidekick API — a transparent, composable interface to authoritative scholarly metadata sources (Crossref, NCBI, arXiv, Open Library, ADS, WHO IRIS).
Already using a Zotero / BibTeX library inside Obsidian? The Citations plugin is excellent for that workflow. Scholar Sidekick is for the case before you have a curated library - you want a citation now, from an identifier you have right now.
Commands
| Command | What it does |
|---|---|
| Format selection as citation | Wraps the selected text (an identifier or text containing one) in a citation in your default style. |
| Replace identifier at caret with citation | Detects the identifier under or near the caret and replaces it (or appends, by setting). No selection required. |
| Insert citation… | Opens a modal: type/paste an identifier, pick from 5 quick styles or search 10,000+ CSL styles, insert at caret. |
| Export note citations to bibtex | Scans the active note for every identifier and saves a .bib file next to the note - ready to import into Zotero / Mendeley / EndNote. |
| Export note citations to ris | Same, but RIS format. |
| Check identifier at caret for retraction | Sends the identifier nearest the caret to the retraction checker (Crossref + Retraction Watch) and surfaces the result via a Notice. |
| Check identifier at caret for open access | Sends the identifier nearest the caret to the open-access checker (Unpaywall) and surfaces status + best legal copy via a Notice. |
| Check note citations for retractions | Scans the active note, dedupes identifiers, and opens a modal table with retraction status per item. Optional "Append summary at caret". |
| Check note citations for open access | Same, for open-access status. Modal lists each best legal copy link. |
| Verify selected citation | Opens a verifier modal pre-filled from the selection. Cross-checks the claimed title + identifier against Crossref, PubMed, OpenAlex. |
Supported identifiers
- DOI (bare or
doi.orgURL) - PMID (bare, labelled, or
pubmed.ncbi.nlm.nih.govURL) - PMCID (bare or
ncbi.nlm.nih.gov/pmc/articles/...URL) - ISBN (10 or 13)
- arXiv (modern
2301.07041or legacycs.CL/0301001) - ISSN
- ADS bibcode (within the modal - server-side detection)
The detection regexes are vendored from the upstream API source, with a build-time drift detector ensuring the vendored copy never falls out of sync with the canonical patterns.
Settings
- Default citation style - Vancouver, APA, AMA, IEEE, CSE built-in; the modal lets you persist any of 10,000+ styles.
- Output format - plain text or HTML. The five built-in styles emit text only; HTML applies to CSL styles selected via the search modal (those preserve italics, small caps, and other inline markup that survives in Obsidian's reading view). Selecting HTML with a built-in style falls back to text rather than failing.
- Replace mode - replace identifier in place, or append the citation after it.
- Include source provenance - sends
?provenance=1so each citation records which upstream registry supplied the metadata, plus the fetch timestamp and transform version. Adds a small payload to every response. - Include safety checks (retraction + open access) - sends
?checks=retraction,oaso each formatted citation arrives alongside its retraction status (Crossref + Retraction Watch) and open-access status (Unpaywall). Off by default; adds a few seconds of latency per request.
Privacy
- The plugin sends the identifier text you ask it to format directly to
https://scholar-sidekick.com/api/formatover HTTPS. - The retraction / open-access / verify commands additionally send the
identifier or claim to
https://scholar-sidekick.com/api/retraction-check,https://scholar-sidekick.com/api/oa-check, orhttps://scholar-sidekick.com/api/verifyover HTTPS. - No API key is required; the API treats the plugin as the anonymous rate-limited tier (60 requests / minute / IP).
- Inputs are not retained or used for training. See the API privacy policy.
Provenance
Every API call carries a x-scholar-transform-version header so you can
pin reproducibility. The plugin logs x-request-id and
x-scholar-transform-version to the developer console for diagnostic
support - open the Obsidian dev console (Cmd+Opt+I / Ctrl+Shift+I) to
view them.
Build from source
See BUILD.md.