Zotero Link Bridge
Open Zotero item and PDF links directly from VS Code.
Zotero Link Bridge detects zotero:// links in Markdown, BibTeX, LaTeX, and plain text files, then opens them through VS Code's external URI handler. It is a small TypeScript extension with no runtime dependencies and no telemetry.
The extension is designed for research notes, papers, and BibTeX files where you want a citation entry to point back to the matching Zotero item.
Features
- Click
zotero://select/... and zotero://open-pdf/... links in supported documents.
- Hover over a Zotero link and choose Open in Zotero.
- Use Zotero Link Bridge: Open Zotero Link Under Cursor from the command palette or editor context menu.
- Copy the Zotero link under the cursor.
- Show optional CodeLens actions above lines containing Zotero links.
- Check whether Zotero Desktop is reachable through its local connector.
[Open item](zotero://select/library/items/GS4D2MCG)
[Open PDF](zotero://open-pdf/library/items/GL8PC25G?page=2)
@inproceedings{example,
zotero = {zotero://select/library/items/GS4D2MCG},
title = {Example}
}
Why This Exists
VS Code does not consistently treat custom URI schemes as clickable links in every language mode. BibTeX is the main pain point: a citation may jump you to references.bib, but the embedded Zotero item link may not be clickable.
This extension turns detected Zotero URIs into VS Code document links and routes them through a tiny command that calls vscode.env.openExternal.
Requirements
- Zotero Desktop installed.
- Zotero registered as the handler for
zotero:// links on your operating system.
- VS Code
1.92.0 or newer.
The health-check command uses Zotero's local connector at http://127.0.0.1:23119, but opening links does not require network access.
Commands
| Command |
What it does |
Zotero Link Bridge: Open Zotero Link Under Cursor |
Opens the Zotero URI at the cursor. |
Zotero Link Bridge: Copy Zotero Link Under Cursor |
Copies the Zotero URI at the cursor. |
Zotero Link Bridge: Check Zotero Desktop |
Verifies that the local Zotero connector responds. |
Settings
| Setting |
Default |
Description |
zoteroLinkBridge.enabledLanguages |
["markdown", "latex", "bibtex", "plaintext"] |
Language identifiers where Zotero links are detected. |
zoteroLinkBridge.showCodeLens |
true |
Shows an Open in Zotero CodeLens above lines containing links. |
zoteroLinkBridge.localApiUrl |
http://127.0.0.1:23119 |
Local Zotero connector URL used by the health check. |
Adding Zotero Links To BibTeX
Add a field like this to a BibTeX entry:
zotero = {zotero://select/library/items/GS4D2MCG},
Unknown fields are ignored by normal BibTeX styles, so this does not change the rendered bibliography. If your style does something unusual with all fields, verify your build once after adding the field.
Install Locally From VSIX
npm install
npm run package
Then install the generated .vsix:
code --install-extension zotero-link-bridge-0.1.0.vsix
For VSCodium:
codium --install-extension zotero-link-bridge-0.1.0.vsix
Develop
npm install
npm run compile
Open this folder in VS Code and run the Run Extension launch configuration.
Quality Checks
npm run lint
npm run compile
npm run package
Publish Checklist
- Choose a final marketplace publisher id and update
publisher in package.json.
- Replace repository, bugs, and homepage URLs with the public GitHub repository.
- Add a marketplace icon and screenshots if desired.
- Run
npm run lint, npm run compile, and npm run package.
- Publish with
vsce publish after creating a marketplace publisher and token.
Privacy
The extension does not send telemetry. The health-check command makes one local request to the configured Zotero local connector URL, defaulting to http://127.0.0.1:23119.
Relationship To Zotero
This project is not affiliated with or endorsed by Zotero. Zotero is a trademark of the Corporation for Digital Scholarship.