Terminal mail client

Gmail, in your terminal.

Read, search, triage, and send from one static binary. No Electron, no browser tab, and no server in between — your mail goes from Google to your machine and stays there.

curl -fsSL https://postline.dev/install.sh | sh
Download a binary
version
v0.1.0
platforms
macOS · Linux · Windows
runtime
none
license
MIT
The interface

Three panes, or one, depending on the window.

Labels, conversation rows, and every button are clickable, with hover states and scroll wheel support — the mouse works even though you will not need it. A local cache renders the last view instantly while the network catches up, and new mail arrives on its own without moving the cursor off whatever you were reading.

postline132×25
POSTLINE you@example.com
MAILBOXES INBOX CONVERSATION · 2 MESSAGES
Inbox 2 Design review on Thursday (… 12:48 Design review on Thursday
Starred Your receipt from Orbit Cof… @ 07:18
Sent Re: quarterly numbers (2) Sun Alice Chen Aug 19, 2026 · 10:18
alice@example.com
Receipts 1 to You
Hi,
Are we still on for Thursday? I'd like to walk through the new
flow.
Alice
Bob Ortiz Aug 19, 2026 · 12:48
bob@example.com
to Alice Chen, You
Can we move it to the afternoon?
> Are we still on for Thursday?
Reply [r] Archive [e] Star [s] Trash [d]
connected as you@example.com

Try it before connecting anything: postline --demo runs the full interface against sample mail. No account, no credentials, nothing stored.

Keys

Everything from the home row.

j k ↑ ↓
move through conversations
enter
open the conversation
esc
back
tab
next pane
/
search with Gmail's own query syntax
c
compose
r R f
reply, reply all, forward
ctrl+s
send
e s u d
archive, star, mark unread, trash
w
save attachments to disk
n
load more
ctrl+r
refresh now
?
help
q
quit
Where your mail goes

Nothing in the middle.

There is no Postline server.

The binary talks to Google's API directly. Nothing is proxied, and there is no account to create.

Tokens go to your OS keychain.

macOS Keychain, Linux Secret Service, or Windows Credential Manager. On a headless box, an AES-256-GCM file with a scrypt-derived key instead.

Narrow permissions.

Only gmail.modify and gmail.send. Deleting moves a conversation to Trash — Postline never requests the scope that would permit permanent deletion.

Remote images are never fetched.

HTML mail is converted to text on your machine, which structurally defeats tracking pixels.

No telemetry.

The only hosts contacted are Google's OAuth and API endpoints. The source is the whole story.

// expect a warning

Google shows a “this app isn’t verified” screen the first time you sign in. Reading mail requires what Google calls a restricted scope, and clearing that warning requires a review Postline has not completed. Choose Advanced, then Go to Postline. If you would rather authorize an OAuth client of your own, postline --setup walks through it.