Skip to Content
v0.8.0 · shippedNative mobile SDKs, optional Sentry enrichment, and bring-your-own keys/storage. Read the changelog →
SDK reference@mushi-mushi/angular

@mushi-mushi/angular

Angular service + DI provider. Wraps @mushi-mushi/web — everything in the web SDK is available, with an idiomatic Angular surface.

npm install @mushi-mushi/angular

See Quickstart → Angular for the full setup walkthrough.

API surface

import { provideMushi, MushiService, MushiReportDirective } from '@mushi-mushi/angular'
ExportPurpose
provideMushi(config)App-level provider — call in bootstrapApplication or AppModule.providers
MushiServiceInjectable singleton — submit(), identify(), submitActivity()
MushiReportDirectivemushiReport attribute directive — attaches report trigger to any element

Setup (standalone bootstrap)

// main.ts import { bootstrapApplication } from '@angular/platform-browser' import { provideMushi } from '@mushi-mushi/angular' import { AppComponent } from './app/app.component' bootstrapApplication(AppComponent, { providers: [ provideMushi({ projectId: 'YOUR_PROJECT_ID', apiKey: 'YOUR_PUBLIC_API_KEY', }), ], })

Identifying users

// auth.service.ts import { Injectable, inject } from '@angular/core' import { MushiService } from '@mushi-mushi/angular' @Injectable({ providedIn: 'root' }) export class AuthService { private readonly mushi = inject(MushiService) onSignIn(user: { id: string; email: string; name: string }) { this.mushi.identify(user.id, { email: user.email, name: user.name }) } }

Submitting a report

import { Component, inject } from '@angular/core' import { MushiService } from '@mushi-mushi/angular' @Component({ ... }) export class FeedbackButtonComponent { private readonly mushi = inject(MushiService) async reportIssue() { await this.mushi.submit({ title: 'Something feels off', severity: 'p2' }) } }
Last updated on