A citation picker and lightweight reference manager for Alfred. Uses BibTeX Files and supports Pandoc Markdown, Multi-Markdown, LaTeX, Org Mode, any various more formats.
- Inserts Pandoc Citation Syntax (
[@citekey]
), supporting page numbers & multiple citations ([@citekey, p. 23; @citekey, p. 42]
). Can also be configured to use LaTeX, Multi-Markdown, eta templates, Org Mode,[[wikilinks]]
,#tags
, orbare citkeys
as citation format. - App-independent: Works system-wide, in every text field of every app.
- Smart Search: Search for citekeys, authors, title, publication, keywords (tags), include or exclude authors in et al., tab-completion, short queries, sorting recently used entries to the top, …
- Simple Installation: Just enter the path to your
.bib
file, and you are ready to go. - Blazingly Fast: Considerably quicker than any other citation picker (~200 ms to fully reload a library with ~4000 entries).
- Citation Actions: Paste single-entry bibliographies, open URLs,
open or create literature notes, attach PDFs, search for
.csl
files online, and more. - Lightweight Reference Management: Automatically rename and file PDFs, add or remove entries.
- Quickly Add New Entries: Select a DOI or ISBN and add them directly to your BibTeX library via hotkey.
- Support for two libraries: You can pick citations from two BibTeX Library files at the same time.
- Obsidian Integration: When located in your Obsidian Vault, literature notes are automatically opened/created in Obsidian instead of the default markdown app.
- Installation
- Basic Usage
- Changing the Citation Format
- Advanced Usage
- Cite this software project
- Credits
- About the Developer
- Download the latest release.
- Enter the BibTeX Library path.
- Use the citation picker via the Alfred keyword
ct
, or set a hotkey for the citation picker by double-clicking the respective field in the workflow window.
Press the hotkey in
any text field to start the citation picker. Alternatively, use the ct
keyword.
- You can search for the title, author/editor (last name), year, collection, or journal name.
- Prepend
@
to a word to search for a citekey, for example@Grieser2020
. - Prepend
#
to search for keywords (tags), for example#sociology
. - Smart Queries: You can search for any combination of the above. For example,
the query
2020 #cognition grieser
searches for entries published in 2020, with the tag "cognition," and with "Grieser" as author/editor. - Short Queries: You do not need to fully spell out every item.
grie #cogn 2020
gives you the same result as above, if no other author begins withgrie
and no other tag starts withcogn
.
- ⏎: Paste the citekey of the selected citation.
- ⌥⏎: Add another citation.
- ⇧⌘⏎: Paste an inline-citation (citation
without surrounding formatting, for example
@Grieser2022
instead of[@Grieser2022]
) - ⌘⏎: Add page numbers before pasting the selected citekey.
- Confirm the page number with ⌥⏎ or ⌘⏎ to add another citation afterward.
- Confirm with ⇧⌘⏎ for an inline-citation
with page number (
@Grieser2022 [p. 42]
).
- ⌃⏎: Open the URL in the browser.
- ⌘C: Copy the URL to the clipboard.
- In both cases, if the entry has a DOI but not a URL, the citation picker uses
the DOI-URL (
https://doi.org/…
) instead.
Icon | Entry has |
---|---|
🌐 | URL or DOI |
📄 | Abstract |
n 🏷 | n Keywords |
📓 | Literature Note |
📕 | |
2️⃣ | entry is from 2nd library |
📎 | entry has attachment |
You can use the scp
and select Change Citation Format to change the format
of the citations:
- Pandoc (default)
- Org Mode
- Multi-Markdown (MMD)
- LaTeX
- eta template
- iA Writer
[[wikilink]]
#tag
- bare citekey
- bracketed citekey
Note
Not all formats support all citation-related features. For example, adding Page numbers as well as inline-citations are not supported for Latex, Wikilinks, and Tags.
If you want to use a format that is not available, you can customize the format
yourself by changing the workflow environment variables starting with _format
.
(Tutorial: How to set environment variables in
Alfred)
If there is a citation syntax that is commonly used, or if you want to improve support for an existing format, feel free to open a Feature Request.
You can also make a PR to this file which defines the citation formats.
- ⇧⏎: Reveal the entry in Zotero, neovim, BibDesk, VS Code, or Sublime Text, depending on the setting in the workflow configuration. (Note that this does not work for the secondary library.)
- ⌘⌥⏎: Paste the full bibliographic entry.
- Requires Pandoc.
- The used citation style can be customized in the settings. By default, the APA 7th Style is used.
- ⌘L: Preview the unabridged title, abstract, and list of all keywords (tags).
- ⌘fn⏎: Delete the entry from the BibTeX
library. (
⚠️ This cannot be undone.) - ⌘Y: Preview the URL of entry in a QuickLook window.
- Universal Action or Hotkey: Uses the selected DOI, ISBN, or URL containing a DOI to add a new entry to the library.
Note
Adding or removing entries does not work with the BetterBibTeX Zotero
Plugin since the plugin only does
a one-way-sync (Zotero ➞ BibTeX file), meaning any changes to the .bib
file
are not reflected in Zotero.
- The citation picker looks in the folder specified in the workflow settings for
files that are exactly named like the citekey, optionally followed by an
underscore
_
and some text, for example:{citekey}.md
or{citekey}_{title}.md
. The citekey itself must not contain underscores, and the filename must not include the@
. - Entries that have such a literature note is indicated by a
📓
. - ⌃⌥⏎: Open the literature note.
- If the file is in your Obsidian Vault, it is opened directly in Obsidian instead of the default text editor.
- If there is no literature note, a new one is created.
- Add
*
to any search query to filter only for entries with literature notes, for example* grieser
searches for entries matching "Grieser" which also have a literature notes. Can be combined with other queries (see: smart queries).
The following features require that all your PDFs are located in the folder specified in your workflow settings.
- The
📕
indicates that the entry already has an associated PDF at that location. - Hyper⏎1: If the entry has an associated PDF file,
open it with the default PDF reader. The citekey must not contain an
underscore (
_
). If the PDF folder setting is left empty, tries to open a PDF file listed under thefile
key in the BibTeX file. - Add
pdf
to any search query to filter only for entries with PDFs that have been added by the auto-file feature.pdf grieser
, for example, displays only entries from the author "Grieser" with PDFs. Can be combined with other queries (see: smart queries). - A
📎
indicates that the BibTeX entry has afile
orattachment
field. You can use ⌃⌥⌘⏎ to open the attachment. If there are multiple attachments, the first one is opened.
- Install the AlfredExtraPane for previews of entry URLs.
Triggered via the Alfred Keyword scp
(mnemonic: S
upercharged C
itation P
icker).
- Cheatsheet: Open a cheat sheet of the available actions of the Supercharged Citation Picker.
- Citation Style Search: Search for a citation style (
.csl
file), which is downloaded to the location specified in your workflow settings (default:~/.pandoc/csl/
). - Force Buffer Reload: Force a reload of the citation picker. Mostly for debugging purposes.
If you want to mention this software project in an academic publication, please cite it as:
Grieser, C. (2023). Supercharged Citation Picker [Computer software].
https://github.com/chrisgrieser/alfred-bibtex-citation-picker
Icons created by Freepik (Flaticon)
In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch.
For bug reports and features requests, please use the GitHub issue tracker.
Footnotes
-
Hyper
is an artificial "fifth" modifier key equal to⌘⌥⌃⇧
, and can be created using apps like Karabiner Elements, BetterTouchTool, or Hyperkey. ↩