A keyboard-driven email client for macOS

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

Display rules shorten subjects and color run results.

A day with inboxctl

The inboxctl workspace with the folder pane, message list, and an open message

Keyboard-first

Read HTML. Write Markdown.

Read HTML messages with remote images blocked until you allow them. Allow images from chosen senders; 1×1 tracking pixels remain blocked. Press m i to view the message source, or m l to list links and open the first nine with number keys.

A Markdown reply with a live HTML preview
The preview follows the line your cursor is on.

Preview Markdown as you write, including tables, task lists, footnotes and strikethrough. Quoted plain text is excluded from Markdown formatting. Pasted images are attached and referenced in the message body.

Find the email you need

Search your synced mail locally. Use the same queries in folders and rules.

Configure inboxctl in TOML

Edit themes, layout, fonts, and message columns 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
Pick one of four themes or create your own.

Handle email in bulk

Archive, mark read, delete, or move every search result with M followed by the action key. Use Space to select individual messages. Press u to undo.

Mail rules and display rules

File notifications automatically and flag mail that needs a reply.

~/.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

Saving the file applies the rules to existing mail too. Errors are underlined; your last valid rules keep working.

Before
After

More features

Pricing

Try all features free for 30 days. The trial resets with each minor release.

Perpetual licence after 12 months. After 12 consecutive months of subscription, you can keep using the version that was current six months into your subscription, even if you cancel.

Checkout opens on Stripe, and your receipt and card statement will say Link: Sold through Link, LLC is the merchant of record. Buying means you agree to the Terms of Service, Privacy Notice and Refund Policy.

Download inboxctl

For macOS. Supports IMAP, JMAP, and POP3.

Download inboxctl.dmg

Version 1.0.5, 11 October 2026. sha256 · All releases