6 stable releases
| 2.1.0 | Jan 10, 2026 |
|---|---|
| 1.1.3 | Jan 2, 2026 |
| 1.1.2 | Oct 27, 2025 |
| 0.9.3 |
|
#1068 in Network programming
5MB
4K
SLoC
SMS Terminal
A Rust-based TUI for sending and receiving SMS messages live through your own hardware.
Related Projects
- sms-server (crates.io) - SMS server for Raspberry Pi with database storage.
- sms-client (crates.io) - Rust library for remote server interfacing.
Features
- Smart Phonebook - Recent contacts, friendly names with editing, and lazy loading.
- Live Messaging - Send multipart messages and receive updates in real-time.
- Device Monitoring - View modem connection info and signal strength.
- Delivery Reports - Track when recipients receive your messages.
- Theme Support - Multiple built-in themes with customization options.
- Easy Installation - Simple setup with
cargo install. - Highly Configurable - Via command line arguments, config file, or both.
- Error Reporting - Optional Sentry integration for debugging.
Quick Start
# Install via cargo
cargo install sms-terminal
# Connect to an insecure server with auth
sms-terminal --host 192.168.1.20:3000 --auth hello --ws-enabled
# Connect to a secure server
sms-terminal --host sms-api.internal:3000 --ssl-certificate ./ca.crt
Showcase
Phonebook & Messages
Access recent contacts with friendly name support. Messages are lazy-loaded for optimal performance.

Live Messaging
Send messages and receive notifications in real-time across any view when WebSocket is enabled.

Device Information
Monitor modem status, server version, signal strength, and WebSocket connection state.

Delivery Reports
Check delivery confirmations for outgoing messages directly from the messages view.

Themes
Customize your experience with built-in themes and background fill options.
- F10 - Change color scheme
- F11 - Toggle background fill mode

Configuration
Configuration can be provided through command line arguments or a config file.
Config File Locations
./sms-terminal-config.toml(local, highest priority)- Windows:
%appdata%/Local/sms-terminal/config.toml - Linux:
$HOME/.config/sms-terminal/config.toml
Available Options
| Option | Type | Description |
|---|---|---|
theme |
emerald, blue, zinc, indigo, red, amber, pink |
Select a built-in theme |
host |
String | Server host for HTTP and WebSocket (e.g., localhost:3000) |
http-uri |
URI | HTTP URI (overrides host if set) |
ws-uri |
URI | WebSocket URI (overrides host if set) |
ws-enabled |
Boolean | Enable WebSocket support for live updates |
auth |
String | Authorization token for requests |
ssl-certificate |
Path | SSL certificate filepath for secure connections |
sentry |
URI | Sentry DSN for error reporting (requires sentry feature) |
[!TIP] WebSocket connection is optional but strongly recommended for live updates!
[!WARNING] In a config file, the options use underscores instead of hyphens. Eg:
ws_enabledinstead ofws-enabled!
Installation
Basic Installation
cargo install sms-terminal
With Sentry Support
cargo install sms-terminal -F sentry
Usage Examples
# View help and available commands
sms-terminal -h
# Start terminal with default view
sms-terminal --host 192.168.1.20:3000 --auth testing
# Start with messages view for a specific contact
sms-terminal messages "+44123" --host 192.168.1.20:3000
Dependencies
~32–56MB
~1M SLoC