Native Flutter client for Mesh Utility with BLE radio scanning, local cache, and Cloudflare Worker sync.
- Android
- iOS
- Linux
- macOS
- Windows
- Web
- Connect to a radio over BLE from Settings → Connections.
- Start map scanning with the scan control on the map overlay.
- App sends node-discover frames, collects responses, and stores scans locally with location data.
- Smart-scan skips recently covered zones and resumes scanning when moving into stale/unscanned/dead zones.
- Local scans are uploaded/synced with the worker on Sync now and on a periodic interval.
- Periodic sync interval is user-configurable from 30 minutes to 24 hours and is anchored to server/internet time.
Scan Interval: auto-scan cadence.Smart Scan+ freshness days: skip recent-coverage zones.Cloud History: worker history window.Deadzone Retrieval: deadzone fetch window.Update radio position: for radios without GPS, sets observer radio coordinates to current OS location so mesh peers can see position; this only updates radio coordinates.Offline map tiles: cache viewed tiles + download/clear local tile cache around current location.Units: imperial/metric.Stats Radius: bottom stats filter radius (0= all visible data).Upload Interval: periodic worker sync interval (30..1440minutes).Online/Offline Mode: force offline disables worker sync/upload.Delete radio data: signed delete flow for connected radio.
cd /home/chris/Projects/mesh-utility
flutter pub get
flutter runASSET_URL="$(curl -fsSL https://api.github.com/repos/mesh-utility/mesh-utility/releases/latest \
| jq -r '.assets[] | select(.name=="mesh-utility-install-linux.sh") | .browser_download_url')"
curl -fL -o install_mesh_utility.sh "$ASSET_URL"
chmod +x install_mesh_utility.sh
./install_mesh_utility.shIf jq is not installed, use this fallback:
curl -fsSL https://raw.githubusercontent.com/mesh-utility/mesh-utility/main/tool/install_linux.sh -o install_mesh_utility.sh
chmod +x install_mesh_utility.sh
./install_mesh_utility.sh- Contribution guide: CONTRIBUTING.md
- Agent/developer guardrails: AGENTS.md
- CI/CD setup and secrets handling: docs/ci-cd.md
- Flutter engineering practices: docs/flutter-best-practices.md