Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status codecov Join the chat at License: MIT

ashaw-notes was created to allow for quick and easy note taking and retrieval of information and personal context. With a keen focus on speed of entry and filtering, ashaw-notes allows quick overviews of the previous day, month, and year for time tracking or simple daily standup updates.

Rewritten completely in python 3 (originally a php application), this application supports:

  • Multiple backends (flat text file or Redis datastore)
  • Note CRUD
  • Note Searching/Filtering
  • Backend data porting (for trying out various backends)
  • Extensibility - Adding in multiple connectors


Clone or download the ashaw-notes github project.

You can easily downlaod the repository as a zip file here. Once downloaded, extract it to a local directory.

Make sure you have Python 3 installed on your system, if you don't download the latest version here.

Install the requirements

$ pip3 install .

Note to Windows users: uses readline to allow for entry suggestions, it is not possible to install this from the requirements file but instead must be compiled on your local machine.

Configure ashaw-notes

Copy notes.config to notes-local.config and begin editing, decide if you want to use a redis backend or a local file. There are benefits to both.

Redis offers:

  • global data storage and retrieval
  • an ability to share notes on any network
  • future options to create and retrieve notes on mobile devices
  • redundancy (when configured with Redis Sentinel)
  • atomic updates to data changes (transactions)
  • potentially faster filtering on very large datasets

Local files offers:

  • secure note storage
  • less latency on data retrieval
  • offline note taking
  • automatic backups on destructive updates

For running ashaw-notes on Redis, you can either run your own Redis container/service or use a free Redislabs account as notes are very small in size. Notes taken from 4 years of use requires about 12MB of memory. The system attempts to use a little memory as possible, resulting in many sets being ziplists.

Running ashaw-notes

After configuring the application execute ashaw-notes quicknote. You will be presented with an input box to add in your first note. After pressing "Enter" your note will be saved and the command will terminate.

For speedy note inputs it is recommended that quicknote be bound to a shortcut key. A common key combination is "Ctrl + Shift + ~"

Migrating Notes

If you're wanting to sample multiple backends (or if you have a local notes file you'd like to import into Redis) you can use ashaw-notes migrate. Simply execute the script with the modules you want to use as parameters. For example,

$ ashaw-notes migrate local_notes redis_notes

will migrate the notes in your local system file to redis while

$ ashaw-notes migrate redis_notes local_notes

will migrate all the notes stored on an external redis server to your local machine.

Running the notes GUI client

ashaw notes is a two-staged application. ashaw-notes quicknote allows for data entry and the QT GUI lets the user view and filter notes stored.

To run the GUI client, you must first have QT installed on your local system. Once the prerequisites are met you can run the GUI by executing

ashaw-notes gui

A UI will popup with a basic notes interface and a filter box at the bottom of the window. Typing in this filter box will allow you to quickly search your notes.


For development, you can run pip install in so-called editable mode using the -e flag (

pip install -e .


Note taking made easy




Code of conduct


No releases published


No packages published

Contributors 4