Lately I’ve been trying to experiment with weaning myself off the CPU/Memory expensive GUI clients and instead try living more on the command line. I came to a conclusion that you can’t really go wrong with command line. For one, it gives you an incredible amount of power, but we already talked about that in other posts. Two, it is much, much snappier. My aging work laptop barely notices when I run Pine, Vim and Midnight Commander side by side, but if I launch Thunderbird, Eclipse, Dolphin (KDE File Manager) and a dozen tabs in Chrome it starts to gasp for air every once in a while. Finally it looks ridiculously cool. I’m serious – people get so confused when they watch me work. I love it.
Of course the good reason not to go all command line is because it can be a pain in the ass sometimes. And no – I don’t mean file management and all that stuff. That’s actually when the shell apps and the unix philosophy shines. I’m talking about shit like email.
Let me get this of my chest: email fucking sucks. All email clients blow. All of them. Outlook is a monstrous abomination that I will never even touch. Thunderbird takes about three hours to open and leaks memory like a motherfucker. Kmail which I used extensively for years is an amalgamation of byzantine, buggy and bizarre and like everything it went to shit in the recent KDE releases. In fact the one mail client that I actually kinda enjoy using is the one that lives on my iPad, though the push thing can be wonky sometimes when you have a million IMAP folders and server side filters filing mail to them.
Right now I don’t even use clients on non-mobile platforms. I cut out the middle man and usually go directly to the source – I log into my Gmail for personal crap, and to the corporate Zimbra server for work. And the experience does not suck terribly. The web clients are limited and crippled in just the right ways to make the experience bearable to me. The latency of dealing with dynamic web apps still kills me though.
I mean I shouldn’t have to wait motherfucking seconds to view what 99% of the time is plain text or basic HTML. But when you are using webmail there are page refreshes, ajax spinners, wait times, and etc…
It seems that a logical solution to this annoyance would be to use a blazing fast command line client. Sad part is that these days your choice is usually between Mutt, Pine and Go Fuck Yourself. All of these, except the last one were made in like early Pleistocene (the third one was made by your mom in my bed last night, so there) and so they are not exactly user friendly.
And I don’t mean “steep learning curve” user friendly. I mean, just plain shitty. I am not one to shy away from a little bit of a challenge – I use Vim for fuck’s sake. What I’m saying is that Pine and Mutt are great if all you want to do is to keep all your emails in your inbox and only see a list of subject lines on the screen when you open the client. They provide a very bare-bones, basic email experience, and they tend to be faster than webmail so I guess I can live with that.
But sometimes I wish they could do more. I wish there was a modern day command line email client that would be command line driven (like Pine and Mutt) but actually do some of the things that webmail clients do these days. Among other things I actually look for these sort of features:
- Folder list in the sidebar – it should be an expandable tree view in which folders with unread messages should be different color/bolded and should display a number of unread emails next to the name. Most modern email clients and web clients do this. I understand why Pine and Mutt do not have that, but as evidenced by apps like Midnight Commander a two or three pane layouts are completely workable for NCurses apps. I’d love to have something like NERDTree in Vim where I could just key over to my folder tree. Granted, switching folders in Pine is jot horrible but I’m more about the unread mail indicators.
- Better attachment management – dealing with attachments in Pine can be a pain. The easiest way to save all the attached files at once to the same folder is to export the entire message there. Attaching multiple files to an email is also a pain. It would be nice to have a robust and easy way to do both.
- Email body excerpts – I like to see a short excerpt of the email shown next to the subject. Both Gmail and Zimbra support it, and whenever I use a native client that does not I feel like I’m missing out. Sometimes there is just no reason to open an email when you can at a glance see that the body is just “Thanks” and nothing else. Lack of it is not a deal breaker but it would be something nice.
- Some HTML Support – I know, I know – HTML emails suck, blah, blah, blah. Still, I’d like there be an option for me to compose a message in say Markdown like syntax and have the client sent it as a prettified HTML email so that my recipients don’t have to keep telling me my emails look “odd” in their Outlook.
The ability to work with an IMAP server and not completely fuck up would be good too.
So those are some of my wish-list requirements for a command line mail client for geeks and power users. Mutt and Pine are great, very flexible and they work amazingly well in weird conditions – for example over SSH session on a dumb terminal with limited character set. That said, I think there ought to be enough interest for a command line mail client designed specifically to be used in a modern, color terminal. Something that is not encumbered by the need to look good on an 80 character wide display – something with modern sensibilities that still has the power, flexibility and configurability of a mail client from the olden days. My gripes about Pine are mostly about usability and layout – I want a client that looks more modern.
Does a client like that exist out there? If it does, I have never heard of it. If you know it and use it, please let me know because I would love to try it out.