buoy_riverpod

Inspect values and changes reported by a Riverpod ProviderObserver.

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_riverpod

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_riverpod/buoy_riverpod.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  if (kDebugMode) registerBuoyRiverpod();
  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.

Observe your providers

This package requires the compatible flutter_riverpod version declared in its pubspec. Add buoyRiverpodObserver to the ProviderScope used by your app. Import package:flutter_riverpod/flutter_riverpod.dart, then replace runApp in the startup example with:

runApp(
  ProviderScope(
    observers: const [buoyRiverpodObserver],
    child: const MyApp(),
  ),
);

Use your existing scope and preserve its observers and overrides. Name your providers so the inspector can show meaningful labels; unnamed providers use fallback labels. The umbrella registers the panel but cannot attach an observer to your app's scope.

Check the integration

Read and update a named provider in the observed scope, then find its value and change in Riverpod. Providers outside that scope or not instantiated may not appear.

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.

Full Riverpod guide

License

Proprietary software. © Buoy LLC. See the Terms of Service and pricing.

Libraries

buoy_riverpod