The everframe_flutter plugin captures Flutter pixels inside a boundary, masks registered private widgets, and opens the reporter on Android, iOS, and web. Dart errors and network breadcrumbs are explicit calls.
Three steps
1Install
flutter pub add everframe_flutter
2Start with your Flutter integration key
final everframe = EverframeNativeBridge();
await everframe.start(
appId: '<app ID>',
sdkKey: '<SDK key>',
environment: 'production',
);
3Open the reporter from your own action
await everframe.openReporter(
boundaryKey: boundaryKey,
sensitiveRegions: sensitiveRegions,
);
What it captures
Screenshot Masked Flutter render-boundary pixels Register every private widget; native platform views outside the boundary are not captured
Session replay Bounded image frames sampled from the masked Flutter boundary Explicit recorder; enabled per app in the dashboard
Console No automatic Dart console capture
Network Explicit origin-only breadcrumbs through recordNetwork No automatic Dart HTTP interception or body capture
Screens Explicit recordScreen calls
Errors Explicit handled Dart errors through captureException No automatic Dart error hook
Sensitive content EverframeSensitive widgets are masked before PNG encoding Capture fails closed when masking geometry is unavailable
Device and app Native host metadata on mobile; browser metadata on web
What you wire yourself
- The trigger. Call openReporter from your own button or action.
- The capture boundary. Wrap the Flutter content in RepaintBoundary and register every private widget.
- Dart context. Call recordScreen, captureException, and recordNetwork where your app has that information.
When to pick it
Use the pub.dev plugin for a Flutter
app on Android, iOS, or web. It shares one dashboard integration key across those
hosts, while each report still names the host platform.
Flutter web uses EverframeWebCapture and EverframeWebBridge; its browser
host loads the Web SDK for reporter UI and delivery. The
Flutter web example
shows the masked renderer frames and host setup.
What you control
Choose the Flutter content included in the RepaintBoundary, mark private
widgets, and decide when to open the reporter. The plugin does not install an
automatic Dart error or HTTP interceptor. See Install
and Configuration for the exact setup and limits.
For a full run on an Android emulator, from the capture boundary to the report
in the dashboard, read Flutter bug reports with a masked screenshot and replay.
Questions
Does it need screen-recording permission?
No. It captures its own Flutter render boundary and masks registered widgets before encoding a PNG.
Does it include embedded native platform views?
No. Native platform views outside the Flutter boundary are not included in this capture.
Can I use this plugin for Flutter web?
Yes. Install EverframeWebCapture on a masked RepaintBoundary, then start EverframeWebBridge. The browser host loads @everframe/web and the plugin's visual capture asset.