A beautiful, modern terminal-based chat interface for Meshtastic devices with smooth animations and an intuitive user experience.
- Bubble-style messages: Clean, WhatsApp-like message display
- Real-time animations: Smooth connecting animations and progress indicators
- Color-coded messages: Green for sent messages, blue for received
- Smart text wrapping: Messages automatically wrap for better readability
- Channel awareness: Shows current channel info (LongFast, etc.)
- Interactive port selection: Visual port selector with live refresh
- Connection animations: Spinning loader with progress bar during connection
- Status indicators: Real-time connection status with emoji indicators
- Auto-retry logic: Robust connection handling with error recovery
- Smart serial handling: Prevents send/receive conflicts
- Device details: Shows device name, model, firmware version
- Channel info: Displays current channel name and index
- Node identification: Shows device ID and connection details
- Live statistics: Message counts, uptime, and current time
- Connection details: Port information and connection status
- Activity tracking: Last activity timestamps and message flow
- 60 FPS animations: Buttery smooth UI updates
- Responsive controls: Intuitive keyboard navigation
- Context-aware help: Dynamic help text based on current mode
- Progress feedback: Visual feedback for all operations
- Rust toolchain (latest stable)
- A Meshtastic device connected via USB/serial
git clone <repository-url>
cd Dn-susty
cargo build --release# Auto-detect and select port interactively
./target/release/meshtastic-chat
# Connect to specific port
./target/release/meshtastic-chat --port /dev/ttyUSB0
# Custom baud rate
./target/release/meshtastic-chat --port /dev/ttyUSB0 --baud 9600
# Enable verbose logging
./target/release/meshtastic-chat --verbosei- Enter message input modep- Open port selection dialogq- Quit application
Enter- Send messageEsc- Return to normal mode- Type normally to compose messages
↑/↓- Navigate port listEnter- Connect to selected portr- Refresh available portsEsc- Cancel and return
- Async runtime: Built on Tokio for non-blocking I/O
- Channel-based communication: Clean separation between UI and serial handling
- Stateful UI: Persistent state management with smooth transitions
- Error resilience: Comprehensive error handling and recovery
- ratatui: Modern TUI framework with rich widgets
- crossterm: Cross-platform terminal manipulation
- tokio: Async runtime for concurrent operations
- serialport: Cross-platform serial port access
- chrono: Date/time handling with timezone support
- indicatif: Progress bars and spinners
- textwrap: Intelligent text wrapping
- Efficient rendering: Only redraws when necessary
- Memory management: Automatic message buffer limits (1000 messages)
- Low latency: Sub-16ms UI update cycles
- Minimal CPU usage: Event-driven architecture
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
Made with ❤️ for the Meshtastic community