Simplenote syncing note-taking application, inspired by Notational Velocity and ResophNotes, but uglier and cross-platformerer.
Pull request Compare This branch is 172 commits behind cpbotha:master.
Failed to load latest commit information.



nvpy is a simplenote-syncing note-taking tool inspired by Notational Velocity (and a little bit by nvALT too) on OSX and ResophNotes on Windows. It is significantly uglier, but it is cross-platform. Yes, you heard right, you can run this on Linux (tested), Windows (tested) and OS X (lightly tested).

It was written by Charl Botha, who needed a simplenote client on Linux and doesn't mind ugliness (that much).


If nvpy blows up your computer, loses your job or just deletes all your notes, I am NOT liable for anything. Also see the liability clause at the end of the new BSD licence text in the COPYRIGHT file.

That being said, I use nvpy daily on my own precious notes database and it hasn't disappointed me (yet).

Screenshots and screencasts

  • Automatic hyperlinking on Linux (post 0.8.5):

  • This is what nvpy looked like on Windows on May 23, 2012. Search bar at the top showing a regular expression, notes are sorted last modified first, continuously updated markdown preview in chrome behind the nvpy window: nvpy_screenshot_20120523.jpg.
  • Screencast of nvpy's inter-note linking:


To install the latest development version from github, do:

pip install git+

OR, to install the version currently on pypi, do:

pip install nvpy

If already have nvpy installed, but you want to upgrade, try the following:

sudo pip uninstall nvpy
sudo pip install --upgrade --ignore-installed --no-deps nvpy

OR, you can of course use easy_install instead:

easy_install nvpy

github always has the latest development version, whereas I upload tagged snapshots (v0.9 for example) to pypi.

For more detailed installation recipes, also for beginners, see the nvPY installation guide.

How to run for the first time

Create a file called .nvpy.cfg in your home directory that looks like the following:

sn_username = your_simplenote_username
sn_password = your_simplenote_password

If you installed this via pip install, you should now be able to start the application by typing "nvpy". The first time you run it, it will take a while as it downloads all of your simplenote notes. Subsequent runs are much faster as it uses the database it stores in your home directory.

If you prefer to run from your git clone, you can just invoke python on, or on the nvpy package directory.

The example nvpy.cfg shows how you can configure the font family and size.

Keyboard handling

nvPY was designed for lightning-speed note-taking and management with the keyboard. Here's a summary of the different shortcut keys:

Key combo Action
Ctrl-A Select all text when in the note editor.
Ctrl-D Move note to trash. This can be easily recovered using the simplenote webapp.
Ctrl-F Start real-time incremental regular expression search. As you type, notes list is filtered. Up / down cursor keys go to previous / next note.
Ctrl-G Edit tags for currently selected note. Press ESC to return to note editing.
Ctrl-M Render Markdown note to HTML and open browser window.
Ctrl-N Create new note.
Ctrl-Q Exit nvPY.
Ctrl-R Render reStructuredText (reST) note to HTML and open browser window.
Ctrl-S Force sync of current note with simplenote server. Saving to disc and syncing to server also happen continuously in the background.
Ctrl-Y Redo note edits.
Ctrl-Z Undo note edits.
ESC Go from edit mode to notes list.
ENTER Start editing currently selected note. If there's a search string but no notes in the list, ENTER creates a new note with that search string as its title.


  • Syncs with simplenote.
  • Support for simplenote tags and note pinning.
  • Partial syncs (whilst notes are being edited) are done by a background thread so you can keep on working at light speed.
  • Can be used offline, also without simplenote account.
  • Search box does realtime regular expression searching in all your notes. All occurrences of that regular expression are also highlighted in currently active note.
  • Markdown rendering to browser.
  • Continuous rendering mode: If you activate this before starting the markdown rendering, nvpy will render new html of the currently open note every few seconds. Due to the refresh tag in the generated HTML, the browser will refresh every few seconds. MAGIC UPDATES!
  • reStructuredText (reST) rendering to browser. Yes, you can use nvPY as your reST previewer.
  • Automatic hyperlink highlighting in text widget.
  • KickAss(tm) inter-note linking with [[note name]]. If note name is not found in current list of notes, assumes it's a regular expression and sets it in the search bar. See the screencast.

Planned features

  • Full(ish) screen mode.
  • Full syncs also in background thread. At the moment does a full sync at startup, which can take a while. nvpy already does background thread saving and syncing while you work, so everything you type is backed up within a few seconds of you typing it.
  • Prettiness.

Bugs and feedback


  • Sjaak Westdijk made significant contributions to the code starting after the 0.8.5 release.
  • nvpy uses the fantastic library by mrtazz.
  • The brilliant application icon, a blue mini car (not as fast as the notational velocity rocket, get it?), is by Cemagraphics.
  • stfa, thanks for the tip!