
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- version
- v0.1.0
- platforms
- macOS · Linux · Windows
- runtime
- none
- license
- MIT
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.
POSTLINE you@example.comMAILBOXES INBOX CONVERSATION · 2 MESSAGESInbox 2 ▏ ★ Design review on Thursday (… 12:48 Design review on ThursdayStarred ▎ ● Your receipt from Orbit Cof… @ 07:18Sent ▎ Re: quarterly numbers (2) Sun Alice Chen Aug 19, 2026 · 10:18alice@example.comReceipts 1 to YouHi,Are we still on for Thursday? I'd like to walk through the newflow.AliceBob Ortiz Aug 19, 2026 · 12:48bob@example.comto Alice Chen, YouCan 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.
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
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.