Zotero

Bring a collection into Flux and keep references connected to Zotero.

7 min readIntegrations

If you already work in Zotero, or your papers arrive through its browser connector, you don’t have to choose between Zotero and Flux. Connect them once and Zotero feeds FluxLib: anything you add there appears in Flux, with its PDF, ready to read, highlight, cite and search.

What it does — and what it never does

The connection is one-way and additive. On every sync, Flux reads a Zotero export file (set up below) and brings in whatever FluxLib doesn’t already have. That’s the whole contract. Concretely:

Syncing is safe to run any number of times — a second sync of the same export is a no-op.

One-time setup in Zotero

Flux reads a Better BibTeX auto-export: a .bib file that Zotero keeps rewriting on its own whenever your library changes. Setting that up takes two minutes:

  1. Install the Better BibTeX plugin (free, open source). Download the .xpi from retorque.re/zotero-better-bibtex and in Zotero choose Tools → Plugins → gear menu → Install Plugin From File…, then restart Zotero.
  2. Create the auto-export. Right-click your library (or a single collection — see Very large libraries) and choose Export Library…. Set the format to Better BibTeX, and tick Keep updated — this is the crucial checkbox. Save the .bib file anywhere you like; next to your Zotero data folder is a fine choice.

From now on, Better BibTeX silently rewrites that file every time your Zotero library changes. That file is the entire interface between the two apps — Flux never talks to Zotero itself, so nothing here depends on Zotero being open.

Connecting Flux

In Library, click the Zotero button in the header and point Flux at the export:

Click Connect & sync and the first sync runs immediately. A toast reports what happened (“12 added · 3 already known · 9 PDFs copied”). The button in the Library header shows Zotero ✓ while connected; click it any time for status, Sync now, settings, or Disconnect.

When syncs happen

Automatic syncs cost essentially nothing when there’s nothing to do: Flux checks the export file’s timestamp and size first, and if they haven’t changed since the last successful sync, it skips all work — no reading, no parsing, no toast. Sync now is different: it always performs a complete pass, which also picks up PDFs that appeared in Zotero’s folder after their reference was synced (see below).

PDFs: copied or linked

When a synced reference declares a PDF, Flux brings it in one of two ways — chosen at connect time, changeable later under Settings…:

Either way, Flux extracts the paper’s text so full-text search (ft:) covers it — unless you deferred that (next section).

Two behaviors worth knowing:

Very large libraries

If you connect a huge export (thousands of references), the connect dialog notices the file size and preselects the sensible posture automatically: link mode, with Extract searchable text during sync turned off. In that configuration the sync never opens a single PDF — it just records where each one lives — so even a first sync of a 15,000-PDF library finishes in seconds rather than grinding through every file. This matters doubly when Zotero’s folder lives on a cloud drive (Google Drive, Dropbox), where reading every PDF once would mean streaming your entire collection over the network.

With text extraction deferred, a paper becomes full-text-searchable after the first time you open it in the Reader (Flux extracts and caches the text quietly at that moment). Until then it’s still findable by title, author, abstract, and all other metadata.

Two tips for the truly gigantic:

Fitting into a library you already have

Connecting Zotero to an established FluxLib is seamless — the first sync just recognizes everything you already have (by DOI, or title + author + year) and skips it. The only cosmetic effect: new arrivals keep their Better BibTeX citation keys, which is also the exact format Flux itself generates (smithNeuralBasis2021-style), so keys look uniform regardless of which door a paper came through. The rare duplicate — the same paper with no DOI and meaningfully different metadata in the two places, like a preprint versus its published version — comes in as a second entry; delete whichever you don’t want.

Capturing papers from your browser

Once connected, the Zotero Connector browser extension becomes the best way to capture papers from the web: one click on any paper page saves it to Zotero — with publisher-quality metadata and, where possible, the PDF — and it flows into FluxLib on the next sync. This works alongside Flux’s own web capture and add-by-DOI box; use whichever is in reach.

Syncing from the command line (and agents)

The same sync runs headlessly as flux zotero-sync — useful in scripts, cron jobs, and for AI agents keeping your library current. Like automatic syncs, it skips an unchanged export; --force performs a complete pass. See the command reference for all flags.

Disconnecting

Disconnect in the Zotero panel forgets the connection settings — nothing else. Everything already synced stays in FluxLib exactly as it is. (If you used link mode, those papers’ PDFs still live in Zotero’s folder, so keep it around or re-sync in copy mode first.)

Troubleshooting

Related guides

Web capture · GROBID

Search the docs

Search guides, workspaces, and reference topics.

↑ ↓ to move · Enter to open · Esc to close