Skip to content
📙Command line interface for Written in Rust.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Command line interface for Goodreads. Focuses on letting you quickly update your current reading activity, and giving you quick access to what your friends are reading.

⚠️ Notice: This is only my 2nd Rust project, after slackify-markdown, and so while the project is functional the code is not pretty.



Easiest way to install on macOS is by using Homebrew.

$ brew tap thundergolfer/homebrew-formulae
$ brew install goodreads-sh

Manual Installation

You can get binaries for OSX and Linux on this project's releases page.

After downloading, you unzip the .tar.gz and move the binary to a place that's on your path ($PATH on Linux/OSX).

[Required] Developer key

goodreads-sh requires your developer key and developer secret in order to read-write to the goodreads API. Obtaining them is fairly trivial.

  1. Access your developer key and secret here.
  2. Copy your developer key and secret over to goodreads-sh's config file. ~/.goodreads.toml
developer_key = "<your_key_here>"
developer_secret = "<your_secret_here>"

Your config file should already be present in your home dir ~/.goodreads.toml and if it's not, then run the command once without any options or create the file manually.


    goodreads-sh <SUBCOMMAND>

    -h, --help       Prints help information
    -V, --version    Prints version information

    add-to-shelf    Add a book to an existing shelf (eg. currently-reading, to-read)
    auth            Setup OAuth for the CLI (1 time only)
    finished        Tell Goodreads you've finished a book that you're currently reading
    help            Prints this message or the help of the given subcommand(s)
    me              Show your User ID
    new             Tell Goodreads you've started a new book
    update          Update progress on a book you're currently reading


  • Kudos to Danish Prakash for his implementation, goodreadsh, which I used and learned from while I developed this CLI. 🙏
You can’t perform that action at this time.