Unix Philosophy Email Client  β€’  v0.3.4

Email client on the Command Line.

A minimalist CLI email client for developers. Connect directly to standard IMAP/SMTP servers, pipe stdin to send messages, and manage folders natively.

Quick Installation Command:

$curl -fsSL https://t3e.dev/install | sh

πŸ’‘ First time? Run t3e with no arguments to explore the interactive demo sandbox.

Power Workflows & Automation

See how developers leverage t3e to build custom email automations and integrations.

CI/CD & Pipelines

Automate Build Alerts

Notify your team automatically when a build fails or a deployment completes. By passing the non-interactive --yes (or -y) flag and piping stdout or log files directly to stdin, you can easily integrate t3e with automated runners like GitHub Actions or GitLab CI.

build-pipeline.sh
# Send build logs only if build fails
$ npm run build > build.log 2>&1 \
  || t3e send \
  --to alerts@company.com \
  --subject "Build Failed" \
  --yes < build.log
System Monitoring

Cron Jobs & Health Reports

Schedule system backups, disk health checks, or database validations using cron, and receive direct reports in your inbox. No heavy setup or specialized tooling requiredβ€”just direct redirection of command output to t3e send.

cronjob.sh
# Send system disk usage report every night
$ df -h | t3e send \
  --to sysadmin@company.com \
  --subject "Disk Space Alert: $(hostname)" \
  --yes
CLI Integration

Piping & Grepping Messages

Extract verification codes, one-time passwords, or specific alerts instantly without opening a browser or full GUI client. Standard output from t3e list and t3e read flows seamlessly into Unix filtering tools.

terminal
# Fetch latest OTP verification code
$ t3e list --limit 5 \
  | grep -i "gitlab.*verify" \
  | head -n 1 \
  | awk '{print $1}' \
  | xargs t3e read \
  | grep -oE "[0-9]{6}" \
  | head -n 1
Interactive Triage

Fuzzy Finding with fzf

Combine t3e with the command-line fuzzy finder fzf to build an interactive, keyboard-driven inbox browser. Search through your subjects or senders, and read messages instantly in a live scrollable preview pane.

terminal
# Live preview (up to 100 emails)
$ t3e list -l 100 \
  | fzf --header-lines=4 \
  --preview "t3e read {1}" \
  --preview-window=right,60%,wrap

# Select and read email
$ t3e read $(t3e list -l 100 \
    | fzf --header-lines=4 \
    | awk '{print $1}')
Developer Environment

Custom Shell Aliases & Integrations

Turn frequent email queries into fast, single-word keyboard shortcuts. Custom wrapper functions in your shell profile (e.g. .zshrc, .bashrc) make reading and checking emails faster than ever.

~/.bashrc
# Quick aliases for email triage
alias check-unread="t3e list --unread-only"

# Function
latest-mail() {
  t3e list | head -n 5 | tail -n 1 | \
    awk "{print \$1}" | xargs t3e read
}

# Function with $1=account $2=folder
email-view() {
  # Usage: email-view [account] [folder]
  local a="${1:-demo}"
  local f="${2:-INBOX}"
  t3e -a "$a" list -f "$f" -l 100 \
    | fzf --header-lines=4 \
      --preview "t3e read {1} -a $a -f '$f'" \
      --preview-window=right,60%,wrap
}
                

Why t3e?

Designed for integration, automation, and keyboard workflows.

10ms

Lightweight & Native

Compiled natively with zero dependencies. Starts instantly, uses minimal RAM, and runs directly inside your shell without bloat.

stdin

Unix Piping

Support for redirects and piping. Pipe build logs directly to email bodies or filter mailboxes using standard shell tools.

-a / --account

Multiple Profiles

Configure multiple email accounts (e.g. personal, work) in a single TOML file and switch between them dynamically using the global account flag.

What's New?

Latest Release

v0.3.4

August 11, 2026

Improved confirmation prompt messaging when sending an email to make it more explicit that aborting (n) will automatically save the message as a draft, and fixed interactive attachment prompt behavior when options already specify attachments.

Recent Release History

v0.3.3

August 9, 2026

Non-blocking update notification UX and absolute path resolution for draft attachments.

