The Meshtastic Web Console is a (SIMPLE) real-time logging application developed in python that connects to a Meshtastic node via WiFi and displays incoming messages in:
- Terminal output
- A web-based console with real-time streaming
- A log file (
logoutput.txt) with up to 50,000 retained lines
- Server-Sent Events (SSE) for real-time updates
- Synchronous logging to terminal, web, and file
- Timestamp formatting (Epoch, UTC, Central Time)
- Clickable links & stylized separators
- Logs are retained up to a user-defined limit
- Displays real-time telemetry, position, and text messages
Ensure you have Python 3.8+ installed.
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activateInstall required Python packages:
pip install -r requirements.txtpython main.pyThis will:
- Connect to your Meshtastic Node via TCP.
- Start the Flask Web Server on
http://localhost:5000/. - Stream messages to:
- The terminal
- The web app (
http://localhost:5000/) - The log file (
logoutput.txt)
Modify these in main.py before running:
| Parameter | Default Value | Description |
|---|---|---|
node_ip |
"192.168.xx.xxx" |
IP Address of the Meshtastic node |
time_display |
"central" |
Timestamp format (epoch, utc, or central) |
LOG_FILE |
"logoutput.txt" |
Path to the log file |
MAX_LOG_LINES |
50000 |
Maximum lines retained in the log file |
Once running, access the web interface at:
http://localhost:5000/
The console features:
- Live real-time message streaming
- Automatic scrolling
- Clickable URLs
- Stylized message separators
- The first message in a block highlighted in red
- All incoming messages are stored here.
- The latest 50,000 lines are retained (configurable in
MAX_LOG_LINES).
To stop the listener, use:
CTRL + COr, manually close the Python process.
This project is open-source and free to use.
- Handle TRACEROUTE_APP Messaging
- Implement Encryption
- Restart command/endpoint
- Implement Bluetooth
- Implement a node.db for message correlation
