Geeknote: A Command Line-based Evernote Client for Linux

Evernote is one of the most popular productivity tools, allowing you to take notes, create to-do lists, reminders, and more, but it’s not officially available on Linux. Although Linux users can access the service through its web interface, it’s not convenient, especially if you spend a lot of time working on the command line.

If you’re looking for a way to access the note-taking service from the command line, try Geeknote, an open-source Evernote console client for Linux, as well as other platforms like FreeBSD and Mac OS X. In this article, we will discuss the basics of Geeknote and its installation on Linux, as well as the features it provides.

Note: All these installation steps have been tested on Ubuntu 14.04.

Use the following commands to install Geeknote:

sudo apt-get install git python-thrift python-bs4 python-oauth2 python-html2text python-sqlalchemy python-setuptools
cd && git clone https://github.com/VitaliyRodnenko/geeknote.git
cd geeknote
sudo python setup.py install --record installed_files.txt

Once done, just run the following command:

geeknote login

This command will ask you to enter your Evernote login credentials, as well as a two-factor authentication code (you can skip this by just pressing Enter in case you have not set it up with Evernote). If everything goes fine, you should receive the following message:

You have successfully logged in.

You can use Geeknote to perform all basic Evernote functions including creating/editing/deleting/searching notes, as well as creating notebooks and tags. It also has a feature to sync files with the popular note taking service.

Here are some examples of the basic features Geeknote provides:

You can use Geeknote to easily create notes in Evernote. Here is the command for it:

geeknote create --title --content [--tags ] [--notebook ]

Here is what the individual options mean:

  • --title: The title of the new note we want to create.
  • --content : The content of the new note (it must not contains double quotes).
  • --notebook : The notebook where the new note should be saved. This option is not mandatory. If it isn’t given, the note will be saved in a default notebook. If a notebook doesn’t exist Geeknote will create it automatically.
  • --tags : Tags that the note will have. It can accept multiple tags, separated with commas.

Here is a working example:

geeknote create --title "My first note" --content "This is a test note." --notebook "First Notebook" --tags "test"

As is clear from the screenshot of Evernote’s web interface that is shown below, the command above creates a new note titled “My first note” containing the text “This is a test node” in the notebook “First Notebook.”

new-note

To edit a note, use the following command:

geeknote edit --note --content [--title ] [--tags ] [--notebook ]

Here is a working example that edits the title as well as the content of the note created in the previous example:

geeknote edit --note "My first note" --title "My first note[edited]" --content "This is an edited test note"

The command above changes the note’s title from “My first note” to “My first note[edited]:, and its content from “This is a test note” to “This is an edited test note”.

edited-note

Geeknote can also be used to easily search notes in Evernote. Here is the command for it:

geeknote find --search  [--tags ] [--notebooks ] [--date ] [--count ] [--exact-entry] [--content-search] [--url-only]

Here is a working example:

geeknote find --search "My"

The above command produced the following output on my machine:

Search request: intitle:My              
Total found: 1
  1 : 09/11/2014 07:11  My first note[edited]

So you can see that Geeknote was able to search notes stored in Evernote.

To remove existing notes, use the following command:

geeknote remove --notebook  [--force  ]

Here is a working example:

geeknote remove --note "My first note[edited]"

The command above should delete the note titled My first note[edited]. This can be confirmed by searching the note:

geeknote find --search "My"
Notes have not been found.

A quick look at Evernote’s web interface also confirms the same:

remove-note

For more features, head over to Geeknote’s official documentation.

As the name suggests, Geeknote is clearly for a niche audience that consists of Linux system administrators and command line power users. It might not offer every feature that Evernote provides, but certainly gets the basic work done quite easily. Have you ever used Geeknote? What are your thoughts about it? Share your experiences in the comments below.