An email client for developers
Your email.
Your rules.
Organize mail with rules, customize the message list, and write replies in your editor.
Try inboxctl Watch a day with inboxctl
A day with inboxctl
Completely keyboard-driven. (Emacs not required)
Group GitHub notifications by organization and repository, then shorten and color their subjects with display rules.
- /search mail
- gjump to a folder or tag
- c redit the rules
- c dedit the display rules
- m aarchive the selected message
- uundo, including server changes
Find the email you need
Search your synced mail locally, by content, sender, attachment, and more. Use the same queries in folders and rules.
Configure everything in text
Choose your theme, layout, fonts, and message columns in TOML, using your editor or ours.
~/.config/inboxctl/config.toml
[ui]
theme = "inboxctl"
layout = "( folders / tags ) | ( message_list / message )"
message_list_format = [["unread", "flag"], "date", "from", "subject"]
block_images = true
[ui.font]
families = ["JetBrains Mono", "JetBrainsMono Nerd Font"]
size = 13.0
Sensible defaults included. You can disagree with all of them.
Handle email in bulk
Because GitHub can send 50 emails an hour. Archive all search results with M, or select messages with Space. Press u to undo. The rollback plan is one key long.
Rule with rules (and style)
File notifications automatically and flag mail that needs a reply. Use display rules to remove repetitive prefixes and make failed runs stand out.
~/.config/inboxctl/rules
# group GitHub mail by organization and repository
from:notifications@github.com
subject~/^(?:Re: )?\[(?<owner>[^\/\]]+)\/(?<repo>[^\]]+)\]/
-> file GitHub/${owner}/${repo} sort count
# file the mailing list and mark it read
list-id:rust-users -> file Lists/Rust, mark read
# flag mail from your boss and show a Dock dot
from:boss@corp.example is:unread -> flag, dot
# count unread messages in each folder
is:unread -> count folder
~/.config/inboxctl/display-rules
# drop the reply marker
from:notifications@github.com -> match:msg /^Re: / replace ""
# shorten the repository prefix and color it cyan
from:notifications@github.com -> match:msg /\[[^\]]+\/([^\]]+)\]/ replace "$1" cyan
# align PR numbers on the right
from:notifications@github.com -> ralign:msg /\S/ /#\d+$/
# show run results as green PASS or red FAIL
from:notifications@github.com -> match:msg /Run succeeded:/ replace "PASS" green
from:notifications@github.com -> match:msg /Run failed:/ replace "FAIL" red
Save with Cmd S to apply rules to existing mail too. Errors are underlined; your last valid rules keep working. A syntax error needn’t become an incident.
More features
-
Your editor, inside your email
Write messages and edit rules in Neovim or Kakoune with your existing configuration. The one you were going to finish in 2019.
-
Write in Markdown
Preview formatted email as you compose. Paste images directly into the body.
-
Custom counts and badges
Choose what the sidebar counts and when the Dock icon shows a badge.
-
Quote the part you mean
Select a passage to quote in your reply.
-
Multiple sender identities
Switch identities, each with its own signature, Reply-To address, and Bcc settings.
-
Open links by number
List a message’s links and open the first nine with number keys.
-
Control image loading
Allow remote images from chosen senders. Images declared as 1 × 1 pixels stay blocked by default.
-
Return to your draft
Save drafts locally with recipients, body, and attachments. Sleep on the strongly worded ones.
-
Pick your colors
Click a hex color in the config editor to adjust it visually. Bikeshedding, with a preview.
-
Standard or Emacs keys
Choose a preset for the built-in editor. Both include incremental search.
-
Add an account by typing your address
Enter your email address to look up your provider’s settings. Setup includes a link to create an app password.
-
Today's mail arrives first
Read and manage recent messages while older mail downloads in the background.
-
Folder management
Create, delete, hide, or stop syncing a folder from the folder pane. Naming them remains one of the hard problems.
-
Folders in your language
Recognizes your provider’s trash, drafts, and archive folders across languages.
-
POP3 accounts too
Download mail with the option to keep a copy on the server.
Try it before you buy it
Available for macOS. Supports IMAP, JMAP, and POP3.