Streamline is a multi-platform Flutter client for Decent Espresso machines. It connects to DecentBridge — a C++/Qt server that handles BLE communication with DE1 machines and scales — and provides a modern UI for controlling your machine, managing profiles, and tracking shots.
Device <-BLE-> DecentBridge (server) <-HTTP/WS-> Streamline (client)
Streamline is a client-only app. All device communication goes through DecentBridge's REST API and WebSocket API. Streamline auto-discovers DecentBridge on the local network via mDNS/Zeroconf.
- Android (primary — ships on Decent tablets)
- macOS
- Linux (x86_64 + ARM64/Raspberry Pi)
- Windows
- Query and set machine state (on/off, espresso, steam, hot water, flush)
- Configure machine settings (temperatures, flow rates, fan threshold, USB charger mode)
- Upload v2 JSON profiles to the machine
- Real-time shot data streaming (pressure, flow, temperature)
- Real-time weight streaming
- Tare control
- Automatic connection via DecentBridge
- Built-in library of curated default profiles
- Import/export profile collections
- Content-based deduplication (identical profiles share the same ID)
- Profile versioning with parent-child lineage tracking
Streamline features a JavaScript plugin system for extending functionality. Read more.
Streamline can serve a web-based UI skin (e.g., the Streamline Project skin) on localhost:3000, viewable in any browser on the same device.
- Flutter SDK (Dart ^3.7.0)
- Platform-specific toolchains (Android SDK, Xcode, Visual Studio, etc.)
Use the build wrapper script to inject git metadata:
./flutter_with_commit.sh run # Run the app
./flutter_with_commit.sh run --dart-define simulate=1 # Run with simulated devices
./flutter_with_commit.sh build apk --release # Android APK
./flutter_with_commit.sh build macos --release # macOS
./flutter_with_commit.sh build linux --release # Linux
./flutter_with_commit.sh build windows --release # WindowsOr use Flutter directly (without build info injection):
flutter pub get # Install dependencies
flutter test # Run all tests
flutter analyze # Static analysis
flutter run -d windows # Run on WindowsOn Windows, you can also use run.bat for quick launching.
Requires Colima: make build-arm
Streamline auto-discovers DecentBridge via mDNS. If auto-discovery doesn't work, you can manually configure in Settings:
- Bridge Host: IP address of the DecentBridge server
- Bridge HTTP Port: REST API port (default: 8080)
- Bridge WS Port: WebSocket port (default: 8081)
Streamline is built on top of ReaPrime by @tadelv.
REA stands for "Reasonable Espresso App". Credit for the name goes to @randomcoffeesnob. Thanks to @mimoja for the first Flutter app version.