What does HackerNews think of mblaze?

Unix utilities to deal with Maildir

Language: C

I combined mblaze (https://github.com/leahneukirchen/mblaze), fzf and standard UNIX tools to build my own CLI MUA in under 300 lines, most of which is shell scripts.

When UNIX is your platform you don't need a complex UI framework with thousands or millions of lines of codes, and you get to reuse knowledge you've already built elsewhere.

I need to write more about it

I have ~200 lines of scripts that use fzf and mblaze (https://github.com/leahneukirchen/mblaze) as the ui for my very own mua. It's all Unixy and lovely. I should write a page about that
If you like Himalaya, you'll probably like mblaze as well (https://github.com/leahneukirchen/mblaze)

I also find fzf to be very good for building simple UIs. In fact I saw ways to do 80% of burgr with a few lines of fzf; composable tools really are the bee's knees

I self‐host mostly because local copies of things give me some privacy (sites won’t know what my IP is searching for), and it also lets me work easily when Comcast is down… which is annoyingly frequent in my neighborhood.

All of these machines are running OpenBSD, except the gaming machines and the HTPC.

• Outgoing Email: OpenSMTPD, with mandatory TLS. Since I’m the only one sending email from my domain, the outgoing relay is hidden behind my LAN and my DKIM keys never leave my network. Outgoing mail gets routed via Wireguard through a VPS so it doesn’t look like it’s coming from a residential IP block.

• Incoming Email: OpenSMTPD on my MXes, with MTA‐STS and DNSSEC/DANE so as many senders use TLS as possible. Delivers to Maildir on my LAN, which I access directly using mblaze over SSH (https://github.com/leahneukirchen/mblaze) and IMAP via Dovecot (which supports Maildir backend).

• Roundcube webmail.

• DNS zones: NSD running on two VPSes, slaves pulling their config via WireGuard from the master which runs in a VM on my LAN.

• Public webserver, with personal (public) homepage, Git repositories (clonable and browsable via CGit), photo gallery, files/images/random files when I need to share them by sending a link in IRC, etc.

• Matrix: Synapse for the server, Element for the client. Besides hanging out in Matrix rooms I use this for one‐on‐one audio calls with my friends (generate a link, send it to them, and chat through the browser).

• Pleroma, so I can interact with the Mastodon network.

• Apertium for text translation. The range of languages is a bit limited but for supported pairs it’s nice to avoid Google Translate.

• A home theater PC in my living room running Kodi, which pulls all my Blu‐Rays from a home NAS.

• A powerful gaming machine that uses Steam to stream games to either the HTPC or my Steam Deck. I only use this at home… I wonder how bad the latency would be if I connected to it when on a trip?

• My music collection, whether ripped from CD or bought digitally, is automatically tagged and sorted with Beets, and I run the web plugin to access it over the web. Beets’s web interface is kind of primitive; I would love to replace it with something like FunkWhale.

• Full mirrors of websites with free content: Wikipedia, Wikimedia Commons, Wiktionary, Stack Overflow, Project Gutenberg, Standard Ebooks

• Full OpenBSD package mirrors

• OpenStreetMap, running OSRM (routing) on top of an open source Leaflet/Mapbox demo I set up years ago. I’ve been meaning to update this to something more modern and less reliant on Mapbox software.

• Radicale for CalDAV/CardDAV, so my calendar and contacts are synced across all my devices automatically.

• Home adblocking with Unbound (what most people use PiHole for I guess). DNS lookups for my home network are anonymized with DoH over Tor (CloudFlare provides documentation for how to do this).

• Ways to access my home network when away from home: WireGuard VPN in a roadwarrior configuration; public‐facing SSH (with WebAuthn‐backed keys); failing that, an HTTPS proxy with Squid. (Yes, I have been stuck at conferences where the wifi network blocked SSH, WireGuard, and all traffic that wasn’t HTTP/HTTPS or DNS from the blessed server!)

You're probably looking for notmuch, which integrates very well with other tools. There's also mblaze (https://github.com/leahneukirchen/mblaze) that might be of interest.
After dabbling with `aerc` I've moved to `mblaze` which has been a blast to work with. It really emphasizes the unix philosophy and allows for composition of commands.

https://github.com/leahneukirchen/mblaze

I've started cataloging all the terminal mail clients in a list: https://erock.lists.sh/terminal-mail-clients

Happy to add others if people know of some that I've missed.

I've been loving `mblaze`[1] lately after trying `aerc` for a few months. It's been a lot of fun using an email "client" that really emphasizes the unix philosophy. I don't have a ton of email in my primary address and I always reach inbox zero by the end of the evening. So ymmv.

[1] https://github.com/leahneukirchen/mblaze

Minimal you say? How about a simple collection of cli tools to interact with Maildirs!

If you're a CLI junkie like me, I think you'll like mblaze[0]. It's written by one of the maintainers of Void Linux, Lea Neukirchen, FWIW.

[0]:https://github.com/leahneukirchen/mblaze

Aerc looks amazing, but I am still waiting for threading support before making the jump [1]. To the best of my knowledge, it supports everything else I would need.

[1]: https://todo.sr.ht/~sircmpwn/aerc2/94

My current stack is: Mutt, Neovim, fdm, msmtp, Syncthing, notmuch, lynx (for HTML conversion), mblaze [2] (for scripting), and a tiny pair of scripts to snooze and unsnooze e-mails. Here is an interesting observation, although a pipeline like this may look terrifying, it makes swapping in Aerc to take it for a spin trivial since it all interacts with a Maildir.

[2]: https://github.com/leahneukirchen/mblaze

REMOTE | BACKEND ENGINEER / SYSOPS

  Location: Hokkaido, Japan
  Remote: Absolutely (have prior experience)
  Willing to relocate: Unlikely
  Technologies: Linux (sh, coreutils, *etc.*), shellcheck, bats, C, valgrind, gdb, radare
  Interests: APL/J/K, Haskell, metamath, reverse engineering
  Side projects: 8-bit TTL CPU, Makefile linter (*a la* shellcheck), J port of co-dfns[1]
  Résumé/CV: wilsonb.com/cv.pdf
  GitHub: https://github.com/xelxebar
  Email: [email protected]
Professionally, my experience is mostly in backend and systems engineering. Academically, my background is in math and model building. Personally, a significant amount of my time has been spent tinkering with linux userspace. From my GitHub profile, you can see a few (old) projects and several PRs that I have authored. This should give a taste of my sensibilities regarding good communication and code practices. Most of my personal repositories I host personally at my website wilsonb.com. If interested, please let me know and I can provide read access.

Just for fun and to get a flavor of my personality, here is a bit of what my daily driver looks like:

    OS: Void Linux
    Window manager: bspwm (modular and tiling)
    Terminal emulator: st
    Mail User Agent: mblaze[0]
    Browser: lynx and qutebrowser
[0]:https://github.com/leahneukirchen/mblaze [1]:https://github.com/Co-dfns/Co-dfns
REMOTE | BACKEND ENGINEER / SYSOPS

  Location: Hokkaido, Japan
  Remote: Absolutely (have prior experience)
  Willing to relocate: Unlikely
  Technologies: Linux (sh, coreutils, *etc.*), shellcheck, bats, C, valgrind, gdb, radare
  Interests: APL/J/K, Haskell, metamath, reverse engineering
  Side projects: 8-bit TTL CPU, Makefile linter (*a la* shellcheck), J port of co-dfns[1]
  Résumé/CV: wilsonb.com/cv.pdf
  GitHub: https://github.com/xelxebar
  Email: [email protected]
Professionally, my experience is mostly in backend and systems engineering. Academically, my background is in math and model building. Personally, a significant amount of my time has been spent tinkering with linux userspace.

From my GitHub profile, you can see a few (old) projects and several PRs that I have authored. This should give a taste of my sensibilities regarding good communication and code practices. Most of my personal repositories I host personally at my website wilsonb.com. If interested, please let me know and I can provide read access.

Just for fun and to get a flavor of my personality, here is a bit of what my daily driver looks like:

    OS: Void Linux
    Window manager: bspwm (modular and tiling)
    Terminal emulator: st
    Mail User Agent: mblaze[0]
    Browser: lynx and qutebrowser

[0]:https://github.com/leahneukirchen/mblaze

[1]:https://github.com/Co-dfns/Co-dfns

I wonder if his workflow could be even more automated using a MUA like "[nm]mh" (http://marmaro.de/prog/mmh/) or "mblaze" (https://github.com/leahneukirchen/mblaze). The latter is maildir-specific though.
You might find mblaze (https://github.com/leahneukirchen/mblaze) interesting; it's not too far off from what you describe.
Nice, looking forward to trying it out. Other similar projects worth mentioning:

https://github.com/leahneukirchen/mblaze - As the author says, "Unix utilities to deal with maildir".

https://github.com/aligrudi/neatmail - A noninteractive client with ex-like commands

http://plan9.stanleylieber.com/mother/ - for Plan9 people.