meshtastic-e2e

Coordinate Meshtastic device and app testing with bounded polling.

7|4|Updated Jun 25, 2026
One-click install
npx skills add https://github.com/meshtastic/meshtastic-mcp --skill meshtastic-e2e
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: meshtastic-e2e
Source: https://github.com/meshtastic/meshtastic-mcp/tree/main/src/meshtastic_mcp/skills/meshtastic-e2e
Command: npx skills add https://github.com/meshtastic/meshtastic-mcp --skill meshtastic-e2e

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill solves the challenge of verifying that actions taken on a Meshtastic radio correctly propagate to the mobile app UI, and vice versa, by providing a deterministic, closed-loop testing harness.

Core Features & Use Cases

  • Dual-Plane Testing: Simultaneously drives the device plane via the Meshtastic MCP server and the app plane via Android/Apple CLI tools.
  • Automated Oracles: Uses bounded polling and recorder-based wire truth to assert message delivery, node synchronization, and config persistence.
  • Use Case: Validate that a text message sent from a radio correctly renders as a bubble in the Meshtastic Android app, or that a geofence setting changed in the app persists on the device after a reboot.

Quick Start

Use the meshtastic-e2e skill to run the inbound message loop by providing the tester radio port and a unique marker token.

Frequently Asked Questions about meshtastic-e2e

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate end-to-end testing between a Meshtastic radio and a mobile app?

Automate Meshtastic end-to-end testing by coordinating stimulus and observation across the device plane via the MCP server and the app plane via adb or idb. This closed-loop harness validates cross-plane functionality like message delivery and node synchronization deterministically.

Do I need adb and idb to run Meshtastic device and app tests?

You need adb for Android and idb for Apple platforms to drive the app plane, alongside the Meshtastic MCP server for the device plane. These dependencies execute the deterministic test loops with bounded polling required for validation.

What is closed-loop testing for Meshtastic firmware and mobile applications?

Closed-loop Meshtastic testing simultaneously drives the device plane and app plane to verify that actions on a radio propagate to the mobile UI and vice versa. It uses automated oracles with bounded polling to assert message delivery and configuration persistence.

Can I validate that a Meshtastic app configuration persists on the device after a reboot?

Yes, you can validate configuration write-back by changing a setting like a geofence in the app and asserting its persistence on the device after a reboot. The testing harness uses recorder-based wire truth to confirm cross-plane config synchronization.

How do I verify a text message sent from a radio renders correctly in the Meshtastic Android app?

Verify inbound message delivery by running the test loop with a tester radio port and a unique marker token. The harness uses bounded polling to assert that the stimulus sent from the device plane correctly renders as a message bubble in the Android app.

What are the limitations of using bounded polling for Meshtastic e2e test validation?

Bounded polling limits test execution to a set timeout window for asserting cross-plane functionality like node synchronization. If the polling window expires before the mobile app or device plane reflects the stimulus, the automated oracle will fail the test loop.