{"_id":"@capawesome/capacitor-shake","_rev":"4-e2de1875136eb34f888286d3101b7e3b","name":"@capawesome/capacitor-shake","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-shake","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-shake@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/plugins/shake/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"9c40139efd380fbde6e423b0de2965ec26bdc02b","tarball":"https://registry.npmjs.org/@capawesome/capacitor-shake/-/capacitor-shake-0.0.1.tgz","fileCount":34,"integrity":"sha512-a6C+MjNmXxDrMHurprDH7YJuLsmrraurFV0CMdhreh103XsRbv4YVUQwXR88bJsPDWtm8yrhvIxrbUNdyGF6+A==","signatures":[{"sig":"MEYCIQDv4lMdp1kJXM2gOFVV7rJand43SCTBbtIzOlU9dbDrRgIhAMZ1ruy47BUA/To0E1tJkNPraSEYuOdmuj9IcU0VX+vC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40401},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"8dd31ce5d3f16f94fb71d033f47512e99908f4e4","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ShakePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin to detect shake gestures.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-shake_0.0.1_1783405325709_0.9342944861007572","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-shake","version":"0.1.0","keywords":["capacitor","plugin","native","capacitor-plugin","shake","shake detection","shake gesture","shake event","motion detection","accelerometer","sensor"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-shake@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/shake/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"1cb8553f6718f2c52d27ea2ad34cf5a3048dc696","tarball":"https://registry.npmjs.org/@capawesome/capacitor-shake/-/capacitor-shake-0.1.0.tgz","fileCount":34,"integrity":"sha512-kLPIbLF8SC4zDnoGPpyT/kP51hF1Fi4OdYrEWKu3zNdMUP+B0WiI1to1ZLLnnc0ucsuKRk97GTaxaoe/DdDCcA==","signatures":[{"sig":"MEUCIG+i6MtmQKGpvI5vV8zrSBwQj3N80CtyhLT0ZPzkiykZAiEA3LAmXVDXpvCpSZHotWAPSSll2qKN9fsOYJhBdcODD3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-shake@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44027},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"1ce17b1fd14c43b2f1d5d3c2da82221e1d1dca37","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ShakePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:212af336-a8dc-4b9b-b3ec-43ac62656fba"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to detect shake gestures on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-shake_0.1.0_1784015604920_0.10944968002842548","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-shake","version":"0.1.1","keywords":["capacitor","plugin","native","capacitor-plugin","shake","shake detection","shake gesture","shake event","motion detection","accelerometer","sensor"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-shake@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/shake/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"3e9fae01fa5a79243771668c0be73c15e85c5642","tarball":"https://registry.npmjs.org/@capawesome/capacitor-shake/-/capacitor-shake-0.1.1.tgz","fileCount":34,"integrity":"sha512-/6PKeH6eZWFMb+/dJ+83ZE99/SrrFt1g/37+n5DFGNsRbeFxRMHwkeiiBq5t2VfrYJ7dijKzRx8kybica6IVVg==","signatures":[{"sig":"MEQCIFgVPMjr1g2iXvlcDVWq95+kxITVc2r96ucVvMGt71KsAiAwNT4Es7wv9WUdHfuY0CkFslNkO8zyOUeacfiu9DdnGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-shake@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44036},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"3e61f4b412f9f3f512c21169bb135bbb23a67e6d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ShakePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:212af336-a8dc-4b9b-b3ec-43ac62656fba"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin to detect shake gestures on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-shake_0.1.1_1784103057820_0.9474016294517345","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@capawesome/capacitor-shake@0.1.2","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"5b0500b67beff2a8136e42a92759308cfa005db9","tarball":"https://registry.npmjs.org/@capawesome/capacitor-shake/-/capacitor-shake-0.1.2.tgz","fileCount":34,"integrity":"sha512-qdp/nrwqQyIehiMJ+w9BJk4t4vjtNYdoCqVo84vBBCF5NtWCntuMXJ2xuajZ+eYCxw+3k6Wla1InYCmGwjDWVg==","signatures":[{"sig":"MEQCIAjsTgpZW69UrlvqaGDNd0JzC3YjyOPIiVE4fyXTTOgJAiAgM/P+EhxYSiGB5GYETbT4n7/PJ9E3VFQjsfry7KHZMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAEKC4cuKXbaFtb8eGWfQRAFtGIA+vBesYjEYJA1oKogAiEAwgJgoiFOnD0ijir0P3r2tTnMHcg2IG2mm8oo+wJXKJM="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-shake@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44395},"main":"dist/plugin.cjs.js","name":"@capawesome/capacitor-shake","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","license":"MIT","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api ShakePlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"version":"0.1.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:212af336-a8dc-4b9b-b3ec-43ac62656fba"}},"homepage":"https://capawesome.io/docs/sdks/capacitor/shake/","keywords":["capacitor","plugin","native","capacitor-plugin","shake","shake detection","shake gesture","shake event","motion detection","accelerometer","sensor"],"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Capacitor plugin to detect shake gestures on Android and iOS.","directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_nodeVersion":"24.19.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-shake_0.1.2_1788337493879_0.32985643744244486"}}},"time":{"created":"2026-07-07T06:22:05.529Z","modified":"2026-09-02T08:24:54.329Z","0.0.1":"2026-07-07T06:22:05.850Z","0.1.0":"2026-07-14T07:53:25.179Z","0.1.1":"2026-07-15T08:10:58.000Z","0.1.2":"2026-09-02T08:24:53.955Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/shake/","keywords":["capacitor","plugin","native","capacitor-plugin","shake","shake detection","shake gesture","shake event","motion detection","accelerometer","sensor"],"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"description":"Capacitor plugin to detect shake gestures on Android and iOS.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor Shake Plugin\n\nCapacitor plugin to detect shake gestures.\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\n- 📳 **Shake detection**: Detect physical shake gestures on the device.\n- 🎚️ **Sensitivity**: Configure how strong a shake must be to trigger an event.\n- 🔋 **Battery-friendly**: The sensor is only active while you are watching for shakes.\n- 📱 **Cross-platform**: One consistent API for Android and iOS.\n- 🤝 **Compatibility**: Works alongside the [Accelerometer](https://capawesome.io/docs/sdks/capacitor/accelerometer/), [Gyroscope](https://capawesome.io/docs/sdks/capacitor/gyroscope/) and [Haptics](https://capawesome.io/docs/sdks/capacitor/haptics/) plugins.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n## Use Cases\n\nThe Shake plugin is typically used to trigger an action when the user shakes the device, for example:\n\n- **Feedback and bug reporting**: Let users shake the device to open a feedback or bug report dialog.\n- **Debug menus**: Open a hidden developer or debug menu in internal builds when the device is shaken.\n- **Undo actions**: Offer a shake-to-undo interaction, a gesture many users already know from iOS.\n- **Refresh content**: Reload data or shuffle content when a shake gesture is detected.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.x.x          | >=8.x.x           | Active support |\n\n## Guides\n\n- [The Complete Guide to Capacitor Device Sensors](https://capawesome.io/blog/capacitor-device-sensors-guide/): How shake gestures relate to the Accelerometer and Gyroscope for shake-to-undo and shake-to-reroll interactions.\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-shake` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following command:\n\n```bash\nnpm install @capawesome/capacitor-shake\nnpx cap sync\n```\n\nThis plugin is available on **Android** and **iOS**. On Web, all methods reject as unimplemented.\n\nNo additional permissions or privacy descriptions are required.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to detect shake gestures and stop detecting them.\n\n### Detect shake gestures\n\nAttach a `shake` listener and start watching for shake gestures. Use the `sensitivity` option to control how strong a shake must be to trigger an event (see [Sensitivity Levels](#sensitivity-levels)). Only available on Android and iOS:\n\n```typescript\nimport { Shake } from '@capawesome/capacitor-shake';\n\nconst startWatching = async () => {\n  await Shake.addListener('shake', () => {\n    console.log('Shake detected!');\n  });\n  await Shake.startWatching({ sensitivity: 'medium' });\n};\n```\n\n### Stop detecting shake gestures\n\nStop watching and remove all listeners when you no longer need shake detection, for example when the user leaves the corresponding screen. The sensor is only active while you are watching, so this keeps the plugin battery-friendly:\n\n```typescript\nimport { Shake } from '@capawesome/capacitor-shake';\n\nconst stopWatching = async () => {\n  await Shake.stopWatching();\n  await Shake.removeAllListeners();\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`startWatching(...)`](#startwatching)\n* [`stopWatching()`](#stopwatching)\n* [`addListener('shake', ...)`](#addlistenershake-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### startWatching(...)\n\n```typescript\nstartWatching(options?: StartWatchingOptions | undefined) => Promise<void>\n```\n\nStart watching for shake gestures.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                  |\n| ------------- | --------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#startwatchingoptions\">StartWatchingOptions</a></code> |\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### stopWatching()\n\n```typescript\nstopWatching() => Promise<void>\n```\n\nStop watching for shake gestures.\n\nOnly available on Android and iOS.\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### addListener('shake', ...)\n\n```typescript\naddListener(eventName: 'shake', listenerFunc: () => void) => Promise<PluginListenerHandle>\n```\n\nCalled when a shake gesture is detected.\n\nOnly available on Android and iOS.\n\n| Param              | Type                       |\n| ------------------ | -------------------------- |\n| **`eventName`**    | <code>'shake'</code>       |\n| **`listenerFunc`** | <code>() =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all listeners for this plugin.\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### StartWatchingOptions\n\n| Prop              | Type                                                | Description                                                                                                                                                 | Default               | Since |\n| ----------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ----- |\n| **`sensitivity`** | <code><a href=\"#sensitivity\">Sensitivity</a></code> | The sensitivity of the shake detection. Use `'light'` to detect gentle shakes and `'hard'` to only detect strong shakes. Only available on Android and iOS. | <code>'medium'</code> | 0.1.0 |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |\n\n\n### Type Aliases\n\n\n#### Sensitivity\n\n<code>'hard' | 'light' | 'medium'</code>\n\n</docgen-api>\n\n## Sensitivity Levels\n\nThe `sensitivity` option controls how strong a shake must be to emit a `shake` event:\n\n- `light`: A gentle shake is enough to trigger an event.\n- `medium`: A moderate shake is required to trigger an event (default).\n- `hard`: Only a strong shake triggers an event.\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt focuses on doing one thing well: detecting physical shake gestures on Android and iOS through a single, fully typed API. You can tune how strong a shake must be with three sensitivity levels, and the motion sensor only runs between `startWatching(...)` and `stopWatching()`, so it stays battery-friendly. It is actively maintained against the latest Capacitor version, giving you consistent shake behavior on both platforms from one dependency.\n\n### Which platforms are supported by the Shake plugin?\n\nThe plugin is available on Android and iOS. On the Web, all methods reject as unimplemented, since browsers do not provide a comparable shake detection API.\n\n### Does shake detection drain the battery?\n\nNo, the plugin is designed to be battery-friendly. The motion sensor is only active between `startWatching(...)` and `stopWatching()`, so no sensor data is processed while you are not watching for shakes. Remember to call `stopWatching()` and `removeAllListeners()` when you no longer need shake detection.\n\n### How can I control how strong a shake must be?\n\nPass the `sensitivity` option to `startWatching(...)`. Use `light` to detect gentle shakes, `medium` (the default) for moderate shakes, or `hard` to only detect strong shakes. See [Sensitivity Levels](#sensitivity-levels) for details.\n\n### Do I need any permissions to detect shake gestures?\n\nNo, the plugin does not require any additional permissions or privacy descriptions on Android or iOS. You can install it and start watching for shake gestures right away.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.\n\n## Related Plugins\n\n- [Accelerometer](https://capawesome.io/docs/sdks/capacitor/accelerometer/): Capture the acceleration force along the x, y, and z axes.\n- [Gyroscope](https://capawesome.io/docs/sdks/capacitor/gyroscope/): Read the device's gyroscope sensor.\n- [Haptics](https://capawesome.io/docs/sdks/capacitor/haptics/): Provide haptic feedback such as impacts, notifications, and vibrations.\n\n## Newsletter\n\nStay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/shake/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/shake/LICENSE).\n","readmeFilename":"README.md"}