Zotero integrations

That is pretty cool. I keep forgetting about AppleScript. Thanks.

1 Like


I agree with you because this works for me. But won’t other users have to install LaTeX too? The typical Word user may not want or need this.

Then again, if you’re using .md, you’re already rejecting proprietary solutions.

I’m surprised nobody has mentioned the rbbt add-in to RStudio. It’s designed for RStudio’s markdown files, so its functionality is extremely close to what we’re discussing.

Rbbt uses the same citation dialog as is used for Word, LibreOffice, and Google Docs. And the add-in easily attaches the dialog to a hot key.

I’ve never used Zettlr, so I’m not sure how its @ mechanism works, but unless @ brings up a search box that pares down choices as one writes, I would find it a major PITA.

I also subscribe to the software design philosophy of doing one thing well. Rbbt facilitates insertion citations in the standard format used by BibTeX, BibLaTeX, and pandoc-citeproc from one or more *.bib files specified in the yaml. That’s it.

All the stuff about creating a reference list in Obsidian, displaying the reference list in real time, even writing papers in Obsidian, etc. moves away from the one-thing-well philosophy to a bloated-Swiss-Army-Knife philosophy. If Obsidian needs to move in this direction, and obviously I’m skeptical of this, then such things should be separate from a Zotero interface.

Similarly, people want Obsidian to be able to access the extractions created by the Zotero ZotFile plugin’s ability to extract annotations from pdf files. To me it makes more sense to create another Zotero plugin, arg’s mdnotes is on the right track, that copies ZotFile’s extractions as .md files to a specified folder, with naming options similar to how the BibTex and BibLaTeX plugins let the user give a template for citation text.

A more extensive plugin might also offer a choice of target formats for the extraction (.md, .tex, html, etc.).

Also working on the Zotero side, one might add an option to dovetail mdnotes with BibTeX/BibLaTeX, so that when the contents of a Zotero collection changes, not only does the specified .bib file get updated automatically, but so too do extractions in a separately specified folder.

To me the most formidable difficulty arises from citations doubling as [[WikiLinks]]. Their respective markdowns are distinct. At one time Fletcher Penny’s MultiMarkdown had both citations and WikiLinks, but he depreciated the WikiLinks because “the feature was more trouble than it was worth.” Obviously, something like WikiLinks is an essential feature for Obsidian, although I prefer MultiMarkdown’s richer feature set. Maybe changing from [[link]] to {{link}} would be a sufficient modification to allow not only citations and WikiLinks to coexist in Obsidian, but also MultiMarkdown instead of Markdown.

In general, things that are Zotero-centric should be implemented in Zotero and be as independent of Obsidian as possible, and things that are Obsidian-centric should be implemented in Obsidian and be as Zotero-independent as possible.


Zettlr does offer auto-completion once you type @ (at least from what I remember). I don’t know how hard it is to bring that to Obsidian, but it probably will come as a plugin. Format-wise, following the Zettlr example, pandoc should take care of the inclusion and formatting of the references.

I agree that there are at least two workflows (or parts of it) that might have to co-exist.

Citation is probably interesting for those looking to publish directly from Obsidian. Using @citekey (following pandoc’s) format is probably wise.

Equally, just keeping notes about the references is a matter of having a way to export and link to the reference manager (as I do now with Zotero using the mdnotes plugin or even manually by simply naming your notes after unique cite keys).

As you mention, the “tricky” part comes from the coexistence of these two aspects, particularly if what we want is both to cite and link with the same format.

  • Citing with pandoc is usually done with [See @citekey], but wouldn’t produce a node in the graph, or a clickable note.
  • In my opinion, citation with backlinks, e.g. using [[@citekey]], doesn’t make much sense since most people would expect the preview/export to be the full citation, not necessarily the note about the reference. Maybe it can be used like this if we add options in the export dialogues.

