In nearly two decades of experimenting with ways of storing and retrieving text and other snippets of information, largely documented in the "Conquer Your Text" series of articles, I've found that most applications take a fairly heavyweight approach, requiring me to hand my data completely over to their care, keeping it in a specific place or (even more often) in a document and format specific to the application. That's why I was intrigued by the lighter touch of EagleFiler, from C-Command (the development house of Michael Tsai, who also writes SpamSieve (see "Tools We Use: SpamSieve," 17 February 2003) and other utilities I wouldn't want to be without).
EagleFiler's chief document type is called a "library." You can have as many libraries as you like, and each library is just an ordinary folder in the Finder, containing files that are your data; each snippet is simply a file in a standard data format. A library also contains some housekeeping files maintained by EagleFiler. So you do have to make a conscious decision to keep particular snippets in a particular folder - the snippets can't be scattered all over your hard disk - and you do need, in general, to refrain from altering the contents of that folder directly, interacting with them through EagleFiler instead. But all the same, there are your snippets just sitting there, ordinary files in an ordinary folder, completely visible and accessible in the Finder. You can search your snippets within EagleFiler, but you can also search them with system-level Spotlight. You can open them directly in the Finder. If the world were suddenly struck by mysterious cosmic rays that destroyed EagleFiler, none of your data would be lost, because your data are just normal files in folders.
In the distant past, one might have criticized this scheme for wasting space. Even a tiny text file occupies a minimum logical space on your hard disk - typically 8 KB. So, while 100 snippets of 10 bytes of text data apiece sum to about a kilobyte, 100 files of 10 bytes apiece require nearly a megabyte. However, in the modern scheme of things, where a hard disk will typically have dozens of gigabytes of free space, a few extra megabytes are hardly problematic.
Window on the World -- Since EagleFiler's data are just files in a folder, its chief value lies in its presentation of those files, and how it lets you annotate and search them. I'll start by describing the library window. The basic layout is reminiscent of Mail's tripartite window. At the top is a list of files in the library (called "records"). At the bottom are the contents of the record currently selected in that list. And on the left is a sidebar where you can select to specify the subset of records you want listed at the top.
The sidebar has three sections. First comes a hierarchical list of folders. Here you can make new folders, put folders within folders, and organize records into folders; these folders are real, reflecting and controlling the actual folder hierarchy within the library folder in the Finder.
The second sidebar section is smart folders. As in Mail or the Finder, a smart folder is a saved set of search criteria; clicking one performs the search, determining which records are listed at the top. You can construct (through an excellent interface) some powerfully complex search criteria.
The third sidebar section is tags. You can create tags at will, and assign any number of them to a record; and tags can be structured hierarchically.
So, the sidebar is itself a search mechanism, because you can select any combination of folders, smart folders, and tags to determine what's listed in the top half of the window. In addition, at the very top of the window (in the toolbar) is a search field. EagleFiler's search really shines; it's based on Spotlight (so it can index any file that Spotlight knows how to index), but it uses its own index (making it super-fast) and its own straightforward Boolean syntax.
There is also a secondary Info (or Inspect) window. Here, among other things, you can read and edit a record's "note." A note is an RTF file, associated with a record, that EagleFiler stores for you in a separate Notes folder within the library folder. Thus, you can attach text to a record in addition to its title and contents. And once again, if EagleFiler weren't present, you could still read all your notes, as they are normal RTF files openable in TextEdit.
A World of Data -- EagleFiler can import any kind of file. Within EagleFiler, you can edit a file's title (which is displayed in the upper part of the window), and, in the case of RTF and text files, even its contents. You can ask EagleFiler to open any record via the Finder, but this is often unnecessary, since EagleFiler can display the contents of many file types, and some file types receive special treatment of other kinds. Perhaps the best way to give you some idea of this is to describe some of my own various EagleFiler libraries.
- Notes. This is a large miscellaneous library of text and RTF files. They are vaguely categorized using tags ("Ruby", "Cocoa") but in no other way; I search on them mostly by title or contents.
- Scans. I got tired of saving all my old paper warranties, instruction booklets, receipts, and so forth, so I scanned them all. These files are just images, so they have no internal data; therefore I've given them titles and notes that are descriptive and flexible, for the sake of searchability. The files are JPEGs, and EagleFiler's display of their contents is usually quite sufficient when I need to examine one.
- Orders. When I buy something over the Web, I save a PDF of the browser's receipt page in this library. (This save can be performed in a single move, using the Save PDF to EagleFiler command that appears in every application's Print dialog.) Tags let me specify the stage the order is at ("ordered", "shipped", "received").
- Mail Archive. I use Entourage, which keeps its mail in one gigantic, all too easily corrupted database. So every once in a while I export an Entourage "folder" that's no longer active to EagleFiler and delete those messages from Entourage. EagleFiler keeps each "folder" as an mbox file, but it displays the messages individually using the subject line as the title, and it knows (and displays) a message's From, To, and Date information. All embedded attachments are maintained. Naturally, messages are searchable by contents.
- Bookmarks. This is a massive hierarchy of URL files.
These have all proven to be splendid uses of EagleFiler, except for my Bookmarks library (which is not working out, for reasons I'll discuss in the next section).
Conclusions -- EagleFiler combines ease of use with an underlying ingenuity that makes it feel simple, fast, and lightweight. It's packed with too many clever touches for me to list. The range of things you can import, of ways you can perform an import, and of smart things EagleFiler can do in response, is quite astounding (and you can use AppleScript to extend its powers even further); read the manual online if you want to know more. To give just one example: Suppose EagleFiler isn't even running; well, every library folder contains a To Import folder, and whatever you place there will be imported into that library automatically the next time EagleFiler opens that library. Brilliant.
At the same time, I've occasionally encountered problems with EagleFiler's interface. In fact, over several weeks in 2009, when I was first giving EagleFiler a serious try, I reported many interface issues. Most were small and were quickly fixed, such as a text field that refused to accept a space character, windows opening at the wrong time, a window that forgot what text field I was working in when I returned to it, that sort of thing. On the other hand, EagleFiler still starts up unbelievably slowly, and its Help menu is still extremely slow to pop down when you click it, apparently due to EagleFiler's being written with the PyObjC framework.
And, while EagleFiler is excellent for storage of an occasional URL file, it can't substitute for a full-fledged bookmark repository. The hierarchical display of folders in the sidebar lacks the organizational power of a true outliner. You can't edit an imported URL, so if a Web address changes, you can't change the corresponding listing within EagleFiler - you have to delete and replace the existing URL file. And, while there are various ways to import a Web URL - as a bookmark file, a text file, a PDF, or a Web archive - there's no interface for picking an option at import time: you have to specify it beforehand in the application's overall preferences. (However, you can use a cool browser bookmarklet to overcome this limitation.)
But I've been very happily using EagleFiler otherwise. I'm probably not using it to its full potential, and yet it has already replaced several other snippet keepers in my arsenal. And it's a whole lot better than using the Finder alone! If you already have a folder full of related things, and you still can't readily find the right one, that folder is a candidate for being turned into an EagleFiler library. In fact, that's how I really think of EagleFiler - it's a Finder folder on steroids.
EagleFiler requires Mac OS X 10.4 or later, with 10.5 or later recommended. It costs $40, and you can download and try it for 30 days for free.