Claude Market
Menu
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Claude Market
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise

Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free →
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here →
Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free →
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here →
Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off
Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed
Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off
Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw
Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.
Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams
Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit
Try DataForSEO free →
Reach 47,000+ AI builders
Advertise here →
Skills/getsentry/sentry-for-ai/sentry-flutter-sdk
sentry-flutter-sdk logo

sentry-flutter-sdk

getsentry/sentry-for-ai
1K installs207 stars
Run it on Hostinger →up to 70% off + an extra 10% with code ZACAARON10Free API →

Installation

npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-flutter-sdk

Summary

Full Sentry SDK setup for Flutter and Dart. Use when asked to "add Sentry to Flutter", "install sentry_flutter", "setup Sentry in Dart", or configure error monitoring, tracing, profiling, session replay, or logging for Flutter applications. Supports Android, iOS, macOS, Linux, Windows, and Web.

SKILL.md

All Skills > SDK Setup > Flutter SDK

Sentry Flutter SDK

Opinionated wizard that scans your Flutter or Dart project and guides you through complete Sentry setup — error monitoring, tracing, session replay, logging, profiling, and ecosystem integrations.

Invoke This Skill When

  • User asks to "add Sentry to Flutter" or "set up Sentry" in a Flutter or Dart app
  • User wants error monitoring, tracing, profiling, session replay, or logging in Flutter
  • User mentions sentry_flutter, sentry_dart, mobile error tracking, or Sentry for Flutter
  • User wants to monitor native crashes, ANRs, or app hangs on iOS/Android

Note: SDK versions and APIs below reflect sentry_flutter ≥9.14.0 (current stable, February 2026). Always verify against docs.sentry.io/platforms/flutter/ before implementing.

---

Phase 1: Detect

Run these commands to understand the project before making any recommendations:

# Detect Flutter project type and existing Sentry
cat pubspec.yaml | grep -E '(sentry|flutter|dart)'

# Check SDK version
cat pubspec.yaml | grep -A2 'environment:'

# Check for existing Sentry initialization
grep -r "SentryFlutter.init\|Sentry.init" lib/ 2>/dev/null | head -5

# Detect navigation library
grep -E '(go_router|auto_route|get:|beamer|routemaster)' pubspec.yaml

# Detect HTTP client
grep -E '(dio:|http:|chopper:)' pubspec.yaml

# Detect database packages
grep -E '(sqflite|drift|hive|isar|floor)' pubspec.yaml

# Detect state management (for integration patterns)
grep -E '(flutter_bloc|riverpod|provider:|get:)' pubspec.yaml

# Detect GraphQL
grep -E '(graphql|ferry|gql)' pubspec.yaml

# Detect Firebase
grep -E '(firebase_core|supabase)' pubspec.yaml

# Detect backend for cross-link
ls ../backend/ ../server/ ../api/ 2>/dev/null
find .. -maxdepth 3 \( -name "go.mod" -o -name "requirements.txt" -o -name "Gemfile" -o -name "*.csproj" \) 2>/dev/null | grep -v flutter | head -10

# Detect platform targets
ls android/ ios/ macos/ linux/ windows/ web/ 2>/dev/null

What to determine:

QuestionImpact
sentry_flutter already in pubspec.yaml?Skip install, jump to feature config
Dart SDK >=3.5?Required for sentry_flutter ≥9.0.0
go_router or auto_route present?Use SentryNavigatorObserver — specific patterns apply
dio present?Recommend sentry_dio integration
sqflite, drift, hive, isar present?Recommend matching sentry_* DB package
Has android/ and ios/ directories?Full mobile feature set available
Has web/ directory only?Session Replay and Profiling unavailable
Has macos/ directory?Profiling available (alpha)
Backend directory detected?Trigger Phase 4 cross-link

---

Phase 2: Recommend

Present a concrete recommendation based on what you found. Don't ask open-ended questions — lead with a proposal:

Recommended (core coverage — always set up these):

  • ✅ Error Monitoring — captures Dart exceptions, Flutter framework errors, and native crashes (iOS + Android)
  • ✅ Tracing — auto-instruments navigation, app start, network requests, and UI interactions
  • ✅ Session Replay — captures widget tree screenshots for debugging (iOS + Android only)

