Pop
Send-only email tool from Charm with a terminal form for composing and a command-line mode for scripts.
Pop composes and sends email from the terminal, either through a full-screen form or from flags and standard input. It sends through the Resend API or any SMTP server, renders the Markdown body to HTML unless plain text is requested, and can attach files. It cannot read or fetch mail, so it is used next to a mail client or in scripts and pipelines. It is configured entirely with environment variables or flags.
- Type
- Mail tool
- Interface
- Full-screen terminal interface
- Systems
- Runs on Linux, macOS, Windows and BSD. Not available for Android.
- Language
- Go
- License
- MIT
- Latest version
0.5.0- Maintained
- Yes
- Website
- github.com
- Source
- github.com/charmbracelet/pop
- Documentation
- github.com
Install
| System | Support | Install |
|---|---|---|
| Linux | Native | Homebrew brew install popAUR yay -S charm-pop-binNix nix-env -iA nixpkgs.popgo go install github.com/charmbracelet/pop@latest |
| macOS | Native | Homebrew brew install popgo go install github.com/charmbracelet/pop@latest |
| Windows | Native | winget winget install charmbracelet.popgo go install github.com/charmbracelet/pop@latest |
| BSD | Native | go go install github.com/charmbracelet/pop@latestNo ports package; release binaries are published for FreeBSD, OpenBSD and NetBSD. |
| Android | Not supported | No Termux package. |
Protocols and features
| Protocol | Pop |
|---|---|
| IMAP | No |
| POP3 | No |
| SMTP | Yes |
| JMAP | No |
| Maildir | No |
| mbox | No |
| notmuch | No |
| Feature | Pop |
|---|---|
| OpenPGP | No |
| S/MIME | No |
| OAuth2 sign-in | No |
| Threads | No |
| Search | No |
| HTML mail | sends the Markdown body rendered as HTML |
| Mouse | No |
| Multiple accounts | No |
| Offline use | No |
| Calendar | No |
| Contacts | No |
| Vim-style keys | No |
| Configuration | environment variables or command-line flags |
Pros and cons
Pros
- Works both as an interactive form and as a scriptable command reading the body from standard input.
- Sends through any SMTP server with SSL/TLS or STARTTLS, or through the Resend API.
- Single Go binary with packages for Homebrew, winget, Nix and the AUR.
Cons
- Send-only: cannot read, fetch or search mail.
- One sending account at a time, set through environment variables.
- No OpenPGP or S/MIME signing.
Use Pop with Forward Email
How Pop fits with a Forward Email mailbox. Replace you@example.com with your alias and the password command with your own. The same settings work with any provider once the server names change.
# ~/.bashrc or ~/.zshrc
export POP_SMTP_HOST=smtp.forwardemail.net
export POP_SMTP_PORT=465
export POP_SMTP_ENCRYPTION=ssl # or port 587 with: starttls
export POP_SMTP_USERNAME=you@example.com
export POP_SMTP_PASSWORD="$(pass show email/forwardemail)"
export POP_FROM=you@example.com
# Interactive: pop
# Scripted: pop < message.md --to friend@example.org --subject "Hello"| Protocol | Server | Port | Security |
|---|---|---|---|
| IMAP | imap.forwardemail.net | 993 | SSL/TLS |
| POP3 | pop3.forwardemail.net | 995 | SSL/TLS |
| SMTP | smtp.forwardemail.net | 465 | SSL/TLS |
| SMTP | smtp.forwardemail.net | 587 | STARTTLS |
Username: your full alias address, such as you@example.com. Password: the one shown by Generate Password next to the alias in your Forward Email account. Folders: INBOX, Drafts, Sent Mail, Trash, Spam and Archive.
Prefer no config at all? Forward Email's terminal app signs in with your account and has mail, calendar and contacts in one program.
Questions
Does Pop work on Windows?
Yes, it runs natively on Windows.
Does Pop support IMAP?
No. Pop does not use IMAP.
Is Pop open source?
Yes, under the MIT.
How do I use Pop with Forward Email?
Use the config in the Forward Email section on this page, saved as ~/.bashrc (or your shell profile), and replace the address and password with your own.
Sources
- github.com/charmbracelet/pop
- github.com/charmbracelet/pop/blob/main/README.md
- github.com/charmbracelet/pop/blob/main/LICENSE
- github.com/charmbracelet/pop/blob/main/main.go
- github.com/charmbracelet/pop/blob/main/email.go
- github.com/charmbracelet/pop/blob/main/keymap.go
- github.com/charmbracelet/pop/releases/tag/v0.5.0
- github.com/charmbracelet/pop/releases/download/v0.5.0/checksums.txt
- formulae.brew.sh/formula/pop
- aur.archlinux.org/packages/charm-pop-bin
- github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/po/pop/package.nix
- github.com/microsoft/winget-pkgs/tree/master/manifests/c/charmbracelet/pop
- github.com/termux/termux-packages/tree/master/packages