
Aerc – An email client that runs in the terminal - jcamou
https://aerc-mail.org/
======
rlue
I haven't dug too deep into the features or how this works yet, but it's very
exciting to see any kind of movement in this space at all. I've spent a lot of
time configuring mutt just the way I like it, but I'd throw it all away in a
heartbeat for a good, modern alternative. My wishlist:

* A daemon that pulls new mail from my IMAP servers to my local maildir as soon as it arrives. (I know mutt has an IMAP mode, and it looks like that's aerc's primary mode of operation, too, but I like to have a local copy of my entire mail archive.)

* Rendering plain text markdown into multipart/html emails. I love me some plaintext, but no one else in my life even knows what a terminal is. 80-char lines are too short for desktop displays and too long for small phones (leading to awful linebreaks), which makes me the guy whose emails never look right.

~~~
coldtea
> _80-char lines are too short for desktop displays_

Nothing makes them "too short for desktop displays". Text is not supposed to
fill all/most of the available display width:

“Anything from 45 to 75 characters is widely regarded as a satisfactory length
of line for a single-column page set in a serifed text face in a text size.
The 66-character line(counting both letters and spaces) is widely regarded as
ideal.” \-- The Elements of Typographic Style Applied to the Web

~~~
tssva
"The Elements of Typographic Style Applied to the Web" was originally released
in 2005 and I'm afraid some of the advice may be stuck there. This advice
being among that advice. In 2005 many displays were still 4:3 ratio and this
advice more applicable. With modern 16:9 ratio screens 66 character line
lengths can seem extremely short and require unnecessary vertical scrolling to
view a message with such line length. I find it quite visually jarring to
receive an email with a fixed width that wastes the horizontal space of the
viewing window. Instead of being fixed width the text should be reflowed to
properly fill the viewing window.

~~~
atoav
I got typographic education, and the reason we limit line with on paper (think
about the biggest newspaper you know), isn’t because the lack of space. I know
newspapers that are bigger than any typical display you’d find at a work
place.

Shorter lines are easier and faster to read and you don’t have to turn your
head back and forth every line. This is what German Typographers would call a
_Bleiwüste,_ which means “lead desert” and translates to _wall of text._ And
they call it that for a reason. Typographers use a wall of text when they want
to disencourage users from reading it (legal text etc).

Column based layouts (like in newspapers) don’t work well with scolling pages,
but limited line width certainly does. Scrolling doesn’t really cost the user
much and on top of that smartphones limit the line width anyway, so users get
a more consistent design.

~~~
tssva
I think you minimize the impact of scrolling. I fine scrolling to be extremely
distracting and annoying when the material could have been presented without
requiring scrolling.

On my computer I can resize windows and within some apps such as my email app
the display view so that it meets what is optimal for me and not some
generalized value. It is not unreasonable to expect the text presented to me
to reflow to meet my preference.

------
ncmncm
I saw the title [was: "World's Best Email Client"] and thought, "yeah, sure".

But WOW. It's the e-mail of my dreams. Take my money, damn you!

EDIT: I may have been seduced by the clicky keyboard noises in the video. But
no! Is good!

EDIT2: I forgive you for Wayland.

~~~
ncmncm
I notice aerc is not on the list of projects to donate for...

~~~
Sir_Cmpwn
Whoops, it is now!

------
Tharkun
Off-topic, but damn, Drew, how do you manage to be so productive? Sway alone
is an impressive beast (and the only thing that got me off my awesomewm
addiction). Now you're throwing in an impressive mutt alternative? Thanks for
all the hard work!

~~~
suprfnk
_[–]drewdevault[S] 26 points 17 hours ago_

 _I work on free software full-time now thanks to the support of the many
