Switch the Flashlight / Torch of your device.
npm install @capgo/capacitor-flash
A simple, free, and lightweight flashlight control plugin:
- Intensity control - Adjust brightness levels (iOS and Android 13+)
- Status checking - Query flashlight availability and current state
- Toggle support - Simple on/off switching with toggle method
- Universal compatibility - Works across iOS, Android, and web (Chrome on mobile devices)
- Modern package management - Supports both Swift Package Manager (SPM) and CocoaPods (SPM-ready for Capacitor 8)
- Zero dependencies - Minimal footprint, no bloat
Perfect for QR scanner apps, emergency torch features, camera apps, and utility tools.
The most complete doc is available here: https://capgo.app/docs/plugins/flash/
| Plugin version | Capacitor compatibility | Maintained |
| -------------- | ----------------------- | ---------- |
| v8.\.\ | v8.\.\ | ✅ |
| v7.\.\ | v7.\.\ | On demand |
| v6.\.\ | v6.\.\ | ❌ |
| v5.\.\ | v5.\.\ | ❌ |
> Note: The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.
``bash`
npm install @capgo/capacitor-flash
npx cap sync
Works out of the box
Works out of the box. No permissions are required since the CameraManager.setTorchMode() API (introduced in Android 6.0) does not require camera permission.
Optionally, you can declare the flash hardware feature in your AndroidManifest.xml:
`xml`
Works in Chrome and Chromium-based browsers on mobile devices. Uses the MediaDevices API with torch constraint. Call isAvailable() first to check if torch control is supported on the current browser/device.
* isAvailable()
* switchOn(...)
* switchOff()
* isSwitchedOn()
* toggle()
* getPluginVersion()
Capacitor Flash Plugin for controlling device flashlight/torch.
`typescript`
isAvailable() => Promise<{ value: boolean; }>
Checks if flashlight is available on the device.
Returns: Promise<{ value: boolean; }>
Since: 1.0.0
--------------------
`typescript`
switchOn(options: { intensity?: number; }) => Promise
Turns the flashlight on.
| Param | Type | Description |
| ------------- | ------------------------------------ | -------------------------------------------------- |
| options | { intensity?: number; } | - Optional configuration including light intensity |
Since: 1.0.0
--------------------
`typescript`
switchOff() => Promise
Turns the flashlight off.
Since: 1.0.0
--------------------
`typescript`
isSwitchedOn() => Promise<{ value: boolean; }>
Checks if the flashlight is currently turned on or off.
Returns: Promise<{ value: boolean; }>
Since: 1.0.0
--------------------
`typescript`
toggle() => Promise<{ value: boolean; }>
Toggle the flashlight on or off.
Returns: Promise<{ value: boolean; }>
Since: 1.0.0
--------------------
`typescript``
getPluginVersion() => Promise<{ version: string; }>
Get the native Capacitor plugin version.
Returns: Promise<{ version: string; }>
Since: 1.0.0
--------------------