A basic run-down of the extension

This extension started out of a basic use case : importing data from Zotero to Roam based on a citekey.

A number of users in the Roam community, myself included, have adopted a reference system where citekeys are used as page names like so : [[@citekey]]. This allows for a few convenient things like :

  • having a unique, simple handle to reference a literature item within Roam ;

  • being able to cite seamlessly with [[ and filtering suggestions with @ ;

  • being able to write in Roam, and then to export to a formatting tool (Zettlr, Pandoc, etc.) without having to manually reformat references.

Beginning in ~May 2020, melat0nin's Zotero export plugin enabled Zotero -> Roam data import, using the Zotero desktop client and a JSON file. It's the best solution I know if you're looking to import a lot of library items at once into Roam ; it handles single items, multi-item selection, and collections.

It's been a major inspiration for the development of this extension, in particular with user settings. Though while it's very efficient for bulk data import, it's cumbersome to generate a JSON file when adding just one item. Especially if you repeat the process a few times. It also requires starting from the Zotero app, tracking down which item(s) you haven't imported yet, and a fair amount of context-switching.


  • Import data from Zotero to Roam (metadata, notes/annotations, attachments)

  • Discover connections within your Zotero library

  • Browse citation networks and find new papers, without leaving Roam

  • Integrate your Roam graph, Zotero items, and external tools (Scite, Connected Papers...)

  • Manage your tags into a unified system

The extension assumes the workflow described above, where the [[@citekey]] nomenclature is used, and works best with the Better BibTeX plugin as citekey manager.

Last updated