v0.3.2

August 9, 2026

Automated draft saving to TOML on abort, direct draft file sending (-d/--draft), interactive attachment wizard prompts, and SMTP-to-IMAP sent folder sync.

v0.3.1

August 6, 2026

Added --json support for t3e folders subcommand to list mail folders programmatically.

v0.2.10

July 30, 2026

Introducing automated version checking (24h cache, 48h rate-limited prompt cooldown) and interactive binary self-updating (t3e update).

v0.2.9

July 25, 2026

Interactive feedback submission command (t3e feedback) with system diagnostic info collection and Google Form integration.

v0.2.8

July 21, 2026

Linux ARM64 (aarch64) precompiled binary release build support in CI/CD pipeline and install.sh.

v0.2.7

July 20, 2026

Markdown header (#) support in email draft bodies and refined fzf workflow documentation.

v0.2.6

July 16, 2026

Native support for JSON formatted output (--json) when executing t3e list and t3e read subcommands.

v0.2.5

July 12, 2026

Binary email attachment parsing and sending, merged interactive send prompt flow, and pipeline build optimizations.

v0.2.4

July 10, 2026

Reply and Reply-all support with automated population of recipient addresses, subject lines, and email context.

v0.2.3

July 9, 2026

Multi-recipient email handling with To, Cc, and Bcc header fields display during listing and composing.

v0.2.2

July 8, 2026

Configurable socket connection timeouts, automatic paged reading using system pager, and HTML-to-text formatting.

Installation Guide

Choose your preferred installation method: quick automated shell script or direct binary tarball extraction.

Option 1 β€’ Faster

Automated Install Script

Automatically detects OS and CPU architecture, downloads the precompiled binary, and installs it into your system PATH.

$curl -fsSL https://t3e.dev/install | sh
Option 2 β€’ Manual

Direct Tarball Binary Extraction

Download precompiled release archives directly for offline, containerized, or custom directory installations (v0.3.4):

Manual Extraction Commands:
# 1. Extract archive
$ tar -xzf t3e-linux-x86_64.tar.gz

# 2. Move executable to your PATH
$ sudo mv t3e /usr/local/bin/

Explore the Sandbox

Learn how to use t3e by walking through the zero-config demo mode commands.

01 / Welcome & Sandbox

Interactive Onboarding

Run t3e with no arguments to initialize the sandbox configuration and enter simulated demo mode.

t3e sandbox
$ t3e No configuration found. It looks like this is your first time running t3e on this machine! We have automatically initialized a demo configuration for you at: ~/.config/t3e/config.toml Starting Demo Mode... Welcome to t3e – a lightweight CLI email client! You are currently running in DEMO MODE. This is a local sandbox that simulates a real email server without requiring any credentials or configuration. To connect to your own email account and make t3e 'yours', edit the config file at: ~/.config/t3e/config.toml Here are the subcommands you can run: t3e list List emails in your inbox t3e read <uid> Read the content of a specific email t3e flag <uid> ... Mark emails as read, unread, or starred t3e delete <uid> Delete an email t3e send Send / compose an email interactively or via script t3e folders List available mail folders t3e --help Show help and usage options Try out the sandbox using this quick tutorial: 1. List your emails: $ t3e list 2. Read the welcome email (UID 1): $ t3e read 1 3. Star the setup guide email (UID 2) (press 'y' to confirm, or skip with --yes): $ t3e flag 2 --star or $ t3e flag 2 --star --yes 4. Delete the piping email (UID 3) (press 'y' to confirm, or skip with --yes): $ t3e delete 3 or $ t3e delete 3 --yes 5. View the deleted email in Trash (to explore folder navigation): $ t3e list --folder Trash Note: You can always view this welcome message again by running: $ t3e welcome Happy exploring!
02 / Mail Listing

List Emails in Inbox

Quickly list the emails inside your folder with their UID, status indicator, sender, subject, and date.

t3e list
$ t3e list Account: demo (demo@t3e.dev) [DEMO MODE] Folder: INBOX UID Status Sender Subject Date 3 ● Unix Philosophy <piping@t3e... The power of piping (stdin) Tue, 23 Jun 2026 11:40:00 +0200 2 ● Setup Guide <setup@t3e.dev> How to connect your real email account Tue, 23 Jun 2026 11:50:00 +0200 1 ● Welcome to t3e <welcome@t3e... Welcome to t3e! Tue, 23 Jun 2026 12:00:00 +0200
03 / Message Reading

Read Email Body

View the details and body text of a specific email using its UID.

t3e read <uid>
$ t3e read 1 From: Welcome to t3e <welcome@t3e.dev> Date: Tue, 23 Jun 2026 12:00:00 +0200 Subject: Welcome to t3e! -------------------------------------------------------------------------------- Welcome to t3e – a lightweight CLI email client. You are currently running in DEMO MODE. This is a local sandbox that simulates a real email server without requiring any credentials or configuration. Here are the subcommands you can run: - t3e list List emails in your inbox - t3e read <uid> Read the content of a specific email - t3e flag <uid> --read/--star Mark emails as read, unread, or starred - t3e delete <uid> Delete an email - t3e send Send / compose an email interactively or via script - t3e folders List available mail folders Try marking this email as read: $ t3e flag 1 --read Or delete an email: $ t3e delete 3 Next step: Read the Setup Guide email (UID 2) to learn how to connect your real account: $ t3e read 2 Enjoy!
04 / Star & Flag

Star and Flag Emails

Flag emails interactively (with prompt verification) or append --yes for non-interactive scripting.

t3e flag
$ t3e flag 1 --star Verifying email 1 exists in INBOX... ======================= CONFIRM FLAG CHANGE ======================= Folder: INBOX UID: 1 From: Welcome to t3e <welcome@t3e.dev> Date: Tue, 23 Jun 2026 12:00:00 +0200 Subject: Welcome to t3e! =================================================================== Are you sure you want to star/flag this email? [y/N]: y Email flags for the email from Welcome to t3e <welcome@t3e.dev>, dated Tue, 23 Jun 2026 12:00:00 +0200, with subject "Welcome to t3e!" in folder INBOX were successfully starred. $ t3e flag 2 --star --yes Verifying email 2 exists in INBOX... Email flags for the email from Setup Guide <setup@t3e.dev>, dated Tue, 23 Jun 2026 11:50:00 +0200, with subject "How to connect your real email account" in folder INBOX were successfully starred.
05 / Delete

Delete Emails

Move an email to Trash by UID, verifying interactively or passing --yes for automation.

t3e delete
$ t3e delete 3 Verifying email 3 exists in INBOX... ======================= CONFIRM DELETION ======================= You are about to delete the following email: Folder: INBOX UID: 3 From: Unix Philosophy <piping@t3e.dev> Date: Tue, 23 Jun 2026 11:40:00 +0200 Subject: The power of piping (stdin) ================================================================= Are you sure you want to delete this email? [y/N]: y Deleting email 3 from INBOX... Email from Unix Philosophy <piping@t3e.dev>, dated Tue, 23 Jun 2026 11:40:00 +0200, with subject "The power of piping (stdin)" was successfully deleted from folder INBOX. $ t3e delete 2 --yes Verifying email 2 exists in INBOX... Deleting email 2 from INBOX... Email from Setup Guide <setup@t3e.dev>, dated Tue, 23 Jun 2026 11:50:00 +0200, with subject "How to connect your real email account" was successfully deleted from folder INBOX.
06 / Folder Navigation

Folders & Trash Verification

Display all available mail folders on your server and query a specific folder like Trash.

t3e folders
$ t3e folders Account: demo (demo@t3e.dev) [DEMO MODE] INBOX Sent Trash $ t3e list -f Trash Account: demo (demo@t3e.dev) [DEMO MODE] Folder: Trash UID Status Sender Subject Date 5 ● Spam Bot <spam@spam.com> Fwd: Important update regarding the project Mon, 22 Jun 2026 10:20:00 +0200 3 ● Unix Philosophy <piping@t3e... The power of piping (stdin) Tue, 23 Jun 2026 11:40:00 +0200 2 ● β˜… Setup Guide <setup@t3e.dev> How to connect your real email account Tue, 23 Jun 2026 11:50:00 +0200