Get Buoy running in your Flutter app in minutes.
Install the umbrella (whole suite) or pick individual tools:
flutter pub add buoyEach package adds a new tool to your floating menu. Install only what you need — or use buoy for everything.
Scan QR codes and IDs in the iOS Simulator — point it at your Mac screen, a webcam, an image or a video.
The floating menu + broker/desktop/MCP wiring. Required for all tools.
flutter pub add buoy_coreEvery HTTP request — package:http, dio, image loads, GraphQL.
flutter pub add buoy_networkBrowse and edit shared_preferences live, with a write event stream.
flutter pub add buoy_storageView and validate environment config with a health score.
flutter pub add buoy_envEvery print, debugPrint, and log call in a DevTools-style panel.
flutter pub add buoy_consolego_router sitemap and live navigation stack — tap to jump.
flutter pub add buoy_routesEvery image load with cache verdicts, oversize audits, and failures.
flutter pub add buoy_imagesNetwork, storage, state, and navigation in one LLM-ready stream.
flutter pub add buoy_eventsEvery provider’s live value and each state change, with diffs.
flutter pub add buoy_riverpodLive on-device HUD with FPS, jank, CPU, and memory.
flutter pub add buoy_perf_monitorInject impersonation headers to test as any user.
flutter pub add buoy_impersonatePin a design mockup over the running app for pixel-perfect UI.
flutter pub add buoy_image_overlayPrefer one install? flutter pub add buoy pulls in the whole suite (umbrella package).
Buoy runs three ways, and a key is what moves you up:
| Key | What you get | |
|---|---|---|
| No key | none | Every tool works, with a minimal event history. |
| Free | free key, from an account | Standard access — event history across every tool. |
| Pro | paid key | Everything: production builds, the MCP server, and unlimited events. |
Pass the key as a prop to BuoyDevTools:
import 'package:buoy/buoy.dart';
MaterialApp(
builder: (context, child) => BuoyDevTools(
licenseKey: 'YOUR_LICENSE_KEY',
child: child ?? const SizedBox.shrink(),
),
)
import 'package:buoy/buoy.dart';
MaterialApp(
builder: (context, child) => BuoyDevTools(
licenseKey: 'YOUR_LICENSE_KEY',
child: child ?? const SizedBox.shrink(),
),
)
Don't have a key yet? Grab one at buoy.gg/pricing.
The packages above power the in-app floating menu. Two more surfaces connect to the same app — both Buoy Pro for MCP:
npx -y @buoy-gg/mcp@latest init
npx -y @buoy-gg/mcp@latest init
See AI / MCP Server for the full setup.
localhost / 10.0.2.2).BuoyDevTools(socketUrl: 'http://192.168.1.x:42831', …). iOS will show the Local Network permission prompt on first connect — tap Allow.All packages are pure Dart (no pods, no gradle edits, no FFI). Null-safe APIs and pub.dev docs ship with every package.
Buoy is built to survive locked-down Flutter apps:
buoy_* package, do a full restart — hot reload won't pick up new plugin/package registrations. Stop the app and run again.socketUrl — unlike React Native (Metro-derived broker), Flutter apps on a phone should pass BuoyDevTools(socketUrl: 'http://<your-lan-ip>:42831').BuoyDevTools (or gate it behind a role check) for builds where only the desktop dashboard should see the session. See Quick Start.React Query, Redux, Zustand, render highlighting, debug borders, and JS Top remain React Native only. Coming soon for Flutter: benchmarking/batch reports for Perf Monitor, and Dart Top. Vote on the roadmap.
buoy umbrella and the individual packages?buoy pulls in the whole suite and registers every tool for you. The individual packages (buoy_network, buoy_storage, and the rest) let you install only what you need. Either way you mount the same BuoyDevTools widget.
In MaterialApp.builder (or CupertinoApp.builder), wrapping the child — the floating button then sits above every screen in the app.