Skip to content

acerv/kingi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kingi

Rust

A fast, Vim-inspired terminal email client for Maildir folders, written in Rust. Heavily inspired by aerc.

demo

Installation

cargo install --path .

Features

  • Threaded email list with tree indentation
  • Diff/patch syntax highlighting in email bodies
  • Reply, reply-all with quoting, forward, compose in $VISUAL/$EDITOR
  • Drafts and Trash mailboxes (auto-created if not configured)
  • Read/unread tracking, flagging, live search, unread-only filter
  • Multiple mailboxes with sidebar, tab-based email viewing
  • Move emails or entire threads between mailboxes
  • SMTP sending via STARTTLS
  • Periodic background sync via a configurable shell command (e.g. mbsync)
  • GPG decryption and signature verification (PGP/MIME and inline PGP)

Configuration

Create ~/.config/kingi/config.toml:

[smtp]
host     = "smtp.gmail.com"
port     = 587
name     = "Name Surname"
username = "you@example.com"
password = "app-password"

[[mailbox]]
label = "INBOX"
path  = "/home/you/Mail/INBOX/"

# "Drafts" and "Trash" labels are treated specially.
# If omitted, defaults are created under ~/.config/kingi/.
[[mailbox]]
label = "Drafts"
path  = "/home/you/Mail/Drafts/"

[[mailbox]]
label = "Trash"
path  = "/home/you/Mail/Trash/"

# Optional: run a shell command every N seconds to sync mail.
[sync]
command  = "mbsync -a"
interval = 60

A plain-text ~/.config/kingi/signature file, if present, is appended to every draft.

GPG

Kingi automatically detects and decrypts PGP-encrypted emails and verifies PGP-signed emails when opened. Both PGP/MIME (RFC 3156) and inline PGP formats are supported. Encrypted emails are marked with a icon in the thread list.

A working gpg-agent is required for passphrase handling. To override the GPG binary path:

[gpg]
binary = "gpg2"

Key bindings

Thread list

Key Action
j/k// Move selection
Ctrl+D/Ctrl+U Page down / up
g / G First / last email
J / K Next / previous mailbox
Enter Open email (in Drafts: reopen in editor)
r / R Reply-all / reply-all quoted
f Forward
C Compose new email
v Toggle read / unread
Ctrl+A Mark all emails as read
Space Toggle flagged
m / M Move email / move entire thread
D Delete email
s Toggle sort order
N Toggle unread-only filter
/ / Esc Search by subject / clear search
Ctrl+S Force sync
Q Quit

Email tab

Key Action
j/k// Scroll line
Ctrl+D/Ctrl+U Page down / up
g / G Top / bottom
J / K Next / previous email
Y Copy body to clipboard
r / R Reply / reply quoted
f Forward
m / M Move email / move thread
D Delete and close tab
q Close tab

Compose

Key Action
Ctrl+Q Send dialog
j/k Navigate dialog options
Enter Confirm (Send / Save draft / Discard)
Esc Back to editor

Global

Key Action
Ctrl+N / Ctrl+P Next / previous tab

About

A fast, Vim-inspired terminal email client for Maildir folders, written in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages