getsentry/sentry-capacitor

The official Sentry SDK for Capacitor

147

stars

611

commits

TypeScript

primary language

Sep 10, 2026

updated

sentry.io
android
capacitor
crash
crash-reporting
error
error-handling
hybrid-apps
ionic
ios
javascript
mobile
sdk
sentry
tag-production
team-mobile

README

Bad software is everywhere, and we're tired of it. Sentry is on a mission to help developers write better software faster, so we can get back to enjoying technology. If you want to join us Check out our open positions

Official Sentry SDK for Capacitor

build Discord Chat

Installation

# Angular 14 and newer:
yarn add @sentry/capacitor @sentry/angular --exact

# Vue
yarn add @sentry/capacitor @sentry/vue --exact

# React
yarn add @sentry/capacitor @sentry/react --exact

# Other
yarn add @sentry/capacitor @sentry/browser --exact

Older versions of Angular require @sentry/capacitor V0, for more information check the page: https://docs.sentry.io/platforms/javascript/guides/capacitor/#angular-version-compatibility

Usage

To use this SDK, call Sentry.init as early as possible after loading the page. This will initialize the SDK and hook into the environment. Note that you can turn off almost all side effects using the respective options.

// app.module.ts

import * as Sentry from "@sentry/capacitor";
import { init as sentryAngularInit, createErrorHandler }  from "@sentry/angular";

// Init by passing the sibling SDK's init as the second parameter.
Sentry.init({
  dsn: "__DSN__",
}, sentryAngularInit);

// Attach the Sentry ErrorHandler
@NgModule({
  providers: [
    {
      provide: ErrorHandler,
      useValue: createErrorHandler(),
    },
  ],
})

To set context information or send manual events, use the exported functions of @sentry/capacitor. Note that these functions will not perform any action before you have called Sentry.init():

import * as Sentry from '@sentry/capacitor';

// Set user information, as well as tags and further extras
  const scope = Sentry.getCurrentScope();
  scope.setExtra('battery', 0.7);
  scope.setTag('user_mode', 'admin');
  scope.setUser({ id: '4711' });
  // scope.clear();
});

// Add a breadcrumb for future events
Sentry.addBreadcrumb({
  message: 'My Breadcrumb',
  // ...
});

// Capture exceptions, messages or manual events
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
  message: 'Manual',
  stacktrace: [
    // ...
  ],
});

Resources

  • Documentation
  • Discussions
  • Discord Chat
  • Stack Overflow
  • X Follow

Contributors

(top 30 of 42)

lucas-zimerman

216 commits

dependabot[bot]

135 commits

cSparkle

56 commits

getsentry-bot

54 commits

getsentry/sentry-capacitor

The official Sentry SDK for Capacitor

147

stars

611

commits

TypeScript

primary language

Sep 10, 2026

updated

sentry.io
android
capacitor
crash
crash-reporting
error
error-handling
hybrid-apps
ionic
ios
javascript
mobile
sdk
sentry
tag-production
team-mobile

README

Bad software is everywhere, and we're tired of it. Sentry is on a mission to help developers write better software faster, so we can get back to enjoying technology. If you want to join us Check out our open positions

Official Sentry SDK for Capacitor

build Discord Chat

Installation

# Angular 14 and newer:
yarn add @sentry/capacitor @sentry/angular --exact

# Vue
yarn add @sentry/capacitor @sentry/vue --exact

# React
yarn add @sentry/capacitor @sentry/react --exact

# Other
yarn add @sentry/capacitor @sentry/browser --exact

Older versions of Angular require @sentry/capacitor V0, for more information check the page: https://docs.sentry.io/platforms/javascript/guides/capacitor/#angular-version-compatibility

Usage

To use this SDK, call Sentry.init as early as possible after loading the page. This will initialize the SDK and hook into the environment. Note that you can turn off almost all side effects using the respective options.

// app.module.ts

import * as Sentry from "@sentry/capacitor";
import { init as sentryAngularInit, createErrorHandler }  from "@sentry/angular";

// Init by passing the sibling SDK's init as the second parameter.
Sentry.init({
  dsn: "__DSN__",
}, sentryAngularInit);

// Attach the Sentry ErrorHandler
@NgModule({
  providers: [
    {
      provide: ErrorHandler,
      useValue: createErrorHandler(),
    },
  ],
})

To set context information or send manual events, use the exported functions of @sentry/capacitor. Note that these functions will not perform any action before you have called Sentry.init():

import * as Sentry from '@sentry/capacitor';

// Set user information, as well as tags and further extras
  const scope = Sentry.getCurrentScope();
  scope.setExtra('battery', 0.7);
  scope.setTag('user_mode', 'admin');
  scope.setUser({ id: '4711' });
  // scope.clear();
});

// Add a breadcrumb for future events
Sentry.addBreadcrumb({
  message: 'My Breadcrumb',
  // ...
});

// Capture exceptions, messages or manual events
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
  message: 'Manual',
  stacktrace: [
    // ...
  ],
});

Resources

  • Documentation
  • Discussions
  • Discord Chat
  • Stack Overflow
  • X Follow

Contributors

(top 30 of 42)

lucas-zimerman

216 commits

dependabot[bot]

135 commits

cSparkle

56 commits

getsentry-bot

54 commits

Languages

TypeScript

66.5%

Swift

10.0%

Java

8.1%

SCSS

4.4%

JavaScript

3.4%

HTML

3.0%

CSS

1.9%

Shell

1.4%