# Zotero Citation adds EndNote-style citation extraction and drag insertion to Word

> Zotero Citation is an AGPL-3.0 licensed Zotero plugin in TypeScript that collates the citations in an open Word document into a temporary Zotero collection, and lets you insert citations by pressing the apostrophe key or by dragging an item out of Zotero. It needs the matching Word add-in installed, it is fully featured on Windows, and it loses automatic folder renaming on macOS.

**MuiseDestiny/zotero-citation** — Make Zotero's citation in Word easier and clearer.

- Repository: https://github.com/MuiseDestiny/zotero-citation
- Stars: 1,287 · Forks: 27
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/muisedestiny-zotero-citation

## The problem it solves is the gap between Zotero and Word

Zotero Citation describes itself as making Zotero's citation in Word easier and clearer, and the specific gap it fills is the one EndNote users know.

The first feature is citation extraction. When you insert a reference in a Word document, all citations from the open document are automatically collated into a corresponding folder in Zotero, and an additional citation column is created so you can see the short citation label for each item. The README is explicit about the precedent: if you have used EndNote, you are probably familiar with this function.

The value of that feature is that the document becomes a view of your library. A Word file with forty citations scattered across ten pages tells you which works you used, but not what they are called, and the only ways to find out are to click each one or to reconstruct the list by hand. With the collection and the citation column, you can see the whole bibliography as a set of items you can rename, re-cite and export.

The folder is temporary. The README describes its lifecycle as insert the first quote in Word, then close Zotero, and it says the folder is regenerated every time Word is opened. It is deleted automatically when Zotero closes, and if the deletion fails you can remove it manually the next time you open Zotero.

So the feature is not a permanent per-document collection. It is a live view of what the open document cites, and it is rebuilt each session. That is a deliberate design, since a permanent collection per document would fill a Zotero library with folders nobody maintains.

## Two ways to insert a citation, both from the Zotero window

The insertion paths are the second half of the plugin, and there are two of them.

The shortcut citation works like this: position the cursor in the Word document where the citation should go, select the entry in Zotero, and press the apostrophe key on the keyboard. The plugin then inserts it at the cursor.

The drag-and-drop citation is the other path. You select the items to cite, which can be a multiple selection, and drag from any column, including Title, Creator or Citation, to the insertion point in Word. The README is careful about what is preserved: dragging into Zotero collections, or dragging PDF attachments out, keeps Zotero's native drag behaviour, so the plugin does not hijack the parts of Zotero's drag that already work.

There is a dependency between the two features that is easy to miss. The drag-and-drop citation requires the citation column to be turned on in the plugin settings, and if you want to disable drag-and-drop citation, you turn the reference column off. The citation column is thus both a display feature and the switch for the drag path, which is an unusual coupling but a sensible one, since the column is what tells you what you are about to drag.

Two edge cases are documented. Dropping into another application, or cancelling a drag, does not insert a citation. And the shortcut does not create an empty citation for a standalone PDF that has no parent item, which stops the shortcut from producing a broken reference when you drag out a PDF attachment that is not attached to a bibliographic record.

## The Word add-in and the plugin have to be the same version

There is one installation constraint stated at the top of the README, and it is the kind of thing that costs an afternoon if you hit it blind.

The Word plugin for Zotero should be consistent with the version of the Zotero add-in for Word, and if you get an installation error you may uninstall the Word add-in and reinstall it.

The reason is structural rather than mysterious. Zotero's Word integration works as two halves: the Zotero plugin that runs inside Zotero, and a separate add-in that runs inside Word, and the two communicate. When the versions drift, the handshake between them fails and Word reports an integration error that does not obviously point at a version mismatch. Uninstalling and reinstalling the Word add-in re-aligns the pair.

The release history shows why mismatches happen here. The recent releases are 0.5.9 on 2026-10-13, 0.5.7 on 2026-08-24 and 0.5.5 on 2026-08-17, whose release title is Compatible with Zotero 10. That last one is the important signal: a Zotero major version bump broke something, the plugin was updated, and anyone still running the old pair of versions would have hit the integration error the note warns about.

