What problem does it solve?
It eliminates the friction of manually starting, stopping, and validating a Decent Flutter app by providing a repeatable shell-driven workflow for exercising its REST and WebSocket surfaces against simulated devices or real BLE/USB hardware.
Core Features & Use Cases
- Lifecycle control: start, stop, reload, hot-restart, and restart a running Decent instance using the repo’s deterministic helper script.
- REST API execution: quickly call endpoints with curl for device state, machine control, profiles, shots, and settings.
- WebSocket stream verification: subscribe to live channels with websocat for real-time telemetry and structured connection status.
- Simulated device workflows: run MockDe1 and MockScale flows by default, including common integration-style smoke tests.
- Hardware exercise mode: opt into real device transport with --real (and adb port forwarding for Android) to validate real-world behavior.
Quick Start
Start the app in simulate mode, verify REST is reachable, then stop it by running: scripts/sb-dev.sh start --connect-machine MockDe1; curl -sf http://localhost:8080/api/v1/devices | jq .; scripts/sb-dev.sh stop