Optional (enhanced observability):

  • ⚡ Profiling — CPU profiling; iOS and macOS only (alpha)
  • ⚡ Logging — structured logs via Sentry.logger.* and sentry_logging integration
  • ⚡ Metrics — counters, gauges, distributions (SDK ≥9.11.0)

Platform limitations — be upfront:

FeaturePlatformsNotes
Session ReplayiOS, AndroidNot available on macOS, Linux, Windows, Web
ProfilingiOS, macOSAlpha status; not available on Android, Linux, Windows, Web
Native crashesiOS, Android, macOSNDK/signal handling; Linux/Windows/Web: Dart exceptions only
App Start metricsiOS, AndroidNot available on desktop/web
Slow/frozen framesiOS, Android, macOSNot available on Linux, Windows, Web
CronsN/ANot available in the Flutter/Dart SDK

Propose: "For your Flutter app targeting iOS/Android, I recommend Error Monitoring + Tracing + Session Replay. Want me to also add Logging and Profiling (iOS/macOS alpha)?"

---

Phase 3: Guide

Determine Your Setup Path

Project typeRecommended setup
Any Flutter appWizard CLI (handles pubspec, init, symbol upload)
Manual preferredPath B below — pubspec.yaml + main.dart
Dart-only (CLI, server)Path C below — pure sentry package

---

Path A: Wizard CLI (Recommended)

