Blog |Follow Nick on Twitter| About


I'm a big fan of Simplenote, the iOS app is great but the OSX app, not so much. I had been using nvAlt as a client as it supports all the features that the official client does plus it allows you to take a plain text copy locally which can be opened with an external editor (like atom). The issue I had with this approach was that if you made a change on your phone, you had to open and sync with nvAlt prior to editing the local text file which sometimes can catch you out and create conflicts.

I wanted to create my own solution where I could manually (and schedule with cron) a sync of my local text files and Simplenote. I've been running this for a few weeks now, most of the bugs are squashed, so here we have it snsync !


At the moment there is no packaging, so either download the latest release or use git:

    $git clone

Once unpacked, you'll need a configuration file. By default, you need ~/.snsync but the command line options do allow to select another file, the minimal info needed is a username and password:

    cfg_sn_username = [email protected]
    cfg_sn_password = secret

IMPORTANT! Protect your .snsync file with the correct permissions and disk encryption.


Usage is simple... The following options are available:

    $./snsync -h

    Usage: snsync [OPTIONS]

     -h, --help         Help!
     -d, --dry-run      Dry Run Mode (no changes made/saved)
     -s, --silent       Silent Mode (no std output)
     -c, --config=      Config file to read (default: ~/.snsync)

For example: just snsync on it's own should work, but something like this can be used for cron: snsync -s --config=something.txt

I'm using this against my Simplenote store of about 1,000 notes, the first full sync will take a long time (mine -> approx 15mins) you will also find a high number of HTTP ERRORS reported, just wait and re-run the script, missed notes will be downloaded.

NOTE The --silent switch will run quicker, that's due to a delay needing to be added for proper console output.

No warranty is offered, use this at your own risk; I use this for my "production" notes but I always keep backups. The recommended approach is to manually download all your notes for a backup, then use the --dry-run option to observe changes until you are happy.


If you have any issues or questions, please raise them on github, pull requests are welcome, I've already opened a few issues to show the next features/things I'd like to do.



Nick Bettison ©