buoy_network
Capture supported HTTP requests through dart:io HttpClient hooks.
Requirements
Use a Flutter debug build and a Free or Pro Buoy account key. These packages require Dart 3.9 or later, below 4.0, and Flutter 3.27 or later; your Flutter installation must satisfy both constraints. The Buoy widget does not start its tools in profile or release builds, including with Pro.
Install and register
flutter pub add buoy_network
This example registers the standalone package. In an existing app, keep your screens and providers and apply the registration and builder changes to that app. Complete the tool-specific integration below before testing capture.
import 'package:buoy_network/buoy_network.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
if (kDebugMode) registerBuoyNetwork();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
builder: (context, child) => BuoyDevTools(
licenseKey: const String.fromEnvironment('BUOY_KEY'),
child: child ?? const SizedBox.shrink(),
),
home: const Scaffold(body: Center(child: Text('Buoy test app'))),
);
}
}
Get a key from your Buoy account, then run:
flutter run --dart-define=BUOY_KEY=YOUR_LICENSE_KEY
If you already use the buoy umbrella, it registers the panel; keep its builder and complete the app integration below. For a complete umbrella setup, see the Flutter Quick Start.
Capture coverage
The hook covers clients created through the intercepted dart:io HttpClient path, including compatible package:http and Dio clients and image-loader requests. Install it before creating those clients. It cannot recover earlier traffic or requests made before account admission.
Native clients such as cupertino_http and cronet_http, gRPC, other isolates, and Flutter web are outside this capture path. Headers and bodies are subject to capture limits. GraphQL operation extraction depends on the captured request and client tagging; a missing row does not prove no request occurred.
Check the integration
Trigger a fresh request through your app after account access and the hook are ready. Open Network and check its URL, status, and captured response. Cached results may make no request.
Network throttling
Choose Network throttling from Network’s menu to open the floating strip and minimize the inspector. Tap the signal bars to cycle through No throttling, Slow (+500 ms), Very slow (+2000 ms), and Offline. These profiles affect new requests through the captured HttpClient path; they do not limit download speed. Close turns throttling off. The strip’s position and open state survive an app restart, while the connection profile resets to normal.
Desktop and MCP
Open Buoy Desktop, sign in, and select the connected device. The default broker port is 42831. The iOS Simulator uses localhost; the Android emulator maps localhost to its host address. For a physical device, set socketUrl: 'http://YOUR_COMPUTER_LAN_IP:42831' on BuoyDevTools and use a network that can reach your computer.
MCP needs separate process account configuration and Pro access. Remote capabilities depend on each tool's adapter. Account validation makes network requests, and device sessions can cross your LAN. See Telemetry for data-flow details.
License
Proprietary software. © Buoy LLC. See the Terms of Service and pricing.