Installation
Prerequisites
Section titled “Prerequisites”- Go 1.26+ — for building the probe CLI
- Dart 3.3+ / Flutter 3.19+ — for the probe_agent package (tested up to Flutter 3.41 / Dart 3.11)
- Android: ADB + Android SDK (for Android emulator testing)
- iOS Simulator: Xcode +
xcrun simctl(for iOS simulator testing) - iOS Physical Device: All of the above, plus
iproxyfromlibimobiledevicefor USB port forwarding (brew install libimobiledevice)
Build the CLI
Section titled “Build the CLI”Clone the repository and build the probe binary:
git clone https://github.com/AlphaWaveSystems/flutter-probe.gitcd FlutterProbemake build # outputs bin/probeTo install to your $GOPATH/bin (so probe is available globally):
make installAdd ProbeAgent to Your Flutter App
Section titled “Add ProbeAgent to Your Flutter App”The Dart agent runs inside your Flutter app and provides the WebSocket server that the CLI connects to.
1. Add the dependency
Section titled “1. Add the dependency”In your Flutter app’s pubspec.yaml:
dev_dependencies: probe_agent: path: /path/to/FlutterProbe/probe_agent2. Initialize in main.dart
Section titled “2. Initialize in main.dart”import 'package:probe_agent/probe_agent.dart';
Future<void> main() async { WidgetsFlutterBinding.ensureInitialized();
const probeEnabled = bool.fromEnvironment('PROBE_AGENT', defaultValue: false); if (probeEnabled) { await ProbeAgent.start(); }
runApp(const MyApp());}The PROBE_AGENT flag is compiled into the binary via --dart-define. It must be set at build time — it cannot be toggled at runtime.
3. Build with the flag enabled
Section titled “3. Build with the flag enabled”iOS Simulator:
flutter build ios --debug --simulator --dart-define=PROBE_AGENT=truexcrun simctl install <UDID> build/ios/iphonesimulator/YourApp.appxcrun simctl launch <UDID> com.example.myappAndroid Emulator:
flutter build apk --debug --dart-define=PROBE_AGENT=trueadb install -r build/app/outputs/flutter-apk/app-debug.apkadb shell am start -n com.example.myapp/.MainActivityInitialize Your Project
Section titled “Initialize Your Project”From your Flutter project directory:
probe initThis creates:
probe.yaml— project configurationtests/— directory for.probetest files with samples
Build the Test Converter (Optional)
Section titled “Build the Test Converter (Optional)”If you want to migrate tests from other frameworks:
make build-convert # outputs bin/probe-convertSee probe-convert for details.