All but React Native are in beta.
All but React Native are in beta.


Buoy in your app, in 2 minutesBuoy provides tools for inspecting Flutter apps: network requests, storage, state, navigation, and performance. Use the in-app menu or connect the app to Buoy Desktop. An AI editor can access supported tools through the MCP server. Free has the basic MCP. Pro adds the full MCP.
Flutter support is in beta. BuoyDevTools runs in debug mode. To run it in a release build, see Release builds.
Let your coding agent install Buoy in your app:
To install by hand, follow the Quick Start.
Developers can inspect a failed request alongside the app state that produced it. QA can use configured tools to edit test data and exercise error states. Support teams can collect debugging context when your app grants them access.
Some tasks need app integration. Impersonation requires your backend to authorize the selected user, and state tools need access to the stores or providers you want to inspect. Buoy does not bypass your app's authentication.
| Tool | What It Does |
|---|---|
| Network | Inspect supported HTTP requests — package:http, dio, image loads, GraphQL |
| Storage | Browse and edit shared_preferences in real-time |
| Environment | Validate env/config with type checking and a health score |
| Console | A Chrome-DevTools-style console for every print / debugPrint / log |
| Perf Monitor | Live on-device HUD — FPS, jank, CPU, and memory |
| Images | Captured image loads with cache verdict, timing, oversize audit & failure diagnosis |
| Riverpod | Inspect provider state, live values, diffs, and history |
| Route Inspector | Track go_router navigation and browse your route structure |
| Events Timeline | Unified timeline across all tools with LLM-ready export |
| Impersonate | Inject configured headers for backend-authorized impersonation |
| Image Overlay | Overlay design mockups on your app for pixel-perfect comparison |
| Ask Buoy | AI chat that reads and changes app state through your tools, with Undo |
Install the tools you need and inspect the running app without adding a separate debug screen for each task. Desktop gives those tools more screen space, and MCP exposes supported actions to your AI editor. Follow each tool's setup instructions for app-specific configuration.
import 'package:buoy/buoy.dart';
MaterialApp(
builder: (context, child) => BuoyDevTools(
child: child ?? const SizedBox.shrink(),
),
)
import 'package:buoy/buoy.dart';
MaterialApp(
builder: (context, child) => BuoyDevTools(
child: child ?? const SizedBox.shrink(),
),
)
The umbrella registers its bundled tools. If you add tools one by one, call each one's register function. Sign in with npx --package=@buoy-gg/core buoy login. Then run flutter run --dart-define-from-file=.env.local. See Sign In.
Need something specific to your app? Add custom tools via the tools prop on BuoyDevTools. Build internal debugging utilities, feature flag toggles, or team-specific inspectors that integrate with the floating menu.