A terminal interface for chatting via Meshtastic.
Meshtastic Terminal is a modern terminal UI for real-time communication over Meshtastic mesh networks. Monitor messages, send texts, and manage your mesh network directly from your terminal.
- Real-time message display with timestamps
- Node discovery tracking
- Radio configuration display (preset/region)
- Live node counter in header, plus other stats
- Press 's' to send a message
- Press 'd' to send a direct message (select from a list of discovered nodes)
- Press 'q' to quit
- Press 'h' to toggle the hop count display
- Automatically reconnects if the device is disconnected / your computer sleeps
- Ability to switch radio presets/modes and frequency slots on the fly
- Node list - press ctrl+n to view the list of discovered nodes / view details
- Raw monitor mode - press ctrl+r to toggle raw packet monitor mode
- Click a message in the chat to reply
- Theme support - press ctrl+p to open the theme selector
- Python 3.8 or higher
- A Meshtastic device connected via USB/serial
- uv - Fast Python package installer and resolver
If you have uv installed, you can run Meshtastic Terminal directly without cloning:
uvx --from "git+https://github.com/richstokes/meshtastic_terminal.git" meshtastic-tuiThis will automatically download, install dependencies, and run the application in one command!
On macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shOr using Homebrew:
brew install uvFor other installation methods, see uv documentation.
gh repo clone richstokes/meshtastic_terminal
cd meshtastic_terminaluv syncThis will:
- Create a virtual environment (if needed)
- Install all required dependencies
- Make the scripts available for execution
The recommended way to run the terminal interface is using uv run:
uv run python meshtastic_tui.pyOR to auto-detect and connect to the first detected Meshtastic device:
uv run python meshtastic_tui.py -aTo connect to a Meshtastic device over Bluetooth, use the -b flag:
uv run python meshtastic_tui.py -bFeel free to submit issues or pull requests to improve these scripts!
