The Very Opinionated Mail Interaction Toolkit

Email. Some love it, some hate it. Everyone knows it. Many are working on replacing it, but I think secretly everyone agrees that it’s not going anywhere anytime soon. At least until then, most of us will have to deal with email. So I made a thing.

For context, let me tell you how I read email: with a hot beverage in one hand. I read through my email essentially as a break from other (usually keyboard-centric) activity. Hence, I like to do it in a graphical environment, so I can use the mouse with my other hand to do move or mark it accordingly.

Here is the thing, though: after reading through my email, maybe replying to some, there is still some emails that I need to actually work with. This work happens in my keyboard-centric mode, but that is not very well-supported by GUI email clients. Setting up an additional TUI email client just because I want to work with some emails (notably, outside of the email client) doesn’t seem right either.

This is where vmt, or vomit as I lovingly call it, comes in. It expects your mail to be in a maildir on your computer (see below). But besides that, it doesn’t care how you read your mail. You don’t even need to read it from that maildir.

What it does is give you very efficient access to specific emails (or attachments) and use those with other tools, right on the command line. The project page has a lot of details and some examples, so check it out if you are interested.

I hope that this tool will help some folks to get more on-board with email-based workflows, e.g. with git, as it doesn’t require you to change your mail reading habits. I know one can be a little attached to those ☺

I am working on making this more easily available, but for know you’ll have to compile it yourself, either by checking out the git repo or running cargo install vomit. Also, the biggest usability issue right now is probably how to get your mail into a local maildir in a way that vomit likes. I currently use mbsync (part of isync) with the SubFolders Maildir++ option. But I do hope to offer a built-in solution soon. Configuring mbsync can be a little finicky.

If you think this sounds like something you’d want to use, I’d love to hear what you think. What are features you’d like to see in this? In what ways could the interface be improved? Is something not working on any of your mails? Don’t hesitate to reach out to me, either via my public inbox, or e.g. in #sr.ht.watercooler on Libera Chat.