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

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.

Date: 2014-01-16T15:58-0600

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0