You need to run this yourself — the wizard opens a browser for login and requires interactive input that the agent can't handle. Copy-paste into your terminal: ``bash brew install getsentry/tools/sentry-wizard && sentry-wizard -i flutter ` It handles org/project selection, adds sentry_flutter to pubspec.yaml, updates main.dart, configures sentry_dart_plugin for debug symbol upload, and adds build scripts. Here's what it creates/modifies: | File | Action | Purpose | |------|--------|---------| | pubspec.yaml | Adds sentry_flutter dependency and sentry: config block | SDK + symbol upload config | | lib/main.dart | Wraps main() with SentryFlutter.init() | SDK initialization | | android/app/build.gradle | Adds Proguard config reference | Android obfuscation support | | .sentryclirc` | Auth token and org/project config | Symbol upload credentials | Once it finishes, come back and skip to Verification.

If the user skips the wizard, proceed with Path B (Manual Setup) below.

---

Path B: Manual — Flutter App

Step 1 — Install

flutter pub add sentry_flutter

Or add to pubspec.yaml manually:

dependencies:
  flutter:
    sdk: flutter
  sentry_flutter: ^9.14.0

Then run:

flutter pub get

Step 2 — Initialize Sentry in lib/main.dart

import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

Future<void> main() async {
  await SentryFlutter.init(
    (options) {
      options.dsn = 'YOUR_SENTRY_DSN';
      options.sendDefaultPii = true;

      // Tracing
      options.tracesSampleRate = 1.0; // lower to 0.1–0.2 in production

      // Profiling (iOS and macOS only — alpha)
      options.profilesSampleRate = 1.0;

      // Session Replay (iOS and Android only)
      options.replay.sessionSampleRate = 0.1;
      options.replay.onErrorSampleRate = 1.0;

      // Structured Logging (SDK ≥9.5.0)
      options.enableLogs = true;

      options.environment = const bool.fromEnvironment('dart.vm.product')
          ? 'production'
          : 'development';
    },
    // REQUIRED: wrap root widget to enable screenshots, replay, user interaction tracing
    appRunner: () => runApp(SentryWidget(child: MyApp())),
  );
}

Step 3 — Add Navigation Observer

Add SentryNavigatorObserver to your MaterialApp or CupertinoApp:

import 'package:flutter/material.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [
        SentryNavigatorObserver(),
      ],
      // Always name your routes for Sentry to track them
      routes: {
        '/': (context) => HomeScreen(),
        '/profile': (context) => ProfileScreen(),
      },
    );
  }
}

For GoRouter:

import 'package:go_router/go_router.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

final GoRouter router = GoRouter(
  observers: [SentryNavigatorObserver()],
  routes: [
    GoRoute(
      path: '/',
      name: 'home', // name is REQUIRED for Sentry route tracking
      builder: (context, state) => const HomeScreen(),
      routes: [
        GoRoute(
          path: 'profile/:id',
          name: 'profile', // name is REQUIRED
          builder: (context, state) => ProfileScreen(
            id: state.pathParameters['id']!,
          ),
        ),
      ],
    ),
  ],
);

Step 4 — Configure Debug Symbol Upload

Readable stack traces in Sentry require uploading debug symbols when building with --obfuscate.

Add to pubspec.yaml:

dev_dependencies:
  sentry_dart_plugin: ^3.2.1

sentry:
  project: YOUR_PROJECT_SLUG
  org: YOUR_ORG_SLUG
  auth_token: YOUR_AUTH_TOKEN  # prefer SENTRY_AUTH_TOKEN env var instead
  upload_debug_symbols: true
  upload_sources: true
  upload_source_maps: true     # for Web

Build and upload:

# Android
flutter build apk \
  --release \
  --obfuscate \
  --split-debug-info=build/debug-info \
  --extra-gen-snapshot-options=--save-obfuscation-map=build/app/obfuscation.map.json
dart run sentry_dart_plugin

# iOS
flutter build ipa \
  --release \
  --obfuscate \
  --split-debug-info=build/debug-info \
  --extra-gen-snapshot-options=--save-obfuscation-map=build/app/obfuscation.map.json
dart run sentry_dart_plugin

# Web
flutter build web --release --source-maps
dart run sentry_dart_plugin

---

Path C: Manual — Dart-Only (CLI / Server)

# pubspec.yaml
dependencies:
  sentry: ^9.14.0
import 'package:sentry/sentry.dart';

Future<void> main() async {
  await Sentry.init(
    (options) {
      options.dsn = 'YOUR_SENTRY_DSN';
      options.tracesSampleRate = 1.0;
      options.enableLogs = true;
    },
    appRunner: myApp,
  );
}

---

Quick Reference: Full-Featured SentryFlutter.init()

import 'package:sentry_flutter/sentry_flutter.dart';

Future<void> main() async {
  await SentryFlutter.init(
    (options) {
      options.dsn = 'YOUR_SENTRY_DSN';
      options.sendDefaultPii = true;

      // Environment — detect release builds via dart.vm.product
      options.environment = const bool.fromEnvironment('dart.vm.product')
          ? 'production'
          : 'development';

      // Release is auto-set on iOS/Android as "packageName@version+build"
      // Override if needed:
      // options.release = 'my-app@1.0.0+42';

      // Error sampling — reduce to drop a fraction of errors in high-volume production
      options.sampleRate = 1.0;

      // Tracing — lower to 0.1–0.2 in high-traffic production
      options.tracesSampleRate = 1.0;

      // Profiling — iOS and macOS only (alpha); relative to tracesSampleRate
      options.profilesSampleRate = 1.0;

      // Session Replay — iOS and Android only (SDK ≥9.0.0)
      options.replay.sessionSampleRate = 0.1;   // record 10% of all sessions
      options.replay.onErrorSampleRate = 1.0;   // always record error sessions

      // Privacy defaults — all text and images masked
      options.privacy.maskAllText = true;
      options.privacy.maskAllImages = true;

      // Structured logging (SDK ≥9.5.0)
      options.enableLogs = true;

      // Attachments
      options.attachScreenshot = true;          // screenshot on error
      options.attachViewHierarchy = true;       // widget tree on error

      // HTTP client
      options.captureFailedRequests = true;     // auto-capture HTTP errors
      options.maxRequestBodySize = MaxRequestBodySize.small;

      // Android specifics
      options.anrEnabled = true;                // ANR detection
      options.enableNdkScopeSync = true;        // sync scope to native
      options.enableTombstone = false;          // Android 12+ tombstone (opt-in)

      // Navigation (Time to Full Display — opt-in)
      options.enableTimeToFullDisplayTracing = true;
    },
    appRunner: () => runApp(SentryWidget(child: MyApp())),
  );
}

---

Navigation: Time to Full Display (TTFD)

TTID (Time to Initial Display) is always enabled. TTFD is opt-in:

// Enable in options:
options.enableTimeToFullDisplayTracing = true;

Then report when your screen has loaded its data:

// Option 1: Widget wrapper (marks TTFD when child first renders)
SentryDisplayWidget(child: MyWidget())

// Option 2: Manual API call (after async data loads)
await _loadData();
SentryFlutter.currentDisplay()?.reportFullyDisplayed();

---

For Each Agreed Feature

Walk through features one at a time. Load the reference file for each, follow its steps, then verify before moving on:

FeatureReferenceLoad when...
Error Monitoring${SKILL_ROOT}/references/error-monitoring.mdAlways (baseline)
Tracing & Performance${SKILL_ROOT}/references/tracing.mdAlways — navigation, HTTP, DB spans
Session Replay${SKILL_ROOT}/references/session-replay.mdiOS/Android user-facing apps
Profiling${SKILL_ROOT}/references/profiling.mdiOS/macOS performance-sensitive apps
Logging${SKILL_ROOT}/references/logging.mdStructured logging / log-trace correlation
Metrics${SKILL_ROOT}/references/metrics.mdCustom business metrics

For each feature: Read ${SKILL_ROOT}/references/<feature>.md, follow steps exactly, verify it works.

---

Configuration Reference

Core SentryFlutter.init() Options

OptionTypeDefaultPurpose
dsnstring—Required. Project DSN. Env: SENTRY_DSN via --dart-define
environmentstring—e.g., "production", "staging". Env: SENTRY_ENVIRONMENT
releasestringAuto on iOS/Android"packageName@version+build". Env: SENTRY_RELEASE
diststring—Distribution identifier; max 64 chars. Env: SENTRY_DIST
sendDefaultPiiboolfalseInclude PII: IP address, user labels, widget text in replay
sampleRatedouble1.0Error event sampling (0.0–1.0)
maxBreadcrumbsint100Max breadcrumbs per event
attachStacktracebooltrueAuto-attach stack traces to messages
attachScreenshotboolfalseCapture screenshot on error (mobile/desktop only)
screenshotQualityenumhighScreenshot quality: full, high, medium, low
attachViewHierarchyboolfalseAttach JSON widget tree as attachment on error
debugbooltrue in debugVerbose SDK output. Never force true in production
diagnosticLevelenumwarningLog verbosity: debug, info, warning, error, fatal
enabledbooltrueDisable SDK entirely (e.g., for testing)
maxCacheItemsint30Max offline-cached envelopes (not supported on Web)
sendClientReportsbooltrueSend SDK health reports (dropped events, etc.)
reportPackagesbooltrueReport pubspec.yaml dependency list
reportSilentFlutterErrorsboolfalseCapture FlutterErrorDetails.silent errors
idleTimeoutDuration3000msAuto-finish idle user interaction transactions

Tracing Options

OptionTypeDefaultPurpose
tracesSampleRatedouble—Transaction sample rate (0–1). Enable by setting >0
tracesSamplerfunction—Per-transaction sampling; overrides tracesSampleRate
tracePropagationTargetsList—URLs to attach sentry-trace + baggage headers
propagateTraceparentboolfalseAlso send W3C traceparent header (SDK ≥9.7.0)
enableTimeToFullDisplayTracingboolfalseOpt-in TTFD tracking per screen
enableAutoPerformanceTracingbooltrueAuto-enable performance monitoring
enableUserInteractionTracingbooltrueCreate transactions for tap/click/long-press events
enableUserInteractionBreadcrumbsbooltrueBreadcrumbs for every tracked user interaction

Profiling Options

OptionTypeDefaultPurpose
profilesSampleRatedouble—Profiling rate relative to tracesSampleRate. iOS/macOS only

Native / Mobile Options

OptionTypeDefaultPurpose
autoInitializeNativeSdkbooltrueAuto-initialize native Android/iOS SDK layer
enableNativeCrashHandlingbooltrueCapture native crashes (NDK, signal, Mach exception)
enableNdkScopeSyncbooltrueSync Dart scope to Android NDK
enableScopeSyncbooltrueSync scope data to native SDKs
anrEnabledbooltrueANR detection (Android)
anrTimeoutIntervalint5000ANR timeout in milliseconds (Android)
enableWatchdogTerminationTrackingbooltrueOOM kill tracking (iOS)
enableTombstoneboolfalseAndroid 12+ native crash info via ApplicationExitInfo
attachThreadsboolfalseAttach all threads on crash (Android)
captureNativeFailedRequestsbool—Native HTTP error capture, independent of Dart client (iOS/macOS, v9.11.0+)
enableAutoNativeAppStartbooltrueApp start timing instrumentation (iOS/Android)
enableFramesTrackingbooltrueSlow/frozen frame monitoring (iOS/Android/macOS)
proguardUuidstring—Proguard UUID for Android obfuscation mapping

Session & Release Health Options

OptionTypeDefaultPurpose
enableAutoSessionTrackingbooltrueSession tracking for crash-free user/session metrics
autoSessionTrackingIntervalDuration30sBackground inactivity before session ends

Replay Options (options.replay)

OptionTypeDefaultPurpose
replay.sessionSampleRatedouble0.0Fraction of all sessions recorded
replay.onErrorSampleRatedouble0.0Fraction of error sessions recorded

Replay Privacy Options (options.privacy)

Option / MethodDefaultPurpose
privacy.maskAllTexttrueMask all text widget content
privacy.maskAllImagestrueMask all image widgets
privacy.maskAssetImagestrueMask images from root asset bundle
privacy.mask<T>()—Mask a specific widget type and all subclasses
privacy.unmask<T>()—Unmask a specific widget type
privacy.maskCallback<T>()—Custom masking decision per widget instance

HTTP Options

OptionTypeDefaultPurpose
captureFailedRequestsbooltrue (Flutter)Auto-capture HTTP errors
maxRequestBodySizeenumneverBody capture: never, small, medium, always
failedRequestStatusCodesList[500–599]Status codes treated as failures
failedRequestTargetsList['.*']URL patterns to monitor

Hook Options

OptionTypePurpose
beforeSend(SentryEvent, Hint) → SentryEvent?Modify or drop error events. Return null to drop
beforeSendTransaction(SentryEvent) → SentryEvent?Modify or drop transaction events
beforeBreadcrumb(Breadcrumb, Hint) → Breadcrumb?Process breadcrumbs before storage
beforeSendLog(SentryLog) → SentryLog?Filter structured logs before sending

---

Environment Variables

Pass via --dart-define at build time:

VariablePurposeNotes
SENTRY_DSNData Source NameFalls back from options.dsn
SENTRY_ENVIRONMENTDeployment environmentFalls back from options.environment
SENTRY_RELEASERelease identifierFalls back from options.release
SENTRY_DISTBuild distributionFalls back from options.dist
SENTRY_AUTH_TOKENUpload debug symbolsNever embed in app — build tool only
SENTRY_ORGOrganization slugUsed by sentry_dart_plugin
SENTRY_PROJECTProject slugUsed by sentry_dart_plugin

Usage:

flutter build apk --release \
  --dart-define=SENTRY_DSN=https://xxx@sentry.io/123 \
  --dart-define=SENTRY_ENVIRONMENT=production

Then in code:

options.dsn = const String.fromEnvironment('SENTRY_DSN');
options.environment = const String.fromEnvironment('SENTRY_ENVIRONMENT', defaultValue: 'development');

---

Ecosystem Integrations

Add these packages alongside sentry_flutter for deeper instrumentation:

HTTP Clients

Standard http package — built into sentry_flutter, no extra install:

import 'package:sentry/sentry.dart';

// Wrap your http client
final client = SentryHttpClient(
  captureFailedRequests: true,
  failedRequestStatusCodes: [SentryStatusCode.range(400, 599)],
);
try {
  final response = await client.get(Uri.parse('https://api.example.com/users'));
} finally {
  client.close();
}

Dio — install sentry_dio:

flutter pub add sentry_dio
import 'package:dio/dio.dart';
import 'package:sentry_dio/sentry_dio.dart';

final dio = Dio();
// Add your interceptors first, THEN addSentry() last
dio.addSentry(
  captureFailedRequests: true,
  failedRequestStatusCodes: [SentryStatusCode.range(400, 599)],
);

Databases

PackageInstallSetup
sentry_sqfliteflutter pub add sentry_sqflitedatabaseFactory = SentrySqfliteDatabaseFactory();
sentry_driftflutter pub add sentry_drift.interceptWith(SentryQueryInterceptor(databaseName: 'db'))
sentry_hiveflutter pub add sentry_hiveUse SentryHive instead of Hive
sentry_isarflutter pub add sentry_isarUse SentryIsar.open() instead of Isar.open()

Other

PackageInstallPurpose
sentry_loggingflutter pub add sentry_loggingDart logging package → Sentry breadcrumbs/events
sentry_linkflutter pub add sentry_linkGraphQL (gql, graphql_flutter, ferry) tracing
sentry_supabaseflutter pub add sentry_supabaseSupabase query tracing (SDK ≥9.9.0)
sentry_firebase_remote_configflutter pub add sentry_firebase_remote_configFeature flag tracking
sentry_fileflutter pub add sentry_fileFile I/O tracing via .sentryTrace() extension

State Management Patterns

No official packages — wire Sentry via observer APIs:

FrameworkHook pointPattern
BLoC/CubitBlocObserver.onErrorSentry.captureException(error, stackTrace: stackTrace) inside onError; set Bloc.observer = SentryBlocObserver() before init
RiverpodProviderObserver.providerDidFailFires for FutureProvider/StreamProvider failures; wrap app with ProviderScope(observers: [SentryProviderObserver()])
Provider/ChangeNotifiertry/catch in notifyListeners callersManually call Sentry.captureException(e, stackTrace: stack) in catch blocks
GetXGetMaterialApp.onErrorGetMaterialApp(onError: (details) => Sentry.captureException(...))

---

Production Settings

Lower sample rates and harden config before shipping:

Future<void> main() async {
  final isProduction = const bool.fromEnvironment('dart.vm.product');

  await SentryFlutter.init(
    (options) {
      options.dsn = const String.fromEnvironment('SENTRY_DSN');
      options.environment = isProduction ? 'production' : 'development';

      // Trace 10% of transactions in high-traffic production
      options.tracesSampleRate = isProduction ? 0.1 : 1.0;

      // Profile 100% of traced transactions (profiling is always a subset)
      options.profilesSampleRate = 1.0;

      // Replay all error sessions, sample 5% of normal sessions
      options.replay.onErrorSampleRate = 1.0;
      options.replay.sessionSampleRate = isProduction ? 0.05 : 1.0;

      // Disable debug logging in production
      options.debug = !isProduction;
    },
    appRunner: () => runApp(SentryWidget(child: MyApp())),
  );
}

---

Verification

After setup, test that Sentry is receiving events:

// Add a test button somewhere visible during development:
ElevatedButton(
  onPressed: () {
    throw Exception('Sentry test error!');
  },
  child: const Text('Test Sentry Error'),
)

// Or capture manually:
ElevatedButton(
  onPressed: () {
    Sentry.captureMessage('Sentry test message', level: SentryLevel.info);
  },
  child: const Text('Test Sentry Message'),
)

// Test structured logging:
ElevatedButton(
  onPressed: () {
    Sentry.logger.info('Test log from Flutter app');
  },
  child: const Text('Test Sentry Log'),
)

Check the Sentry dashboard:

  • Issues → test error should appear within seconds
  • Traces → look for a navigation transaction with child spans
  • Replays → session recording visible after app interaction (iOS/Android only)
  • Logs → structured log entries if enableLogs: true

⚠️ Platform limitations in debug mode: - Native crashes, session replay, slow/frozen frames, and app start metrics only fully work in release builds on iOS/Android - Run flutter run --release or use a real device/emulator to test native features - Debug mode uses the Dart VM with JIT compilation — some native integrations behave differently

---

Default Auto-Enabled Integrations

These are active with no extra config when you call SentryFlutter.init():

IntegrationWhat it does
FlutterErrorIntegrationCaptures FlutterError.onError framework errors
RunZonedGuardedIntegrationCatches unhandled Dart exceptions in runZonedGuarded
NativeAppStartIntegrationApp start timing (iOS/Android)
FramesTrackingIntegrationSlow/frozen frames (iOS/Android/macOS)
NativeUserInteractionIntegrationUser interaction breadcrumbs from native layer
UserInteractionIntegrationDart-layer tap/click transactions (requires SentryWidget)
DeviceContextIntegrationDevice model, OS version, screen resolution
AppContextIntegrationApp version, build number, bundle ID
ConnectivityIntegrationNetwork connectivity change breadcrumbs
HttpClientIntegrationAuto-instrument Dart http requests
SdkIntegrationSDK metadata tagging
ReleaseIntegrationAuto-set release on iOS/Android from package info

---

Phase 4: Cross-Link

After completing Flutter setup, check for a backend missing Sentry coverage:

# Adjacent backend directories
ls ../backend ../server ../api 2>/dev/null
cat ../go.mod 2>/dev/null | head -3
cat ../requirements.txt ../pyproject.toml 2>/dev/null | head -3
cat ../Gemfile 2>/dev/null | head -3
ls ../backend/package.json ../server/package.json 2>/dev/null

If a backend exists without Sentry, suggest the matching skill:

DetectedSuggest skill
Go backend (go.mod)sentry-go-sdk
Python backend (requirements.txt, pyproject.toml)sentry-python-sdk
Ruby backend (Gemfile)sentry-ruby-sdk
Node.js backendsentry-node-sdk
.NET backend (*.csproj)sentry-dotnet-sdk
React / Next.js websentry-react-sdk / sentry-nextjs-sdk

Distributed tracing — if a backend skill is added, configure tracePropagationTargets in Flutter to propagate trace context to your API:

options.tracePropagationTargets = ['api.myapp.com', 'localhost'];
options.propagateTraceparent = true; // also send W3C traceparent header

This links mobile transactions to backend traces in the Sentry waterfall view.

---

Troubleshooting

IssueSolution
Events not appearing in SentrySet options.debug = true — SDK logs to Flutter console; verify DSN is correct
SentryFlutter.init throwsEnsure main() is async and you await SentryFlutter.init(...)
Stack traces unreadable in SentryUpload debug symbols with sentry_dart_plugin; build with --obfuscate --split-debug-info
Stack traces missing on WebBuild with --source-maps and run dart run sentry_dart_plugin to upload
Native crashes not capturedConfirm enableNativeCrashHandling: true; test in release mode, not debug
Session replay not recordingiOS/Android only; confirm SentryWidget wraps root; check replay.onErrorSampleRate
Replay shows blank screensConfirm SentryWidget(child: MyApp()) is outermost widget; not inside navigator
Profiling not workingiOS and macOS only (alpha); confirm tracesSampleRate > 0 is set first
Navigation not trackedAdd SentryNavigatorObserver() to navigatorObservers; name all routes
GoRouter routes unnamedAdd name: to all GoRoute entries — unnamed routes are tracked as null
TTFD never reportsCall SentryFlutter.currentDisplay()?.reportFullyDisplayed() after data loads, or wrap with SentryDisplayWidget
sentry_dart_plugin auth errorSet SENTRY_AUTH_TOKEN env var instead of hardcoding in pubspec.yaml
Android ProGuard mapping missingEnsure --extra-gen-snapshot-options=--save-obfuscation-map=... flag is set
iOS dSYM not uploadedsentry_dart_plugin handles this; check upload_debug_symbols: true in pubspec.yaml sentry: block
pub get fails: Dart SDK too oldsentry_flutter ≥9.0.0 requires Dart ≥3.5.0; run flutter upgrade
Hot restart crashes on Android debugKnown issue (fixed in SDK ≥9.9.0); upgrade if on older version
ANR detection too aggressiveIncrease anrTimeoutInterval (default: 5000ms)
Too many transactions in dashboardLower tracesSampleRate to 0.1 or use tracesSampler to drop health checks
beforeSend not firing for native crashesExpected — beforeSend intercepts only Dart-layer events; native crashes bypass it
Crons not availableThe Flutter/Dart SDK does not support Sentry Crons; use a server-side SDK instead
SentryWidget warning in testsWrap test widget with SentryFlutter.init() in setUpAll, or use enabled: false
Firebase Remote Config: Linux/Windowssentry_firebase_remote_config not supported on Linux/Windows (Firebase limitation)
Isar tracing on Websentry_isar does NOT support Web (Isar does not support Web)

Score

0–100
63/ 100

Grade

C

Popularity15/30

1,219 installs — growing adoption.

Completeness27/30

Documented: full SKILL.md body, description, one-line install. Missing: category/license metadata.

Trust15/25

Community skill with a public GitHub source repository you can review.

Freshness6/15

No update timestamp is tracked for this skill in our catalog.

Scored automatically from popularity, completeness, trust, and freshness — computed only from data in our catalog, never fabricated.

Proud of your score? Add this badge to your README.

Paste a snippet into your GitHub README. The badge updates automatically and links back to this page.

Sentry Flutter Sdk skill score badge previewScore badge

Markdown

[![Sentry Flutter Sdk skill](https://www.claudemarket.ai/skills/getsentry/sentry-for-ai/sentry-flutter-sdk/badges/score.svg)](https://www.claudemarket.ai/skills/getsentry/sentry-for-ai/sentry-flutter-sdk)

HTML

<a href="https://www.claudemarket.ai/skills/getsentry/sentry-for-ai/sentry-flutter-sdk"><img src="https://www.claudemarket.ai/skills/getsentry/sentry-for-ai/sentry-flutter-sdk/badges/score.svg" alt="Sentry Flutter Sdk skill"/></a>

Sentry Flutter Sdk FAQ

How do I install the Sentry Flutter Sdk skill?

Run “npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-flutter-sdk” in your terminal. The skill is added to your agent's skills directory and picked up automatically on the next run — no restart or extra configuration needed.

What does the Sentry Flutter Sdk skill do?

Full Sentry SDK setup for Flutter and Dart. Use when asked to "add Sentry to Flutter", "install sentry_flutter", "setup Sentry in Dart", or configure error monitoring, tracing, profiling, session replay, or logging for Flutter applications. Supports Android, iOS, macOS, Linux, Windows, and Web. The full SKILL.md on this page shows the exact instructions the skill gives your agent.

Is the Sentry Flutter Sdk skill free?

Yes. Sentry Flutter Sdk is a free, open-source skill published from getsentry/sentry-for-ai. As with any third-party skill, review the source repository before installing it into an agent with sensitive access.

Does Sentry Flutter Sdk work with Claude Code and OpenClaw?

Yes. Skills use the portable SKILL.md format, so Sentry Flutter Sdk works with Claude Code, OpenClaw, Codex, Hermes, and any other agent that reads SKILL.md skills.

Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free →
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here →
Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free →
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here →
Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off
Launch on Hostinger →
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed
Launch on Hostinger →
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off
Try Firecrawl free →
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw
Deploy now →
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.
Start building free →
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams
Get it set up for you →
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit
Try DataForSEO free →
Reach 47,000+ AI builders
Advertise here →
View on GitHub

Recommended skills

Browse all →
sentry-cli logo

sentry-cli

sentry/dev

120K installsInstall
find-skills logo

find-skills

vercel-labs/skills

2.8M installsInstall
frontend-design logo

frontend-design

anthropics/skills

732K installsInstall
grill-me logo

grill-me

mattpocock/skills

730K installsInstall
grill-with-docs logo

grill-with-docs

mattpocock/skills

619K installsInstall
agent-browser logo

agent-browser

vercel-labs/agent-browser

613K installsInstall

Related guides

Hand-picked reading to help you choose, install, and use agent skills.

GuideBest Openclaw Skills 2026GuideHow To Evaluate Openclaw Skill Before InstallingGuideOpenclaw Skills Complete Guide

Skills by category

FrontendBackend & APIsTesting & QASecurityDevOps & CI/CDMCP & ToolingAutomationData & Analysis+20 more

MCP servers by category

AI & MLDeveloper ToolsVector & MemoryFiles & DocsDatabasesFinance & PaymentsBrowser & ScrapingCommunication+8 more

Marketplaces by category

developmentproductivitycommunicationdesignsecuritydatabaseworkflowcompliance+34 more

Claude Market

AI agent skills directory, marketplace, and workflow hub for OpenClaw, Hermes Agent, Claude Code, Codex, and MCP-powered operator stacks.

Independent project, not affiliated with Anthropic.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Plugins

More

  • Submit a Tool
  • Advertise
  • Free Tools
  • API
  • Shipping
  • Contact
  • Terms
  • Privacy

Know a company that should advertise here? Refer them and earn 10% — up to $300 per referral.

© 2026 Claude Market
Fazier badgeFeatured on Twelve ToolsFeatured on Wired BusinessRemote OpenClaw - Featured on AI Agents DirectoryListed on Turbo0Featured on Uneed