owlscope 0.1.5 copy "owlscope: ^0.1.5" to clipboard
owlscope: ^0.1.5 copied to clipboard

Real-time debug & monitoring SDK for Flutter — forwards print, errors, HTTP traffic, navigation and performance events to the OwlScope desktop app over WebSocket.

owlscope #

Universal debug & monitoring tool for Flutter apps.

# pubspec.yaml
dependencies:
  owlscope: ^0.1.3
flutter pub get
dart run owlscope:setup
// lib/main.dart
import 'package:owlscope/auto.dart';
import 'package:flutter/material.dart';

void main() => owlscopeAuto(() => runApp(const MyApp()));

That's the whole setup. Open the OwlScope desktop app, run flutter run — your client appears in the sidebar.

What dart run owlscope:setup does #

One idempotent command that handles every scenario:

Scenario What happens
iOS Simulator nothing needed — localhost works out of the box
iOS Device (LAN) patches Info.plist with NSLocalNetworkUsageDescription and NSAllowsLocalNetworking
Android Emulator nothing needed — 10.0.2.2 is auto-detected as fallback
Android Device (USB) run dart run owlscope:reverse once after plugging in
macOS desktop adds com.apple.security.network.client entitlement

Re-run any time you regenerate native configs — the script skips work that's already done.

What gets captured #

Plugin What
print / debugPrint Every console line, stack traces preserved
http (incl. dio) Every request + response with full body
errors FlutterError, PlatformDispatcher.onError, async errors
performance Frame timings, FPS, build/raster, slow & frozen frames, jank events, RSS memory, widget rebuilds
navigation NavigatorObserver push / pop / replace

Release builds (kReleaseMode) are no-op'd automatically.

Host detection #

owlscopeAuto() figures out the right host on its own:

Target Host used
iOS simulator localhost
Android emulator localhost → falls back to 10.0.2.2 / 10.0.3.2
Physical device localhost (set up by :reverse for Android USB)

Override only if you need to point at a different machine:

owlscopeAuto(
  () => runApp(const MyApp()),
  name: 'my-app',
  host: '192.168.1.50',
  port: 9090,
);

Riverpod / Bloc / Redux #

Use the dedicated adapter package — it streams every state change to OwlScope's State panel with side-by-side previous/next diff:

dependencies:
  owlscope_riverpod: ^0.2.0
ProviderScope(
  observers: [if (kDebugMode) OwlScopeRiverpodObserver()],
  child: const MyApp(),
);

Manual configuration #

If you'd rather wire it up by hand:

import 'package:owlscope/owlscope.dart';

OwlScope.configure(name: 'my-app', port: 9090)
  ..use(HttpPlugin(maxBodyBytes: 0))   // 0 = unlimited
  ..use(ErrorPlugin())
  ..use(PerformancePlugin())
  ..use(NavigationPlugin(owlscopeNavigatorObserver));

License #

MIT

0
likes
145
points
287
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Real-time debug & monitoring SDK for Flutter — forwards print, errors, HTTP traffic, navigation and performance events to the OwlScope desktop app over WebSocket.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, web_socket_channel

More

Packages that depend on owlscope