SMS Terminal

October 21, 2025 ยท View on GitHub

A Rust-based TUI for sending and receiving SMS messages live through your own hardware.

Features

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.

Phonebook

Live Messaging

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

Sending Incoming Message

Device Information

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

Device Info Websocket Reconnection

Delivery Reports

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

Delivery Reports

Themes

Customize your experience with built-in themes and background fill options.

  • F10 - Change color scheme
  • F11 - Toggle background fill mode

Themes

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

OptionTypeDescription
themeemerald, blue, zinc, indigo, red, amber, pinkSelect a built-in theme
hostStringServer host for HTTP and WebSocket (e.g., localhost:3000)
http-uriURIHTTP URI (overrides host if set)
ws-uriURIWebSocket URI (overrides host if set)
ws-enabledBooleanEnable WebSocket support for live updates
authStringAuthorization token for requests
ssl-certificatePathSSL certificate filepath for secure connections
sentryURISentry 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_enabled instead of ws-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