note - poor man's yellow sticky notes
Table of Contents
FEATURES
- create, list, summarize, delete, and rename notes
- instant note creation for "ubiquitous capture" – with minimal interruption of your mental state
- Boolean searching with regular expressions – but no indexes to take up space or get out of date
- no prerequisite software to install – note is a single-file executable; just cp to install
- portable – known to run on Linux (tested on Arch), FreeBSD, NetBSD
- works with your favorite editor
- compatible with emacs M-x grep or vim's quickfix
- future-proof: flat-file plain-text data organization means no lock-in
- your notes are just files; they're not sacred; hack them with other tools
- binary data (if you want it) is no problem – but it's also kind of unexciting right now…
- hierarchical categories ("topics")
- command-line tool (works in pipelines)
- command-line completion of options, note names, topics (in zsh)
- time stamps
- garbage collection
MOTIVATION
I needed a quick way to create a note without having to think too much; I needed to be able to search amongst these notes easily; and I needed this to be done via a command-line application with no major dependencies (such as an SQL database) and no complex file formats (like XML).
As a result, note is a single-file shell script (plus a completely optional file of zsh completion rules, and a completely optional minimal emacs mode). (While shell scripts are inherently non-portable, note is known to work on FreeBSD, NetBSD, and Linux – older versions were tested on Mac OS X but I haven't had a Mac for a long time.) It doesn't do anything you couldn't do yourself with vi, cat, ls, find, rm, grep and the like: it just makes the most common combinations of these sorts of tools, for managing notes, extremely easy.
The notes are stored one-per-file in a directory structure (subdirectories form a topic hierarchy). Nothing about this is sacred; you can create a valid note file in this directory with any other tool (like your favorite editor), easily search them with any tools you like, and delete or rename them at any time.
While fundamentally a command-line application, note is designed to work well with your favorite editor and to integrate nicely into a lightweight window manager like dwm, wmii, or awesome.
In exchange for this simplicity, note's searching is not intended to scale to terabytes of data. To give you a ballpark idea of usability, my notes currently take up 27605 kilobytes in 2057 files and a search takes 0.14 seconds of wall-clock time.
COMPARISON TO OTHER TOOLS
note was written to replace the many yellow-sticky-notes programs that I've tried, which tend to have a fundamentally mouse-driven interface, no shell interaction, bloated dependencies, a pathetic built-in gui editor (typically just a toolkit's text box), an idiosyncratic or top secret file format, limited searching (e.g., no regexps or Booleans), and no programmability.
The TODO LIST
Check the note
TODO List and vote for your preferred TODO's.
DOWNLOAD
- note.tar.gz (latest version)
- note-1.38.tar.gz Thu Jan 16 15:58:10 2014
- note-1.33.tar.gz Thu Jun 13 14:05:46 2013
- note-1.31.tar.gz Thu Jun 13 14:05:46 2013
- note-1.25.tar.gz Thu Jun 13 14:05:46 2013
- note-1.22.tar.gz Thu Jun 13 14:05:46 2013
ARCH LINUX
If you are running Arch Linux, you can install (and keep updated)
note
via pacman
. Just add these lines to /etc/pacman.conf
:
[kw] Server = http://www.lib.uchicago.edu/keith/pkgrepo
and run:
pacman -Sy note
to install it the first time.