I also think JabRef is the “best” free reference manager.
JabRef however already works well with Scrivener; indeed all citation managers that support temporary in-text citations work well with Scrivener. The developers have asked many time what exactly “better” integration would entail, and why existing tools are not sufficient. The main points are:
- While writing you need to insert a reference. At present you press ⌘Y to switch to your manager and then copy it back. For tools like Bookends, we have additional interfaces like floating citations or my bookends tools. For a BibTeX tool like JabRef, citation picker allows you to search and insert citations from a BibTeX file into any app. This is a really nice workflow already!
- At compilation, citations must be converted into a formatted bibliography. In Scrivener this requires either output to RTF/ODT and a manual scan+convert, or use of Pandoc and/or a LaTeX engine to automate this. Pandoc allows this automation for any output.
One thing I think would really benefit Scrivener would be integration of a citeproc processor during compilation. This would allow Scrivener to do step 2 natively, to convert the temporary citations to a fully formatted bibliography, supporting thousands of CSL styles. It would allow Scrivener to output bibliographies into any of its built-in compiler outputs, utilising existing tools…