people who donate to my work :)_

 _[https://drewdevault.com/2019/01/15/Im-doing-FOSS-full-
time.h...](https://drewdevault.com/2019/01/15/Im-doing-FOSS-full-time.html*)

_ _Lots of people help with these projects, too. aerc 0.1.0 includes
contributions from a total of 16 authors._

From:
[https://old.reddit.com/r/linux/comments/bwao4d/aerc_an_email...](https://old.reddit.com/r/linux/comments/bwao4d/aerc_an_email_client_for_your_terminal/epwnx9p/?st=jwhohuww&sh=37d10be2)

------
cweagans
I dunno what it is about the screencast, but it takes _forever_ to load. Any
chance you could upload to Youtube or something so that I can actually watch
the thing?

EDIT: I'm getting about 20kb/s download from sr.ht where the video is hosted.
Definitely not an issue with my connection, as I can download other files
right now at 2Mb/s.

~~~
microdrum
Agree. Can he throw it on Streamable or something?

EDIT: Here it is: [https://streamable.com/3ysv9](https://streamable.com/3ysv9)

------
cjbprime
Neat! I used to be a kernel maintainer, and had a similar setup going inside
emacs with gnus, and dvc-git commands bound to keys to apply patches. Here's
an old blog post about some of it:

[https://blog.printf.net/articles/2010/10/04/git-patches-
in-g...](https://blog.printf.net/articles/2010/10/04/git-patches-in-gnus/)

Gnus was too slow, but worse, emacs is single-threaded, so e.g. polling for
new mail in the background blocked the rest of the editor while it happened. I
never understood why it was impossible to have any kind of multithreading in
emacs.

~~~
Sir_Cmpwn
Hey, would you mind writing up some details about your email setup for kernel
work to sir@cmpwn.com? I'd like to understand more email-driven workflows,
especially from kernel maintainers, to guide aerc's design.

~~~
cjbprime
Hm! I can't think of much to add, except.. the next thing I would've worked on
might've been to integrate a client for
[https://patchwork.kernel.org/](https://patchwork.kernel.org/) to keep it in
sync and mark patches there as handled.

~~~
Sir_Cmpwn
Thanks! I wonder if you've seen my work with mailing lists on sourcehut, by
the way?

[https://sourcehut.org](https://sourcehut.org)

I'm working on a replacement for patchwork. Here's an example of a thread
which was rendered with my tool, which is just generated from organic mail
threads without extra human intervention:

[https://lists.sr.ht/~philmd/qemu/patches/5556](https://lists.sr.ht/~philmd/qemu/patches/5556)

If you have more feedback or thoughts around this, I'd love to hear it too :)

------
Naac
For those of you already using emacs, this mirrors my workflow in mu4e.

Here are some screenshots[0], and here is a guide on how to set up mu4e[1].

[0]
[https://www.djcbsoftware.nl/code/mu/mu4e.html](https://www.djcbsoftware.nl/code/mu/mu4e.html)

[1] [http://cachestocaches.com/2017/3/complete-guide-email-
emacs-...](http://cachestocaches.com/2017/3/complete-guide-email-emacs-using-
mu-and-/)

~~~
ernst_klim
My main concern with mu4e is that I have to fetch _all_ the emails on my local
machine. That's terrible, hope one day there will be a mu4e-like client for
emacs with a thunderbird-like workflow, aka fetch in a lazy manner, before
reading.

~~~
meitham
I am the opposite of you, I prefer all my email to be avaialble offline to me.
I use offlineimap to mirror my remote IMAP folders, and usually read them with
mutt, but occasinaly read them in GUI emacs where the terminal does not
support RTL, such as Arabic emails.

~~~
ernst_klim
>I am the opposite of you, I prefer all my email to be avaialble offline to
me.

Even spam or mails you want to delete before reading? There are dozens of
mails I want to delete or put to the archive folder before reading, thus this
feature is annoying me. And when I want to backup mail, I use offlineimap
explicitly.

Besides, I use mu4e of 3 separate machines, and on each I have to keep a local
copy of all my mails, even mails I've read already.

~~~
meitham
I selectively choose which IMAP dirs to sync. ``Spam`` isn't one of them. I do
however sync my ``Archive`` or ``ALLAMIL`` dir as I often need to quickly grep
(notmuch) for messages wihout having network connectivity.

------
skrebbel
Is Sir_Cmpwn a person or a committee? How can one person produce so much
decent software?

~~~
eterps
@Sir_Cmpwn do you have some insights to share on this? What are the conditions
that make you most productive, and what conditions make you the least
productive?

~~~
Sir_Cmpwn
I get a lot of help. Fostering a healthy and happy community of contributors
in each of my projects is extremely important to me. I'm also able to be more
productive myself thanks to the support of hundreds of people who donate to my
work or buy a sourcehut subscription, which allows me to work on free software
full time.

~~~
theWheez
Any advice or insights on creating and fostering that community for your
projects?

~~~
ddevault
[https://drewdevault.com/2018/06/01/How-I-maintain-FOSS-
proje...](https://drewdevault.com/2018/06/01/How-I-maintain-FOSS-
projects.html)

~~~
theWheez
Perfect! Thank you :)

------
tzs
How easy is it to tell it what IMAP folders to use for sent mail, deleted
mail, and drafts?

A while back, I engaged in epic combat against Apple Mail on my Mac, Apple's
iOS mail app on my iPhone, Outlook on my Mac, Outlook on my gaming PC, Outlook
on my Surface Pro 4, and Thunderbird on my Mac to banish the blight of, e.g.,
Sent, Sent Mail, and Sent Messages, and similar for drafts and deleted.

It was an epic struggle, but I finally got them to all agree on Sent, Trash,
Drafts (and Junk for spam). I'm not going near any other email client now
without being sure I can tell it to use those before I let it have access to
my IMAP.

~~~
Sir_Cmpwn
Easy, you can change what folder it treats as sent. It doesn't have a trash
bin (and it won't) or draft support (and it will) yet.

~~~
mbreese
Out of curiosity, why won’t there be a Trash bin? What about an Archive
folder?

~~~
Sir_Cmpwn
Well, you can get both by just adjusting your keybindings a bit. For example,
add this to binds.conf:

    
    
        [messages]
        D = :mv Trash<Enter>
        A = :mv Archive<Enter>

~~~
mbreese
Perfect! That’s great to know that there are adjustable key bindings
(although, I don’t know why I didn’t expect that!)

Thanks for all the hard work. Every year or so I try to switch my email
workflow over to Mutt. I think I know what I’m trying this year!

------
0vermorrow
Love the idea, and I really will give this a go as a daily driver.

Just a small feedback: I had trouble with one of the requirements -> scdoc,
didn't know what exactly that is (Googling didn't help), so might be worth to
provide a direct link in the README.md to
[https://git.sr.ht/~sircmpwn/scdoc/](https://git.sr.ht/~sircmpwn/scdoc/)

~~~
Sir_Cmpwn
scdoc is probably available in your Linux distro's package manager, and aerc
is designed to be packager-friendly - so eventually the idea is that most
users will apt install aerc, rather than build it themselves.

~~~
0vermorrow
Yeah, the problem is I am on OSX, and I actually had to compile scdoc myself
without the -static flag (missing libraries).

Also, I had to run it as:

    
    
      TERM=xterm-256color aerc
    
    

On OSX, otherwise got:

    
    
      panic: terminal entry not found

~~~
Sir_Cmpwn
This issue comes from tcell, which has a baked-in terminfo database. I'm also
not sure about the state of the terminfo database in general on OSX... in any
case, I plan on improving terminfo support in tcell at some point.

~~~
0vermorrow
It's probably because i use _xterm-kitty_.

Awesome work on aerc, looking forward for continued development.

~~~
kabacha
Can confirm, am running Kitty too and ran into exact same error messages,
exporting different TERM environment variable did fix this though!

------
chrissnell
I really, really like that the editor is embedded within the mail client. The
need to shell out to vim or whatever is what always kept me from using Mutt,
despite loving its UI.

aerc isn't quite as colorful or well-laid-out as Mutt but this is very
promising.

This reminds me a lot of my all-time favorite mail editor, which I miss
dearly: GoldED [0] [1]

[0]
[https://en.wikipedia.org/wiki/GoldED](https://en.wikipedia.org/wiki/GoldED)

[1] [https://blog.onlime.ru/wp-
content/uploads/2018/12/CwkTcNSWQA...](https://blog.onlime.ru/wp-
content/uploads/2018/12/CwkTcNSWQAAeOq0.jpg) (Russian screenshot but you get
the idea)

~~~
fouc
Some color would be nice. (I quite like Irssi's color scheme)

~~~
Fnoord
> (I quite like Irssi's color scheme)

Irssi's default color scheme which, incidentally, is the same as Mutt's
default. Both can be changed. For example, to a solarized color scheme.

------
vjr
I miss pine

[https://en.wikipedia.org/wiki/Pine_%28email_client%29](https://en.wikipedia.org/wiki/Pine_%28email_client%29)

~~~
msbarnett
It’s still around:
[https://repo.or.cz/alpine.git](https://repo.or.cz/alpine.git)

~~~
twic
I've been using it (Pine, the Alpine) as my primary mail client since 1998.

Months after i started using it, someone suggested i try mutt. I'm definitely
going to, but i haven't got round to it yet.

------
russellbeattie
My least favorite email begins with a +Russell at the top, meaning that
there's been a long email thread that I haven't been a part of, and now I've
been pulled in. The text below that is your standard mess of email text: 1)
It's in reverse chronological order starting at the bottom. 2) Each message
has 4 or 5 lines of "to", "from", "cc", "subject" and "date" in between. 3)
Previous messages might or might not be repeated by other email clients 4) All
with varying levels of indenting.

This has to be a common problem. Are there any libraries, projects, email
clients or scripts to help parse it all into something readable? I've looked
and haven't found zip. I know Slack is the new hotness, but for the rest of us
stuck in email, this is a daily hell. The progress of email clients basically
stopped in the mid-2000s.

I swear, the first email client that actually solves this problem will be the
next billion dollar business.

~~~
zAy0LfpBZLC8mAC
The solution is to have the thread forwarded as message/rfc822 attachments
instead of full quote madness.

~~~
russellbeattie
This is definitely already a solved problem - for open or homogeneous
platforms. This is why it's still an issue for everyone else... Microsoft's
general attitude is, "everyone should use Outlook", Apple wants you to use
Mail, Google wants everyone on Gmail, etc. I'm sure this is rarely an issue
inside those companies - threading "just works" since coworkers all use the
same clients. So not only do they have zero financial reason to support
interop or openness, they probably don't even know its an issue.

------
Avamander
How's the UTF-8 e-mail address support? As most clients suck so bad at that it
would be awesome to have an alternative.

How's the GPG and S/MIME support? We'd really need an e-mail client that has
first class support of both. Current solutions I've tried are cumbersome at
best.

Having those two it'd actually be the best e-mail client for me.

~~~
Sir_Cmpwn
UTF-8 support is excellent.

First-class PGP support is planned and a blocker for 1.0, but not there yet.
Here's a mockup to tease you:

[https://cmpwn.com/system/media_attachments/files/000/351/218...](https://cmpwn.com/system/media_attachments/files/000/351/218/original/8a53d9a17950318a.png?1553974029)

[https://cmpwn.com/system/media_attachments/files/000/351/219...](https://cmpwn.com/system/media_attachments/files/000/351/219/original/ec726537fd432d01.png?1553974041)

~~~
Leace
I was about to ask about PGP support too so thanks for the screenshots, they
look great!

Is PGP key discovery based on email planned/welcome? I'm talking about Web Key
Directory introduced by GnuPG [0], being standardized by IETF [1] and already
used by kernel.org [2], gentoo.org and others. GUI e-mail clients such as
Enigmail or Mailpile support it but there is not CLI client with WKD.

[0]: [https://wiki.gnupg.org/WKD](https://wiki.gnupg.org/WKD)

[1]: [https://datatracker.ietf.org/doc/draft-koch-openpgp-
webkey-s...](https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-
service/)

[2]: [https://www.kernel.org/category/signatures.html#using-the-
we...](https://www.kernel.org/category/signatures.html#using-the-web-key-
directory)

~~~
Sir_Cmpwn
Yes, I'd love to have WKD support.

------
pge
I used mutt+offlineimap for a few years, with a corporate account on an
MSExchange Server and the two biggest issues I had (which I hope Aerc
addresses) were:

* no good way to search/auto-complete addresses (I used vdirsyncer which got me the address book locally but there was no easy way to fill-in addresses when typing an email).

* no way to accept calendar requests - I would pull them up on my phone to accept or reject.

Otherwise, everything worked quite well, but those issues annoying enough that
I eventually switched back to a Windows machine with Outlook. The
Email+Calendar+Addressbook integration may violate the Linux philosophy of
doing one thing well, but for today's typical office workflow it is
frustrating not to have a platform with all three integrated.

~~~
btreecat
You might be interested in dav mail.

[http://davmail.sourceforge.net/](http://davmail.sourceforge.net/)

I have it setup so I can use thunderbird for all my exchange interaction
(except group management).

~~~
pge
Thanks - I was actually using Davmail but at the time it did not have the
address book and calendar integration, and I had not checked up on it ina few
years. Looks like it has gotten more features since then. I may have to give
mutt another try...:)

------
tobias2014
What about full text search? This feature has brought me to from mutt to sup
to alot:
[https://alot.readthedocs.io/en/latest/](https://alot.readthedocs.io/en/latest/)

~~~
ddevault
notmuch support is planned! It shouldn't be too hard, if an interested user
were to take ownership over the feature it could probably ship in 0.2.0. Want
to help?

~~~
hu3
Since the client is written in Go, I believe this could be easily done with
[https://blevesearch.com](https://blevesearch.com)

~~~
Sir_Cmpwn
Eh, I would rather use notmuch than develop my own index from scratch. Keep it
email, yo.

------
elagost
I'd leave Thunderbird in a heartbeat if I could find a contact/calendar
syncing terminal client as well. Any recommendations?

~~~
cik
I currently use Thunderbird for mail, and MineTime for calendar. I found the
Thunderbird calendar integrations (5 calendars) way too flaky.

~~~
krzyk
Would be good to have a calendar client in terminal.

MineTime looks cool, but I got a wrong feeling about the looks and yeah,
scrolling down and I saw it: "MineTime is a calendar built on Electron". Nah,
I prefer to have just one browser open (and not Chrome/Chromium).

------
arnoooooo
This is pretty awesome. I see only two things missing :

\- a way to have all accounts in the same tab, with a unified inbox

\- threading support, ideally with folding

~~~
lucb1e
For what it's worth, I would want neither of those and would turn them off if
they existed.

------
marttt
Nice, looking forward to trying it out. Other similar projects worth
mentioning:

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

[https://github.com/aligrudi/neatmail](https://github.com/aligrudi/neatmail)
\- A noninteractive client with ex-like commands

[http://plan9.stanleylieber.com/mother/](http://plan9.stanleylieber.com/mother/)
\- for Plan9 people.

------
throwaway_x13zd
Thank you Sir_Cmpwn, awesome that someone is picking up where mutt left off.

~~~
stevekemp
My attempt was [https://lumail.org/](https://lumail.org/) a console-based
mail-client inspired by mutt, but with 100% lua scripting.

------
anarazel
Looks interesting!

Based on a quick stroll through the source code, I don't see any search
integration. Is that correct?

I guess I could just shell out to notmuch? But I do find virtual folders for
searches really convenient. Currently using neomutt with notmuch support, over
a Maildir (which in turn is separately synced via IMAP using mbsync).

Not having all the context vanish ala mutt would sure be nice.

~~~
Sir_Cmpwn
There's a ticket planned for adding a notmuch backend straight up:

[https://todo.sr.ht/~sircmpwn/aerc2/105](https://todo.sr.ht/~sircmpwn/aerc2/105)

No indirection through mbsync & maildir. This shouldn't be terribly hard - if
you're interested in working on this feature, swing by the IRC channel to get
a rundown of the technical details.

There's also a ticket for search in general:

[https://todo.sr.ht/~sircmpwn/aerc2/93](https://todo.sr.ht/~sircmpwn/aerc2/93)

Which will probably be implemented for IMAP by 0.2.0.

~~~
em-bee
i am looking forward to this. i am currently using supmua, the ancestor of
notmuch, and i haven't been able to switch to any other notmuch based terminal
client because their interfaces all felt inferior to sup. aerc is the first
client i see that does the interface with multiple switchable screens right
from the start. notmuch integration with the ability to keep virtual folders
based on tags and on searches is the only thing keeping me from trying out
aerc right now.

i'll be keeping an eye on it.

~~~
rakoo
You should have a look at astroid
([https://github.com/astroidmail/astroid](https://github.com/astroidmail/astroid)).
It is written by one of the ex-maintainers of sup but uses notmuch, so the
workflows are mostly similar. It's not in a terminal though.

~~~
em-bee
yeah, i am aware. if it wasn't for the terminal i would have tried it. but for
my workflow, email in a terminal is a must.

------
sikhnerd
Very cool!

How does this compare to sup / mutt / alpine / astroid ?

------
euske
I wonder how good it is with wide width characters (in CJK languages).
Handling them in a terminal is rather tricky, and I haven't seen anything
that's good except ones that are developed by the actual users of the
language.

~~~
Sir_Cmpwn
aerc dev here. I am a fluent speaker of Japanese and frequently work with CJK
characters in the client.

------
diehunde
Any idea how to fix this error?:

    
    
        panic: Attempted to draw outside of context
    
        goroutine 1 [running]:
        git.sr.ht/~sircmpwn/aerc/lib/ui.(*Context).Printf(0xc0002fa450, 0x2, 0x1, 0x0, 0x84de7f, 0x4,                   0xc0000d3c98, 0x1, 0x1, 0x50)
        ...
    

I just installed it on Fedora 30 and got that when trying to setup an account.

~~~
Sir_Cmpwn
Try using a bigger terminal emulator. There's a ticket to deal with too-small
terminals more elegantly but it hasn't been done yet.

------
augustk
What I miss is a low-resource email client with a GUI, something I (in
principle) can run on a 20 year old computer.

~~~
smhenderson
Have you ever tried Claws[1]? I haven't used it for a while but when I did I
was able to use it on quite older hardware running trimmed down versions of
various Linux and BSD boxes.

Besides being light weight it's got some good features for an older client,
it's GPL and can use plug-ins for extra functionality.

Nothing to do with he project, just a previously happy user.

[1] [https://www.claws-mail.org/](https://www.claws-mail.org/)

------
bronzecarnage
Great work! I'm looking forward to using it full time. A couple of quick
comments.

1\. It doesn't seem to work with when $TERM is set to some non-default
setting. (panic: terminal entry not found) 2\. When term is forced to
xterm-256-color, aerc crashes when the window is resized.

------
megous
It can't do maildir. I tried mdir:/// maildir:/// file:/// and /.

grep -R maildir of the code returns nothing.

So I guess, using it on local mail is a no go. Sad. I tried it only because
this was advertised, only to be disappointed.

It's better to not advertise features you don't have. Or at least state what
features you have instead of mixing what you have and have not into a feature
list at random.

It's also far cry from the configurability of the mutt/neomutt. But that can
change. It would certainly be nice to have a properly scriptable terminal
based MUA, as neomutt, while nice, and flexible, is kind of hard to configure.

~~~
Sir_Cmpwn
There's a big red disclaimer on this page that says the feature list is a bit
wishful, and the latest version is only 0.1.0. The docs (man pages, start with
man aerc) only document implemented features, you may want to start there.

Here's the ticket for maildir support:

[https://todo.sr.ht/~sircmpwn/aerc2/16](https://todo.sr.ht/~sircmpwn/aerc2/16)

Several people have expressed interest in working on this, I expect we'll see
it for 0.2.0.

As far as configurability is concerned, yeah, the plan is to continue making
it more customizable and configurable. Stuff like filters already afford you a
lot of options today. At some point I might also be interested in adding a
fifo you can use to feed commands into it from a script, too, for turing-
complete customization.

~~~
megous
Yeah, I read it, assumming that easier features would be implemented first.

I still think it's better to split the list into what is completed and
roadmap. It would help me track the progress.

Anyway, good luck. I'll keep my eye on the project, because it certainly seems
interesting.

~~~
Sir_Cmpwn
I don't believe on implementing the easy features first. If you implement the
hard features first, its smooth sailing for the rest of the project!

If you would like to keep track of specific features, check out the bug
tracker:

[https://todo.sr.ht/~sircmpwn/aerc2](https://todo.sr.ht/~sircmpwn/aerc2)

------
GlenTheMachine
Exchange compatibility? Asking for a friend;)

~~~
craftyguy
Can exchange do IMAP?

~~~
edoceo
Yes

~~~
craftyguy
Then it 'supports' exchange. \o/

~~~
GlenTheMachine
It _can_ but whether it _does_ depends on your local IT. Which means it _doesn
't_.

------
chrismorgan
In the video, it seems to be being pronounced “arc”. This is unfortunately
confusable with a widely-deployed email authentication standard, ARC
([http://arc-spec.org/](http://arc-spec.org/)). I suggest contemplating at
least a different pronunciation (even without changing the name, the spelling
is open to about four pronunciations of varying obscurity and
cumbersomeness—none of which particularly suggest the spelling “aerc” when
heard, I may add).

------
inetknght
Hmmm, I'm not familiar with command line email clients but this looks cool. I
wonder if I can use aerc in a bash pipeline? Say, to pipe email content
from/to gpg?

~~~
Sir_Cmpwn
You can't pipe emails into aerc (yet?), but you can definitely pipe emails out
of aerc. The :pipe command is bound to | by default, so you can type, for
example, |gpg --decrypt | less<Enter>.

------
microcolonel
Gnus has been great for me, but after about 40k+ (I stopped looking at the
counts actually) messages in my Maildir, performance suffers for me (that is,
if I start gnus from scratch it takes more than an hour and a half to open,
with my entire Maildir in the page cache, and a huge amount of extremely fast
memory). Notmuch doesn't seem to help at all, or if it would, it's hard to
tell if it's configured correctly.

~~~
csomar
40k email? That sounds too much if it is for a single person. If you get 10
email per days for 10 years, you'd not get to 40k (35.6k).

My suggestion will be to clean your mailbox instead of finding a new client.

~~~
babuskov
> If you get 10 email per days for 10 years

I recall times (mid 2000's) when I was active in a bunch of open-source
communities and mailing lists were the main way to discuss. Getting around 50
e-mail per day was normal.

I kept a lot of those discussions in my e-mail client for later reference,
because the mailing list website had sub-par search function compared to
Mozilla e-mail client I used at the time.

It's possible he's using it as an e-mail archive for mailing lists or
something like that.

~~~
microcolonel
Seems the number has also doubled. This Maildir starts about eight years ago
IIRC, and there are now ~110k messages in it.

Some of that is mailing lists for sure, I'd say I respond to about ten direct
emails (not from lists) per day. If I could use SMTP for IM, I'd probably do
that too.

------
mukundmr
Crashed on first email I read from Gmail. Also, I had to enable "less secure
access" in Gmail for aerc to work. Will try again after a few months.

~~~
andrewchambers
'Less secure' access is a choice by google to lock people onto gmail, they
choose not to implement random device specific passwords.

Better to avoid gmail.

~~~
mjlee
How does it lock you in to gmail? They provide a method by which you can use
any mail client if you'd like.

Applications can always implement OAuth 2.0, which is pretty open (and is what
you'll need to do for other mail providers, not just gmail.)

~~~
andrewchambers
They took something that worked fine, then broke it after they had the
majority of users. There are backwards compatible and secure methods (Like
allowing a unique password per device). It is an obvious tactic to force
people to choose between gmail web client, and outlook/thunderbird/aerc.

To make matters worse they falsely point the blame at competitors and then
people like you defend them.

------
goerz
How does this compare to mutt?

~~~
megous
Mutt/Neomutt is much more mature and has more features and better performance.
(fantastic threads support, fast and very flexible filtering, etc.)

Aerc is very new and written in Go. I tested it on my 100 thousnand mail ARM
linux mailing list archive, accessed via localhost dovecot IMAP server, to see
the best case performance, but it doesn't look good, atm.

It looks like this when I scroll through the archive:
[https://megous.com/dl/tmp/cjitwkaxpsypgcfdvncr.mp4](https://megous.com/dl/tmp/cjitwkaxpsypgcfdvncr.mp4)

It's not really comparable to mutt, yet. The performance is slow, and it
doesn't support threads, which is a must for MUA.

~~~
Sir_Cmpwn
aerc doesn't download all of your message headers upfront - mutt does. All
that time you spend waiting for mutt to open your inbox is downloading all of
the data that aerc is downloading as you scroll. Also, you can scroll faster
with ^d/^u, half a page at a time, or pgup/pgdown, for a full page at a time.

Yes, aerc is not yet as featureful or mature as mutt, but it definitely does
not have inferior performance.

~~~
megous
I use POP3, and only wait for mutt when changing to a folder (4s/100k mails).
Then everything is basically instantaneous.

But yeah, I don't know about mutt IMAP performance, as I never used it. I've
only configured a local IMAP server over my maildir to be able to try aerc. I
have no clue why aerc is taking 100-200ms to load a single message (as you see
in the video) from the localhost. Maybe naggle (is it even used on localhost)?

Also, I'm not sure how you'd make threads work while loading message list only
partially. So full load of the message list is needed anyway (at least once
and cache it locally). It's not some failing. I want thread that started 5
months ago to pop forward if new message is posted to it.

EDIT: Faster scrolling loads multiple messages at once faster. Maybe aerc can
take into account that user may have scrolled past more than one message in
the time the previous message finished loading.

~~~
Sir_Cmpwn
I'm guessing the main problem is that I can't cancel an IMAP request once it
goes out. When you scroll down, one at a time, through all of the messages
like that, I have to wait for ones that scrolled offscreen long ago before I
can read out the details for the ones onscreen now. Adding an option to fetch
all headers when opening a folder might be wise, or just fetching the
offscreen headers in the background while idle. Another thing some email
clients do is open several IMAP connections, but pooling connections to
implement cancellation could get icky.

aerc will also support maildir before 1.0, which doesn't have the same issue,
and will be at least as fast as mutt.

>Also, I'm not sure how you'd make threads work while loading message list
only partially. So full load of the message list is needed anyway (at least
once and cache it locally). It's not some failing. I want thread that started
5 months ago to pop forward if new message is posted to it.

IMAP has a thread extension I intend to put to good use for this purpose.

~~~
megous
> IMAP has a thread extension I intend to put to good use for this purpose.

I didn't know. Very nice.

------
badosu
Pretty amazing! Some observations:

\- Attachments that don't have a filter can't be visualized. For this case
would be interesting to open with 'xdg-open' when hit <Enter>, and/or
'.mailcap' support.

\- Account password is stored in plaintext

\- Occasional rendering artifacts when switching tabs/folders

If those above are fixed plus theming, unread, etc. I can easily see myself
using it as my daily driver.

~~~
Sir_Cmpwn
>Attachments that don't have a filter can't be visualized

You can use :save or :pipe on these, but yeah - xdg-open would also be cool.
Mailcap support would also be great.

>Account password is stored in plaintext

In a chmod 600 file, though. There's also an option for configuring a command
to run to retrieve your password by e.g. decrypting it with gpg: see aerc-
imap(5), or :help imap, for details.

~~~
badosu
It seems ':pipe' sends the data to stdin, I was trying to see a pdf file and
the programs I tried (evince, mupdf) do not seem to support this (or perhaps
usage is different?).

Seems like a good patch to implement a command that saves to a temporary file
and opens with provided program, will certainly follow development, great
work!

~~~
Sir_Cmpwn
[https://todo.sr.ht/~sircmpwn/aerc2/125](https://todo.sr.ht/~sircmpwn/aerc2/125)

:)

------
shereadsthenews
Is it groundbreaking to display mail with an external pager or to pipe it to
filters? These were/are core features of elm, from 1986.

~~~
Sir_Cmpwn
IMO the key innovation is that aerc does it with an embedded terminal
emulator, tmux-style. This allows you to keep using the client for other
things while reading or composing emails.

~~~
shereadsthenews
That is interesting and different. I guess I am accustomed to the "unix way":
I use screen to multiplex my terminal and I have no bad problems from running
multiple instances of mutt on the same maildir.

~~~
Sir_Cmpwn
That workflow to me seems like more of a hack begging to be improved than a
comfortable daily driver. I've never had a problem running mulitple instances
of mutt, either - and I run multiple instances of aerc sometimes, actually -
but since aerc has ownership over your emails and mail accounts it only makes
sense to me that it would multiplex them for you.

~~~
zokier
I'd argue that the aerc approach is also bit of hack[1], but ultimately it
mostly boils down to the limitations of terminals; to have "sub-windows", you
need to implement basically a whole windowing system and terminal emulation
layer.

Makes me think what would email client designed for and integrated with tmux
look like, i.e. the client would open new tmux panes for editors etc.

[1] don't take that as a hard criticism, I happen to think lot of things,
especially around terminals, being hacks.

~~~
Sir_Cmpwn
Well, it's not as hacky as you portray it to be. The windowing system already
needed to be there for other aerc features (and the embedded terminal is used
in more integrated contexts than just windows, too). The terminal emulation is
delegated to libvterm, the same library vim uses for this purpose. The actual
aerc code is pretty simple:

[https://git.sr.ht/~sircmpwn/aerc/tree/master/widgets/termina...](https://git.sr.ht/~sircmpwn/aerc/tree/master/widgets/terminal.go)

<500 lines.

------
notinventedhear
Very excited by the prospect of a modern terminal-mail client that is easier
to use!

After following the README: this is clearly not ready/designed for wide
consumption - the recipe neglects to mention how to install a custom doc-tool
called scdoc (by the same author?) that is required to build it - and there
are no pre-built binaries (that I can see).

~~~
Sir_Cmpwn
Most Linux distros already have scdoc available:

[https://repology.org/project/scdoc/badges](https://repology.org/project/scdoc/badges)

It's not designed to be installed from pre-built binaries. It requires some
other stuff to be set up on your system, too. It's designed to be friendly for
distros to package instead. If you want to install it from source, use the
Makefile like everything else.

------
laktak
[https://github.com/ddevault/aerc](https://github.com/ddevault/aerc)

> This repository is abandoned in favor of ongoing development on git.sr.ht.
> The codebase has been rewritten in Go and is much more stable and useful
> than what you see here.

@Sir_Cmpwn what's the advantage of git.sr.ht over github?

~~~
matoro
That's his own site that he built himself. It runs a ton of services, bug
trackers, CI, mailing lists, wikis, etc.
[https://sourcehut.org/](https://sourcehut.org/)

------
ryjo
I can tell from the video that the interface is quite easy to navigate if
you're a vim user. Very impressive work!

------
alpaca128
I just tried it and I love it! Mutt could never convince me because the
configuration seemed overly complicated and I didn't like the controls.

Now maybe I'm just blind but I can't see a way to highlight unread emails in
any way. Once I can get this working I'll switch in a heartbeat.

------
sulfastor
Why account passwords are stored on plaintext after the wizard? How do you
encrypt them while configuring?

~~~
necovek
Unless you are willing to provide a decryption key on every "check my email"
call (eg. every 5 minutes), an email client (or well, anything requiring
frequent reauthorization) virtually has to have it in "plain text" (or any
obfuscated form which is equivalent to plain text).

Workable alternatives are to store the decryption key in memory for the
runtime of the program (eg. using login keyrings or per-app logic).

If you encrypt your $HOME or your entire disk, storing it in plain text
achieves roughly the same level of protection (eg. decryption key is in the
memory).

------
amiga_500
How is this any improvement over mutt?

I can use mutt with emacsclient as my editor, in tmux.

~~~
zurn
Mutt IMAP is unusable on a laptop since it hangs and loses changes (eg
read/unread status) when the IMAP connection flaps.

~~~
amiga_500
I've used it for years and never had this.

------
sandreas
Good job. Markdown support for sending html-Mails would be very nice ;)

------
epse
Is there any way to add a new folder from aerc? I'm loving it (besides a bug
with reddit emails) but that's a major bummer (as well as no manual "refresh"
option)

------
dllthomas
As another point in the space, have you looked at nmh?
[https://www.nongnu.org/nmh/](https://www.nongnu.org/nmh/)

------
nwmcsween
Hmm why not mblaze[0] over aerc?

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

------
necovek
I find it funny that the first thing on their web site for a text-mode email
client is a video screencast: as someone who likes spending time in text
interfaces (terminal or emacs), it's exactly for the reasons videos are bad.

You can't skip-through videos to get to the part you care about which is
obvious in a textual format (and it's obvious if it's even there). You can't
copy and paste stuff. You usually have to have sound on to understand what's
going on.

Sorry for ranting a bit about this modern tendency to record videos instead of
write text :)

------
major505
Thats neat. I aways wanted an text only email clientem easier to use than
alpine and mutt. This on seens usable out of the box. I will take a look.

------
bojanvidanovic
That looks promising! I wish Mutt had a mail account configurator like the one
in Aerc. Definitely giving it a try.

------
pmoriarty
I have to be skeptical of any email client that's not integrated in to Emacs.

~~~
Sir_Cmpwn
What about integrating emacs into aerc? You can set your EDITOR to emacs and
replace aerc's default keybindings with a more emacs-inspired set. Send me
your binds.conf and I'll add it to contrib in case anyone else wants an emacs-
esque setup, too!

~~~
pmoriarty
_" You can set your EDITOR to emacs and replace aerc's default keybindings
with a more emacs-inspired set."_

I appreciate the suggestion, but unfortunately that's not even remotely
adequate.

By integration I mean exposing every single function and UI element of the
client to Emacs, so that they can be bound, wrapped and extended as needed.
Ideally, these functions would be written in eLisp, so they themselves could
be modified and customized to taste while leveraging the enormous Emacs eLisp
ecosystem.

Emacs email clients have this sort of integration, and it is what gives them
tremendous flexibility and power.

~~~
Sir_Cmpwn
I'm not ignorant of how emacs works - I was just giving you a cheeky response
to your cheeky comment.

~~~
microcolonel
You can also say that Gnus is slow, if you want to be extra cheeky. As
currently configured, opening gnus on my (admittedly a bit large) Maildir
takes more than an hour (no, really, I'm not joking); of course, once it's up
I dare not close it, and that works out fine for me.

~~~
BeetleB
>You can also say that Gnus is slow, if you want to be extra cheeky.

gnus is not the only way to do email in Emacs. IME, it is the most bloated way
to do it.

While I didn't like the tone of the person's comment, I do sympathize with
him. I used various email programs (pine, mutt, Thunderbird, etc) for years -
but all of them seemed to lack something, and the effort to add my desired
features was too high. With Emacs, the barrier to customize my workflow is a
_lot_ lower. Now that I've been using Emacs + notmuch for mail for the last
few years, it's really hard to motivate myself to try anything outside Emacs,
and the feeling is much worse when it's something cool like this.

I even haven't bothered with alot, although it is notmuch based. I mean, is it
trivial for me to make an Org mode TODO linking to an email while in alot?

------
Aloha
Any chance one could convince you to also support nano as a editor option?

~~~
ddevault
Just set EDITOR=nano in your environment, or add it to your aerc.conf. It
already works :)

------
meehow
What a beautiful code! It's not that common nowadays.

------
yayitsreallyme
This is great! More email clients are always welcomed. :)

------
paulhilbert
Is there any way I can see the name of attached files?

------
sulfastor
Doesn't work on Terminator.

~~~
Sir_Cmpwn
Set TERM=xterm and try again. tcell (the library aerc uses to render its UI)
has a really annoying built-in terminfo database, which at some point I plan
on fixing myself.

------
nfoz
This looks fantastic. Thanks!!

------
ilovecaching
What the TL;DR; difference between Aerc and mutt?

~~~
fiatjaf
Watch the video. Aerc is usable.

~~~
ilovecaching
I currently use mutt and have no problems with it, what's the issue?

~~~
fiatjaf
You don't want to hear, but I tried to use mutt with Gmail.

------
bayareanative
Does anyone use alpine?

~~~
tramtrist
Yes, and it works so well that I cannot imagine what the benefits of Aerc
could have over it. I guess I'll have to do a comparison !

------
keyle
It's good to know that the world's best email client is still a work in
progress.

------
carimura
You did it! Congratulations! World's best email client! Great job, everybody!

------
manjana
Dont really see the need for a new email client, we already got Mutt, sup,
alpine and a few others.

