Configuring aerc for git via email April 20, 2020 on Drew DeVault's blog

I use aerc as my email client (naturally — I wrote it, after all), and I use git send-email to receive patches to many of my projects. I designed aerc specifically to be productive for this workflow, but there are a few extra things that I use in my personal aerc configuration that I thought were worth sharing briefly. This blog post will be boring and clerical, feel free to skip it unless it’s something you’re interested in.

When I want to review a patch, I first tell aerc to :cd sources/<that project>, then I open up the patch and give it a read. If it needs work, I’ll use “rq” (“reply quoted”), a keybinding which is available by default, to open my editor with the patch pre-quoted to trim down and reply with feedback inline. If it looks good, I use the first of my custom keybindings: “ga”, short for git am. The entry in ~/.config/aerc/binds.conf is:

ga = :pipe -mb git am -3<Enter>

This pipes the entire message (-m, in case I’m viewing a message part) into git am -3 (-3 uses a three-way merge, in case of conflicts), in the background (-b). Then I’ll use C-t (ctrl-T), another keybinding which is included by default, to open a terminal tab in that directory, where I can compile the code, run the tests, and so on. When I’m done, I use the “gp” keybinding to push the changes:

gp = :term git push<Enter>

This runs the command in a new terminal, so I can monitor the progress. Finally, I like to reply to the patch, letting the contributor know their work was merged and thanking them for the contribution. I have a keybinding for this, too:

rt = :reply -Tthanks<Enter>

My “thanks” template is at ~/.config/aerc/templates/thanks and looks like this:

Thanks!

{% raw %}
{{exec "{ git remote get-url --push origin;
    git reflog -2 origin/master --pretty=format:%h; }
  | xargs printf 'To %s\n   %s..%s  master -> master\n'" ""}}
{% endraw %}

That git command prints a summary of the most recent push to master. The result is that my editor is pre-filled with something like this:

Thanks!

To git@git.sr.ht:~sircmpwn/builds.sr.ht
   7aabe74..191f4a0  master -> master

I occasionally append a few lines asking questions about follow-up work or clarifying the deployment schedule for the change.

Articles from blogs I read Generated by openring

Colorado SB26-051 Age Attestation

Colorado is presently considering a bill, SB26-051, patterned off of California’s AB1043, which establishes civil penalties for software developers who do not request age information for their users. The bills use a broad sense of “Application Store” whic…

via Aphyr: Posts March 6, 2026

npmx: A Lesson in Open Source's Collaboration Feedback Loops

npmx launched today, and witnessing its incredible development journey has taught me a lot about what I’m calling the collaboration feedback loops of successful Open Source projects — patterns where every contribution to a project makes future contributions…

via Vlad's Website March 3, 2026

Status update February 2026

Hey there! 4 months since last time? But I wrote in between! Let’s start. hare-lex, hare-template # I ended the last year with something I’m really proud of. hare-lex and hare-template provides really good tools for Hare users. hare-lex is based on good graph…

via Willow's feed February 26, 2026