A terminal-based email client for Office Exchange with vim-like navigation.
Current progress:
- Project setup and architecture
- Configuration handling
- Mock Exchange email fetching
- TUI implementation with split view
- Vim-like navigation
- Help menu
- Email refresh functionality
- Status bar with notifications
End goal:
- A terminal UI application that can:
- Connect to Office Exchange
- Fetch emails from the current quarter
- Display emails in a split view (titles/dates on left, content/sender on right)
- Navigate through emails using vim-like keybindings
- Show a help menu with '?' key
# Run with default config
mail-tui
# Specify config file
mail-tui --config path/to/config.toml- Rust and Cargo (install via rustup)
- cargo-watch for hot reloading
# Build the project
cargo build
# Build with optimizations
cargo build --releaseInstall cargo-watch if you don't have it already:
cargo install cargo-watchRun with hot reload during development:
cargo watch -x runThis will automatically rebuild and restart the application whenever you save changes to any source file.
# Run tests
cargo test
# Run tests with hot reload
cargo watch -x testCreate a config.toml file:
[exchange]
email = "your.email@company.com"
password = "your_password"
server = "outlook.office365.com"j/kor↑/↓: Navigate up/down through email listlor→orEnter: View selected email detailshor←orEsc: Return to email listg: Go to first emailG: Go to last emailr: Refresh emails/: Search emailsq: Quit application?: Show help menu