For a reader, the practical sequence is: install the plugin, install the Word add-in of the matching version, and if Word complains, remove the add-in and put it back rather than debugging the plugin itself.

The distribution route is the standard one for a Zotero plugin. The package.json config block names the plugin Easier Citation, gives it the add-on id zoterocitation@polygon.org, and points the release page at the zotero-citation.xpi asset on the GitHub releases, with an updater manifest at update.json for the built-in update check.

## Windows gets the folder renaming, macOS does not

The platform difference is stated in one line near the top of the README, and it is a functional gap rather than a cosmetic one.

The plugin has full featured support for Windows, but Mac does not support automatic renaming of temporary folders yet, and you may need to change it manually.

The mechanism behind it is the refresh step. You need to click refresh once in Word, and the folder that the plugin generated in Zotero is then renamed to the filename of the Word file you have refreshed. On macOS that automatic rename does not happen, so the collection keeps a generic name and you rename it by hand.

The macOS gap is narrower than it first appears, and the TODO section is explicit about it. The Mac shortcut adaptation is ticked as done, but with the note that on the current version Mac users can only use feature 1, which is the citation extraction. So a macOS user gets the temporary collection and the citation column, but does not get the folder renamed to the document name.

The acknowledgements record how the macOS work was done, with two contributors thanked for reaching out and offering remote debugging on their Mac devices, and the project is built on a Zotero plugin template, with a badge pointing at the Zotero Plugin Template and the acknowledgements naming the author's own zotero-addon-template.

For a team split across platforms, this is the concrete difference in expectation: the Windows workflow is the one the plugin was developed on, and the macOS workflow is a supported subset.

## Neighbouring citations merge into a single bracket

One behaviour is called out in the README as a feature, and it is the kind of detail that a user notices immediately if it is missing.

Neighbouring references are automatically merged with the references available from the plugin, so inserting a new citation after [1] results in [1, 2] rather than [1][2].

This is a formatting behaviour rather than a data one, and it is worth understanding where the boundary is. The citation field codes in the Word document are still the underlying Zotero field codes, and the merging happens in how the citations are rendered and numbered, so the underlying data and the bibliography stay intact. The visible change is that a run of adjacent citations reads as a single bracketed group instead of a row of separate brackets, which is what a journal style guide generally expects.

The two TODO items in the README are related to this area. The first, showing the short citation label in Word in Zotero, for example [1] being shown in Zotero, is ticked as done. The second, adapting the Mac shortcuts, is ticked as done with the caveat about Mac users only being able to use feature 1.

So the feature set is small and concrete: extraction with a citation column, two insertion paths, merged adjacent numbering, and a labelled collection that mirrors the open document. That is a narrow slice of what the underlying reference managers do, and it is worth judging on that basis rather than as a general Word integration.

## The build is a TypeScript toolchain with a live reload loop

The development setup in package.json is conventional and worth reading before you fork, because it explains how the Zotero and Word halves are built together.

The build scripts split into a development and a production path, both running the same build script with a different NODE_ENV.

```json
"build-dev": "cross-env NODE_ENV=development node scripts/build.mjs",
"build-prod": "cross-env NODE_ENV=production node scripts/build.mjs",
"tsc": "tsc --noEmit",
"lint": "prettier --write . && eslint . --fix --ext .ts"
```

The watch script is the interesting one. Chokidar watches both the source directory and the addon directory, and the addon/ directory holds the code that ends up inside the packaged extension, with the chrome/content/icons path visible in the README's icon reference. So a change in either the TypeScript source or the extension content triggers a rebuild and a reload into the running Zotero instance, rather than the usual build-and-restart cycle.

The rest of the scripts cover the lifecycle: start, stop and restart variants for the development and production builds, a separate reload script, a test script and a runtime test script that builds without updating, and a release script that runs release-it, with a.release-it.json at the root and a matching update-template.json alongside update.json, which is the manifest the plugin's own updater reads.

The repository also has an eslint configuration, prettier configuration and ignore files, a tsconfig.json, a typings/ directory, a test/ directory and a docs/ directory. The default branch is bootstrap, which is the Zotero plugin convention for the branch that holds the build tooling.

## AGPL-3.0 with a weekly release rhythm

The licence is AGPL-3.0-or-later, and the package.json records it as the license field, with the LICENSE file at the repository root. For a plugin that runs inside Zotero and talks to Word, the copyleft terms mean that a distributed modification carries the obligation to offer the source. That is a licensing fact rather than legal advice, and for a research tool that most people install rather than redistribute, it is rarely the deciding factor.

The activity is healthy. The repository is not archived, the default branch is bootstrap, and the last push was on 2026-10-13, the same day as the 0.5.9 release. The recent release list shows 0.5.9 on 2026-10-13, 0.5.7 on 2026-08-24 and 0.5.5 on 2026-08-17, and the 0.5.5 title, Compatible with Zotero 10, tells you that a Zotero major version bump was the trigger for a fix.

That is the pattern to expect from this project: a small feature set, released often, with compatibility fixes landing when the host application moves. The version number is in the low 0.5 range, which usually signals an API that is still settling, and for a plugin whose whole purpose is to interoperate with two other applications, that is a reasonable thing to check before you make it part of a writing workflow.

The project also invites sponsorship, with a patronage link, and describes itself as a plugin developed entirely based on the user's perspective, asking for a star if you found it useful.

## Conclusion

Zotero Citation fits a writer with a large library who wants the EndNote habit of a collection that mirrors the document, and who wants to drag a citation into Word from the Zotero window rather than click through a dialog. It does not fit a macOS user who needs the temporary collection renamed automatically, and it does not fit anyone who is unwilling to keep the Word add-in and the Zotero plugin on matching versions. Before installing, read the note about version alignment, install the matching Word add-in, and try the extraction on one document so you can see the temporary folder appear before you rely on it across a long draft.

## FAQ

### What does the Zotero Citation plugin do?

It collates all citations from the open Word document into a corresponding temporary folder in Zotero and creates a citation column showing the short label for each item, and it offers two ways to insert a citation: pressing the apostrophe key after selecting an item in Zotero, or dragging an item from any Zotero column into Word.

### Why do I get an integration error between Zotero and Word?

The Word plugin for Zotero should be consistent with the version of the Zotero add-in for Word. If you get an installation error you can uninstall the Word add-in and reinstall it, which re-aligns the two halves that talk to each other.

### Does Zotero Citation work on macOS?

Partly. The plugin has full featured support for Windows, but on Mac it does not support automatic renaming of the temporary folder, so you may need to change it manually, and in the current version Mac users can only use the first feature, the citation extraction.

### How long does the temporary collection created by Zotero Citation last?

Its lifecycle is inserting the first quote in Word and then closing Zotero, after which it is deleted automatically, and it is regenerated every time Word is opened. If the automatic deletion fails, you can delete it manually the next time you open Zotero.

### What licence is Zotero Citation released under?

AGPL-3.0-or-later, recorded in the package.json license field with the LICENSE file at the repository root. The plugin is written in TypeScript, and the add-on is named Easier Citation with the id zoterocitation@polygon.org.

## Sources

- [Issues](https://github.com/MuiseDestiny/zotero-citation/issues)
- [License: AGPL-3.0](https://github.com/MuiseDestiny/zotero-citation/blob/bootstrap/LICENSE)
- [MuiseDestiny/zotero-citation on GitHub](https://github.com/MuiseDestiny/zotero-citation)
- [README](https://github.com/MuiseDestiny/zotero-citation/blob/bootstrap/README.md)
- [Releases](https://github.com/MuiseDestiny/zotero-citation/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/muisedestiny-zotero-citation
