@buoy-gg/sentry
Inspect Sentry envelopes observed in your React Native app, including item types, approximate serialized sizes, and captured payloads. The tool also provides usage estimates, drop diagnostics, and configuration checks.
Install
npm install @buoy-gg/core @buoy-gg/sentry
Your app needs a configured, compatible @sentry/react-native SDK. Follow that SDK's installation requirements; Buoy does not configure Sentry for you. The Sentry peer is optional so the tool can report an absent SDK.
Account setup
Start in a development build. You need a Free or Pro Buoy account. Sign in from your app's folder:
npx --package=@buoy-gg/core buoy login
Your browser opens buoy.gg. Click Allow. The CLI then writes a dev token. It works in dev builds for 30 days.
On Expo, the token goes in .env.development.local. Buoy reads it by itself in dev builds. You can also pass it in yourself:
import { Buoy } from "@buoy-gg/core";
Buoy.init({ licenseKey: process.env.EXPO_PUBLIC_BUOY_KEY });
On React Native CLI, the token goes in .env.local as BUOY_KEY. React Native does not load that file by itself. Pass the token in with your app's own env setup. Keep the menu inside the providers used by your app. Restart the development server after installing packages. See the Quick Start for the complete root component.
Attach to your client
Keep your existing Sentry.init configuration. Mount the following inside your app root after initializing Buoy. Explicitly passing your client's getter is useful when Metro cannot resolve the same SDK instance:
import { FloatingDevTools } from "@buoy-gg/core";
import { sentryToolPreset, SentryRoot } from "@buoy-gg/sentry";
import * as Sentry from "@sentry/react-native";
<>
<SentryRoot getClient={Sentry.getClient} />
<FloatingDevTools apps={[sentryToolPreset]} />
</>;
In a test Sentry project, send a recognizable test event after capture and account access are ready. Find the envelope in Buoy, inspect its items, and compare it with the event received by Sentry.
What the results mean
The JavaScript beforeEnvelope hook observes a supported client's outgoing envelopes without intentionally changing their payloads or send behavior. It cannot recover envelopes emitted before attachment. Native-only traffic and provider-side outcomes require their own evidence; a captured envelope does not prove delivery or ingestion.
Sizes and usage projections are estimates based on observed data and the configured model. They are not an invoice or a guarantee of quota consumption. Check current Sentry billing and project settings before making a cost decision.
Drop diagnostics and audit findings depend on available signals. Read a finding's explanation and verify it against your SDK version and configuration. See the Sentry guide for capture paths and diagnostic limits.
Desktop and MCP
React Native connections require @buoy-gg/external-sync. Follow the Desktop connection guide, sign in to Desktop separately, and confirm the selected device. MCP uses the sign-in from buoy login on your computer. Free has the basic MCP. Reading this tool from the MCP needs Pro.
Device data can travel over your LAN to the configured broker. Account validation makes network requests. See Telemetry for data-flow details.
License
MIT. Buoy account and feature requirements still apply to the surrounding tools.
Web support (unreleased)
Pass the existing browser SDK’s getClient through the host’s sentryGetClient prop. Envelope capture and diagnostic panels use the shared implementation. The browser build is available in this checkout and has not been published yet. See the web setup guide for registration, dependencies, and browser boundaries.