Command-line interface for Zotero
Switch branches/tags
Clone or download
Latest commit 273fb9b Aug 18, 2017
Failed to load latest commit information.
zotero_cli Fix synchronization Aug 17, 2017
.gitignore Initial commit Apr 24, 2016
LICENSE Initial commit Apr 24, 2016 Update README some more Apr 27, 2016 Fix synchronization Aug 17, 2017



A simple command-line interface for the Zotero API.

Currently the following features are supported:

  • Search for items in the library
  • Add/Edit notes for existing items
  • Launch reader application for item attachments
  • Edit notes with a text editor of your choice in any format supported by pandoc (markdown, reStructuredText, etc.)


zotero-cli can be trivially installed from PyPi with pip:

$ pip install zotero-cli

If you want to try the bleeding-edge version:

$ pip install git+git://


To change the editor on *nix systems, set the VISUAL environment variable.

If you want to use a markup format other than pandoc's markdown, edit the configuration file under ~/.config/zotcli/config.ini and set the note_format field to your desired value (as seen in pandoc --help).

First, perform the initial configuration to generate an API key for the application:

$ zotcli configure

Search for an item:

$ zotcli query "deep learning"
[F5R83K6P] Goodfellow et al.: Deep Learning

Query strings with whitespace must be enclosed in quotes. For details on the supported syntax, consult the SQLite FTS documentation. Briefly, supported are AND/OR/NOT operators and prefix-search via the Kleene operator (e.g. pref*).

Read an item's attachment:

$ zotcli read "deep learning"
# Will launch the default PDF viewer with the item's first PDF attachment

Add a new note to an item using either the item's ID or a query string to locate it:

$ zotcli add-note "deep learning"
# Edit note in editor, save and it will be added to the library

If more than one item is found for the query string, you will be prompted which one to use.

Edit an existing note (you can use a query string instead of an ID, too):

$ zotcli edit-note F5R83K6P
# Edit note in editor, save and it will be updated in the library