Google renamed NotebookLM to Gemini Notebook in July 2026. This project was formerly called Zotero → NotebookLM; existing installations and legacy integration identifiers remain supported.
Updated for Zotero 9: Compatibility is fixed and upload compatibility is improved. Version 0.3.1 also fixes large transfers that exceeded Chrome's 64 MiB extension-message limit. The unpacked Chrome companion must be updated manually to receive this fix.
Want an easier way to build notebooks in Gemini Notebook from Zotero files on your computer? This connector lets you browse your Zotero collections, stage source files, and send them to Gemini Notebook without manually digging through Zotero's filesystem.
While the direct interface with the browser window is tricky to make perfect, we've made an effort to make the upload of Zotero articles to the web as seamless as possible.
🌴 🌴 🌴
Zotero stores PDFs in opaque, key-based folder names. Manually gathering files from a subcollection and uploading them to Gemini Notebook is tedious and error-prone. This tool automates the handoff: browse your collections in Zotero, pick your sources, and push them to Gemini Notebook.
The system has two parts:
-
Zotero Plugin — Adds an "Export to Gemini Notebook" dialog to Zotero's Tools menu. Browse your collection tree, search/filter items, and select which sources to stage. The plugin registers endpoints on Zotero's local HTTP server. The Chrome companion connects through
127.0.0.1, and file requests are rejected unless the attachment was explicitly staged. -
Chrome Extension — Connects to the Zotero plugin's local server, fetches the staged files, and uploads them into Gemini Notebook. Google Chrome is required; Firefox and other browsers are not supported.
For normal use, install from the latest GitHub release. You do not need Node.js or pnpm unless you are building from source.
-
Open the latest release.
-
Download both installable assets. Releases from
v0.3.0use:zotero-gemini-notebook.xpizotero-gemini-notebook-chrome-extension.zip
The
v0.2.0release retains the former NotebookLM filenames:zotero-notebook-lm.xpizotero-notebooklm-chrome-extension.zip
-
Unzip the Chrome extension
.zipsomewhere you can keep it. Chrome loads the extension from that folder, so do not delete it after installation.
If there is not a published release yet, use the source build steps below.
- Open Zotero.
- Go to Tools → Plugins.
- Drag the downloaded
.xpionto the Plugins window, or use its gear menu and choose Install Plugin From File.... - Restart Zotero if prompted.
- Open
chrome://extensions/in Chrome. - Enable Developer mode.
- Click Load unpacked.
- Select the unzipped Chrome extension folder. It should be the folder that
contains
manifest.json. - Optional: pin Zotero → Gemini Notebook to your Chrome toolbar.
Zotero checks the plugin's update manifest for compatible releases. The unpacked
Chrome extension does not update automatically: download the latest release,
replace the files in its existing folder, and click Reload on
chrome://extensions/. If you move it to a new folder, remove the old unpacked
extension and use Load unpacked again. From v0.3.0 onward, the Chrome
companion checks the compatible-version list advertised by the Zotero plugin
and blocks imports with a reinstall warning if its version is no longer valid.
Use this path only if you want to build the project locally.
Prerequisites:
- Node.js 22+
- pnpm
- Git
- Zotero 7, 8, or 9
- Google Chrome (required for the companion extension)
From the repository root:
pnpm install --frozen-lockfile
pnpm run package:releaseThe generated install files are:
.scaffold/build/zotero-gemini-notebook.xpi
.scaffold/build/zotero-gemini-notebook-chrome-extension.zip
Install those files using the same Zotero and Chrome steps above.
For a quick handoff, select one or more regular items in Zotero's items pane, right-click, and choose Export Selected to Gemini Notebook. Zotero stages the supported local attachments immediately. A selection with at least one supported attachment replaces the previously staged batch; an unsupported-only selection leaves that batch intact.
For collection browsing, searching, or more deliberate selection:
- Open Zotero and go to Tools → Export to Gemini Notebook...
- Browse the collection tree on the left to find your subcollection
- Use the search box to filter items by title, author, or year
- Click items to select them (checked items will be exported). Items without a supported local PDF, DOCX, Markdown, or text attachment are greyed out.
- Click Export to Gemini Notebook to stage the selected files
- Open Gemini Notebook in Chrome. You may open an existing notebook, or start from the main page and let the extension create a new notebook.
- Click the Zotero → Gemini Notebook extension icon in your Chrome toolbar
- The popup will show your staged sources with a green "Zotero connected" indicator
- Click Import to Gemini Notebook
- The extension will fetch each file from Zotero, then upload them all to Gemini Notebook's sources panel.
- Keep Zotero running while importing — the Chrome extension fetches files from Zotero's local server.
- You can deselect items in the Chrome popup if you change your mind
- After a successful import, staged items are automatically cleared
- Keep the Gemini Notebook tab open until the import starts.
- If the import does not start, use Add sources in Gemini Notebook to open the file dialog, then click Upload files.
- If the import fails, refresh the Gemini Notebook tab and try again.
Use the source build command above to produce release-style install files.
During Chrome-extension development, you can load chrome-extension/ directly
in chrome://extensions/ and click Reload after editing extension files.
Before opening a PR, run:
pnpm run package:release
pnpm run lint:checkMaintainers should follow the release and auto-update checklist before publishing a new version.
- Large batches may take longer to start because Gemini Notebook creates its upload controls asynchronously.
- Gemini Notebook's DOM structure may change without notice, which could break the upload mechanism.
MIT — see LICENSE.
