termtastic is a feature-rich handmade Meshtastic® console client written in Rust.
![]() |
![]() |
![]() |
![]() |
| Project is under active development, things could be changed completely without notice. |
Note
Unchecked items are not implemented yet.
- Scrollable channels list (Primary, Secondary)
- Direct conversations
- Display the last message for each channel
- Scrollable chat screen
- Display the short and long names of node
- Display the SNR/RSSI for direct nodes
- Display the number of hops for retranslated messages
- Display the time of messages
- Display the reactions (emojis)
- Ability to see reactions details
- Ability to send broadcast messages to the channels
- Ability to send direct messages to the nodes
- Ability to reply to the messages
- Ability to send the reactions (emojis)
- Limiting the message length to 200 chars (with counter)
- Clickable links
- Scrollable nodes list
- Ability to start direct conversation with selected node
- Display the short and long names of node
- Display the SNR/RSSI for direct nodes
- Display the number of hops for the routed nodes
- Display the ID of the nodes
- Display the humanized last heard time of the nodes
- Sort nodes by different fields: last heard, hops count, distance, etc
- Nodes fuzzy search
- Display node detailed info
- Traceroute feature
- Ignore feature
- TBD
- Loading device configuration (generic feature)s
- Saving device configuration (generic feature)
- LoRa
- Channels
- Security
- User
- Device
- Position
- Power
- Display
- Bluetooth
- MQTT
- Serial
- External Notification
- Store & Forward
- Range Test
- Telemetry
- Canned Message
- Neighbor Info
- UI
- Scrollable devices list (TCP, BLE, Serial)
- Connection via TCP
- Connection via BLE
- Connection via Serial
- Device configuration loading during connection process and storing it into state
- Storing TCP connections into config file
- Discovering of BLE and Serial devices feature
- Reconnection feature with exponential backoff timeouts
- Writing logs into files using daily rolling strategy
- Mirroring logs into log list with scroll
- Ability to expand the single log record (useful for long logs)
- Ability to copy log record into clipboard
- RX indicator
- Online/Total nodes counter
| Feature | Library |
|---|---|
| TUI: Framework | Ratatui |
| TUI: Backend | crossterm |
| TUI: Inputs | ratatui-textarea |
| TUI: Lists | tui-widget-list |
| Interaction with Meshtastic | meshtastic |
| Clipboard functionality | arboard |
| Bluetooth devices discovery | bluest |
| Logging | tracing |
| Async/Channels | tokio |
| Configuration | confy |
| Errors | anyhow |
| Datetime | chrono |
| Emoji selector | emoji |
✅ - tested, 🔬 - untested, ❌ - not working
| Feature | 🐧 Linux | 🍏 macOS | 🪟 Windows |
|---|---|---|---|
| BLE devices discovery | ✅ | ✅ | 🔬 |
| Serial devices discovery | ✅ | ✅ | ✅ |
| Source | Link |
|---|---|
| Manual download | Releases |
| Debian PPA | 🏗️ TBA |
| Arch Linux AUR | 🏗️ TBA |
| macOS Brew | 🏗️ TBA |
| Windows Chocolatey | 🏗️ TBA |
In order to run unsigned application on macOS you need dequarantine it using the command below:
xattr -d com.apple.quarantine ./path/to/termtastic