If we don’t care as much about having the same format, and care just about the associations, those are just dependent on detecting the links, i.e. if it’s possible to associate notes that use the @citekey, and count them as links, then the ability to explicitly reference vs link might work well for most, but could make autocompletion confusing and complicated.


Maybe a [[@citekey]] click could be recognized as an external link to Zotero. If you click on the link it opens the reference in Zotero, but also will map all citations linked this way in the graph. Ideally with a toggle to graph or not graph citekeys.

This would eliminate the need to create an essentially empty reference note from the citekey to see graphing and backlinks.

There could also be a section of the right pane for references (like tags) where you could sort by the most cited citekeys and see what link to them.

I’d really like that implementation, if possible.


In Zettlr plugin is possible to open cited reference in external pdf viewer if pdf existed in the Zotero library by right-click mouse on the reference > open attachement

1 Like

I agree, sort of. This depends on your workflow in the end, my notes about the reference [[citekey]] are not empty and have my own thoughts there. I also transclude the metadata and like having links to explore connections that might not be obvious in Zotero itself.

You can already add links to your zotero items with standard markdown formatting [citekey](zotero://url/link/here).

Here’s another user scenario

O has a collection of scientific papers gathered over the last 30 years scattered across her hard drive(s). Many are PDFs but some are not. Some are no longer accessible on-line. O is doing research in some new areas and typically finds research papers that need a reference in Zotero. Then from Zotero O wants to create a base note in Obsidian that contains the the basic bibliographic citation and is linked back to the PDF lcoation. While reading and reviewing the PDFs on an iPad O takes notes and makes annotations. At the end O wants all of those to be exported to markdown files and then easily imported into Obsidian as notes with automatic or easy to put in links back to the base bibliographic note. There are 2 kinds of these. Highlighted quotes and O’s own notes. They need to be separate but all linked to the base note. Every separate highlight should be a separate item in Obsidian and every separate note should also be a separate item in Obsidian.

Sometimes O wants to see the code in the editor and sometimes O wants it to be hidden so a preference or simple hotkey toggle would be great.

Key issues are that there is a backlog of papers to enter into Zotero and then O would like a way to select a group of them and have the automatic base note created in Obsidian with the general citation and a link back to the file that is the source document in Zotero. If thy have been annotated then the anotatiosn will be pulled out as above. If one is annotated later there needs to be some way to say review all of these items for new or additional annotations and create Obsidian items for each new one.

arg’s plugin looks like it would work but of course I need it to run on the Mac and I’m strill trying to figure out if I can install it at all.

1 Like

Developer of Zettlr use similar pipeline to extract notes from pdf’s https://forum.zettlr.com/discussion/94/zotero-as-zettelkasten

@OogieM The nice thing with Zotero and its plugins is that they are compatible in different operating systems, so there shouldn’t be any problems installing.

I’m not sure if it’s a core feature of Zotero or if Zotfile handles it, but dragging any PDFs to Zotero should extract its metadata (although 30 year old PDFs might not have it). You only really need the PDFs if you want to annotate them, so you could also just create regular Zotero items if that is enough for you.

I sometimes use my iPad to make handwritten annotations (It takes a little bit of effort to set up, but Zotfile manages this through your cloud of choice. See the section Sync PDFs with your iPad or Android tablet in Zotfile’s documentation. The only disadvantage there is that you won’t be able to extract handwritten annotations with Zotfile once at your computer, so I’d recommend annotating with a keyboard if you want to export them.

You can do this with the mdnotes plugin. See Zotero best practices - #57 by argentum for a small overview of what is possible. I haven’t tested with massive exports, but it should work for multiple items at a time if you select them with Ctrl+click.

At the moment the plugin doesn’t do it at the 1-highlight-1-file level, but you can do it at a coarser scale through colours (I also covered that a little bit here: Zotero best practices - #57 by argentum). If there are more people interested in having one highlight/annotation per file I could look into it, but off the top of my head the problem with that would be the naming of those files (unless we go Zettelkasten and use some unique ID for each).

Feel free to reach out if you run into any problems!

1 Like

This would be great. Totally see its application. +1 for this.

I just got Zotfile installed and set up. It’s a bit more cumbersome if you do not want to use a standard cloud service but it is possible. As a test I brought in one of my oldest scientific papers. The 1922 paper by Wright on calculating inbreeding coefficients and it DID actually get the metadata in correctly! I was amazed and pleased. Sicne that is I think the oldest one I have I’m a lot more encouraged that others will also work.

I’ll play with the colors option, thanks for the idea.

Yes, I was thinking of the date-time prefix on the notes to make them unique names. I would love that as an option that can be changed easily or perhaps a different way of selecting/saving them. I can see cases where all highlights and notes into one Obsidian not are fine and cases where I want them split up.

Here’s an example, I’ve got a paper on a genome wide analysis of sheep breeds using SNPs. I want connections to a note that describes the specific SNP chip used because there are different ones, also links to notes on what the base source of the DNA was (cheek swabs, blood, ear tissue, hair follicles, etc.) It’s useful to know whether a particular paper and research used a particular system for getting the DNA. So I sometimes want to find all the articles that used a particular method or a particular chip. Then there are my interpretations of the information, for example the reference genomes they used did not include several highly inbred breeds so how applicable will the results be when the populations I am interested in are all highly inbred. Out of this one paper I’m going to have multiple notes in several major areas that are all distinct. Lumping them all in one note isn’t going to work so I have to separate them out somehow, either manually later or at collection.

OTOH the inbreeding paper mentioned above is simple. All I really need is link it to a single note that describes the various methods of calculating inbreeding coefficients. Wrights is the standard but there are some other ways to do it. I have few notes from that Wrights paper, just a quick link to the equations. Similarly the papers I have on BLUP analysis are likely only going to need a single note per paper. It all depends on the paper and subject. For my weaving/fiber research nearly all scientific papers crosslink a lot, from weave structure, to fibers, to age, to dyes used etc.

I’ve got to play a lot more with my sample set of doucments to get my structure and workflow down before I start fully implementing the system over my huge collection of stuff.

I see! Just an idea, you can use pop-up notes for that and format them with wiki links. The links to those relevant aspects of your reference can be independent of Zotero.

For example, in paper A you can add an annotation that mentions This paper uses [[method A]] and checks for [[population X]]. When you export those notes, your annotations will have links to method A and population X which you can write about in Obsidian without having to have a specific note for them in Zotero.

OK That seems like it will work. I don’t want notes in Zotero necessarily to stay there. I see Zotero as the bibliographic and file repository and a way to get them to and from my tablet via Zotfile to collect the annotations. Just that each time you go back and re-read or add more annotations Zotfile doesn’t overwrite the original annotated version just creates a new one. So you end up with all sorts of copies that you have to manage separately and manually.

Maybe a [@citekey] could be recognized as [[@citekey]] so pandoc can still process the file.

I don’t use Zotero, but just a plain .bib file for my references. Since there is no plugin for obsidian (yet) to enter citekeys effortlessly, I hacked together my own solution using dropdown terminal windows and fuzzy search. This might be interesting for some of you (works on macOS and probably on Linux, requires certain familiarity with terminal applications though):


I wanted to suggest a Bibtex support plugin idea like Zettlr does here in the forum, but this seems to be the most bumped already.

I don’t think a Zotero integration is what’s really necessary, but just the ability to use Bibtex.


hey guys, just curious on what’s the potential future of this idea, like @a.u said the most important aspect of this would be to be able to use Bibtex, that way zotero can easily generate a file that obsidian can read.

Just in sense of scope, is this something that could be achieved in short-term as a community plugin? or is it something more long-term that might need core integration?

Like many others this is my most highly anticipated plugin, would be a game changer and a huge time saver



Some plugins use CSL JSON instead of bibtex https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html