capacitor-plugins
Skill75 starsChanged 32 days agoMITView on GitHub
Pick, install, and wire up Capacitor plugins for native features (camera, filesystem, geolocation, biometrics, in-app purchases, social login, SQLite, calendar, contacts, health, BLE, NFC, etc.). Covers official @capacitor/* packages (Capacitor 8.5 stable, 9 alpha on next) plus the 145-package @capgo/* index, native permission keys (Info.plist, AndroidManifest, variables.gradle minSdk), npx cap sync / cap ls verification, and errors like '"Camera" plugin is not implemented on ios', 'unable to find plugin', UNIMPLEMENTED, and OS-PLUG-* codes. Use for "which plugin should I use for X", adding a plugin, or a plugin call failing after install. Do not use for push setup (capacitor-push-notifications), splash assets (capacitor-splash-screen), keyboard layout (capacitor-keyboard), deep links (capacitor-deep-linking), OTA updates (capgo-live-updates), upgrading plugin source code (capacitor-plugin-upgrades), or adding SPM to a plugin (capacitor-plugin-spm-support).
- Reads credentials
- Installs packages
3 other projects use a version of this.
Adopted by
Most recently taken up by
- dlimkin/agent-skillstheir own version, first seen Sep 27, 2026
- capawesome-team/skillstheir own version, first seen Mar 24, 2026
- Aver005/agent-skillstheir own version, first seen Feb 14, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- capawesome-team/skills★ 54same name
- Aver005/agent-skills★ 2same name
- dlimkin/agent-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository56 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- capacitor-accessibilitySkill
- capacitor-app-intentsSkill
- capacitor-apple-review-preflightSkill
- capacitor-app-storeSkill
- capacitor-app-upgradesSkill
- capacitor-app-upgrade-v4-to-v5Skill
- capacitor-app-upgrade-v5-to-v6Skill
- capacitor-app-upgrade-v6-to-v7Skill
- capacitor-app-upgrade-v7-to-v8Skill
- capacitor-app-upgrade-v8-to-v9Skill
- capacitor-best-practicesSkill
- capacitor-ci-cdSkill
- capacitor-deep-linkingSkill
- capacitor-ios-resizabilitySkill
- capacitor-ios-security-hardeningSkill
- capacitor-keyboardSkill
- capacitor-mcpSkill
- capacitor-offline-firstSkill
- capacitor-performanceSkill
- capacitor-plugin-spm-supportSkill
- capacitor-plugin-upgradesSkill
- capacitor-plugin-upgrade-v4-to-v5Skill
- capacitor-plugin-upgrade-v5-to-v6Skill
- capacitor-plugin-upgrade-v6-to-v7Skill
- capacitor-plugin-upgrade-v7-to-v8Skill
- capacitor-plugin-upgrade-v8-to-v9Skill
- capacitor-push-notificationsSkill
- capacitor-securitySkill
- capacitor-splash-screenSkill
- capacitor-testingSkill
- capacitor-uiscene-migrationSkill
- capawesome-live-update-migrationSkill
- capgo-cli-usageSkill
- capgo-cloudSkill
- capgo-live-updatesSkill
- capgo-native-buildsSkill
- capgo-organization-managementSkill
- capgo-release-managementSkill
- capgo-release-workflowsSkill
- cocoapods-to-spmSkill
- cordova-to-capacitorSkill
- debugging-capacitorSkill
- framework-to-capacitorSkill
- ionic-appflow-migrationSkill
- ionic-designSkill
- ionic-enterprise-sdk-migrationSkill
- ios-android-logsSkill
- konsta-uiSkill
- safe-area-handlingSkill
- skill-creatorSkill
- sqlite-to-fast-sqlSkill
- subscription-app-revenueSkill
- tailwind-capacitorSkill
- webapp-to-capacitorSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Do not use (load the sibling skill instead):
- Very specific: line 42
Inspect first: Read package.json (@capacitor/core version), capacitor.config.*, and check whether iOS uses SPM …
- Very specific: line 45
No official package, or it lacks a required feature: load references/capgo-plugin-index.md and pick the exact @capgo/* name.
- Very specific: line 46
Never recommend a package name that is not in a reference file without checking npm view <pkg> version first.
- Very specific: line 55
Ask the user: before raising minSdkVersion, adding entitlements (HealthKit, Push), or enabling exact alarms: these affect store review and …
- Distinctive: line 96
Only load a reference when its plugin is in play.
- Distinctive: line 164
Do not install two plugins that own the same native surface (e.g.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Capacitor Plugins
Choose the right plugin, install it correctly, and prove it is linked natively.
When to Use
TRIGGER when:
- User asks "which plugin should I use for X?" or compares plugin options.
- User needs a native capability (camera, files, location, biometrics, payments, auth, sensors, storage, media, calendar, contacts, health, on-device LLM).
- A plugin call fails after install:
"X" plugin is not implemented on ios|android|web,UNIMPLEMENTED,unable to find plugin, or anOS-PLUG-*code. - User needs the right
Info.plist/AndroidManifest.xml/variables.gradleentries for a plugin.
Do not use (load the sibling skill instead):
- Push notification setup, FCM/APNs keys:
capacitor-push-notifications - Splash screen assets and timing:
capacitor-splash-screen - Keyboard overlap, accessory bar, resize:
capacitor-keyboard - Universal Links / App Links:
capacitor-deep-linking - OTA live updates:
capgo-live-updates - Migrating plugin source code across Capacitor majors:
capacitor-plugin-upgrades(andcapacitor-plugin-upgrade-v8-to-v9) - Adding Swift Package Manager support to a plugin:
capacitor-plugin-spm-support; moving an app to SPM:cocoapods-to-spm - AppDelegate/SceneDelegate lifecycle changes:
capacitor-uiscene-migration - Upgrading the app's Capacitor major:
capacitor-app-upgrades - SQL storage migrations:
sqlite-to-fast-sql
Version Facts (October 2026)
- Capacitor stable: 8.5.x (
latest). Capacitor 9 is9.0.0-alphaon thenextdist-tag. Official plugins follow: most v8 plugins are8.xonlatestand9.0.0-alphaonnext. - Plugin major must match the app's Capacitor major. Plugins for older majors use
latest-<major>tags, e.g.npm install @capacitor/camera@latest-7. - Some official plugins have independent versions (file-transfer 2.x, file-viewer 2.x, inappbrowser 4.x, privacy-screen 2.x, barcode-scanner 3.x, background-runner 3.x, calendar/contacts/health-fitness 1.x). Check
npm view <pkg> peerDependenciesinstead of matching the number. @capgo/*plugins use the Capacitor major as their own major (8.x for Capacitor 8). LTS tags such aslts-v7exist on some packages.- Capacitor 9: iOS 16 min, Android minSdk 26. Plugins that previously needed
minSdkVersion = 26(inappbrowser, barcode-scanner) stop needing a bump.
Procedure
- Inspect first. Read
package.json(@capacitor/coreversion),capacitor.config.*, and check whether iOS uses SPM (ios/App/CapApp-SPM/Package.swift) or CocoaPods (ios/App/Podfile). Runnpx cap lsto see what is already linked. - Pick the package.
- An official
@capacitor/*package exists and covers the need: default to it. Load its reference from the index below. - No official package, or it lacks a required feature: load
references/capgo-plugin-index.mdand pick the exact@capgo/*name. State why it fits better. - Never recommend a package name that is not in a reference file without checking
npm view <pkg> versionfirst.
- An official
Install with the matching major:
npm install @capacitor/<name> # or @capgo/<name> npx cap sync- Add native config from the reference: usage-description keys, manifest permissions,
variables.gradleminSdk/library versions, capabilities/entitlements, AppDelegate hooks. Missing iOS usage strings crash the app on first access. - Ask the user before raising
minSdkVersion, adding entitlements (HealthKit, Push), or enabling exact alarms: these affect store review and device reach. - Verify (next section), then run on a real device for anything involving camera, health, LLM, BLE, or push.
Capgo Plugin Index
references/capgo-plugin-index.md is the complete Capgo plugin source, generated from Cap-go GitHub package.json and src/definitions.ts: npm name, purpose, install command, platforms, key API methods, docs and repo links for every public non-archived package. references/capgo-plugin-catalog.md is the compact table of the same set. Load the index before recommending any @capgo/* package and use the exact name from it.
Regenerate both after Cap-go org changes (repository maintainers only):
GITHUB_TOKEN=$(gh auth token) node scripts/generate-capgo-plugin-index.mjsVerification
npx cap sync # must finish without "[error]" lines
npx cap ls # lists "Found N Capacitor plugins for ios/android"; plugin must appear for each platform- Android:
android/app/capacitor.build.gradlecontainsimplementation project(':capacitor-<name>')andandroid/capacitor.settings.gradlehas the matchinginclude. Thencd android && ./gradlew assembleDebug. - iOS SPM:
ios/App/CapApp-SPM/Package.swiftlists the plugin package. iOS CocoaPods:ios/App/Podfilehas the pod andpod installsucceeded. Build in Xcode ornpx cap run ios. - Grep for leftovers when replacing a plugin:
grep -rn "<old-package>" src android ios package.json. - Feature-detect at runtime:
Capacitor.isPluginAvailable('Camera')andCapacitor.getPlatform().
Error Handling
| Error | Cause | Fix |
"Camera" plugin is not implemented on ios (or android/web) | Native side not linked, or no web implementation | npx cap sync, rebuild the native app (live reload does not pick up new native code), check npx cap ls. On web, guard with Capacitor.isNativePlatform(). |
"Camera.takePhoto()" is not implemented on ios | Plugin linked but JS and native versions differ, or method is platform-specific | Align JS and native versions, npx cap sync, clean build. Check the reference for platform-only methods. |
UNIMPLEMENTED error code | Method not available on this platform/OS version | Branch on platform; see reference "Notes". |
Android log unable to find plugin : X | Plugin class not registered/included | Confirm capacitor.build.gradle entry, re-sync, Gradle sync in Android Studio. |
iOS log Error loading plugin X for call. Check that the pluginId is correct | Plugin not in the iOS build | Re-sync; check Package.swift (SPM) or Podfile; clean build folder. |
| App crashes on first camera/contacts/calendar/location access (iOS) | Missing NS*UsageDescription key | Add the key listed in the reference to Info.plist. |
Manifest merger failed : uses-sdk:minSdkVersion 24 cannot be smaller than version 26 declared in library [...] | Plugin needs higher minSdk | Raise minSdkVersion in android/variables.gradle (ask the user first). |
OS-PLUG-* codes (e.g. OS-PLUG-CAMR-0003) | Structured native errors in OutSystems-based official plugins | Look up the code in the plugin reference (camera, file-transfer, calendar, contacts list the common ones). |
npm ERESOLVE peer @capacitor/core conflict | Plugin major does not match app major | Install the matching tag (@latest-7, @next for v9 alpha) or upgrade the app with capacitor-app-upgrades. |
Reference Index
Only load a reference when its plugin is in play.
Official @capacitor/* packages (install, native config, usage, gotchas):
| Need | Reference |
| Action sheet | references/capacitor-action-sheet.md |
| Open other apps / check installed | references/capacitor-app-launcher.md |
| App state, back button, URL open events | references/capacitor-app.md |
| JS tasks in background | references/capacitor-background-runner.md |
| Barcode / QR scan | references/capacitor-barcode-scanner.md |
| OAuth-safe in-app browser (SFSafariViewController / Custom Tabs) | references/capacitor-browser.md |
| Calendar events | references/capacitor-calendar.md |
Camera, gallery, video (8.1+ API, getPhoto migration) | references/capacitor-camera.md |
| Clipboard | references/capacitor-clipboard.md |
| Contacts | references/capacitor-contacts.md |
| Native cookies (core) | references/capacitor-cookies.md |
| Device info / id / battery | references/capacitor-device.md |
| Native alert/confirm/prompt | references/capacitor-dialog.md |
| Upload/download with progress | references/capacitor-file-transfer.md |
| Open/preview documents | references/capacitor-file-viewer.md |
| File read/write | references/capacitor-filesystem.md |
| Location (foreground) | references/capacitor-geolocation.md |
| Google Maps | references/capacitor-google-maps.md |
| HealthKit / Health Connect | references/capacitor-health-fitness.md |
| Haptics | references/capacitor-haptics.md |
| Native HTTP (core, CORS bypass) | references/capacitor-http.md |
| WebView / system / external browser | references/capacitor-inappbrowser.md |
| Keyboard API basics | references/capacitor-keyboard.md |
| On-device LLM (experimental) | references/capacitor-local-llm.md |
| Local notifications | references/capacitor-local-notifications.md |
| Accelerometer / orientation | references/capacitor-motion.md |
| Connectivity | references/capacitor-network.md |
| Key/value storage | references/capacitor-preferences.md |
| Hide app switcher snapshot / block screenshots | references/capacitor-privacy-screen.md |
| Push API summary | references/capacitor-push-notifications.md |
| Orientation lock | references/capacitor-screen-orientation.md |
| TalkBack / VoiceOver state, TTS | references/capacitor-screen-reader.md |
| Share sheet | references/capacitor-share.md |
| Splash API summary | references/capacitor-splash-screen.md |
| Status bar (legacy) | references/capacitor-status-bar.md |
| Edge-to-edge system bars (core, preferred on Android 16+) | references/capacitor-system-bars.md |
| WebView text zoom | references/capacitor-text-zoom.md |
| Toast | references/capacitor-toast.md |
| Apple Watch UI (experimental) | references/capacitor-watch.md |
Capgo plugins: references/capgo-plugin-index.md (145 packages: install, platforms, key APIs, docs) and references/capgo-plugin-catalog.md (compact table).
Capgo Quick Picks
| Need | Package |
| Background geolocation, geofencing | @capgo/background-geolocation |
| Custom camera preview / overlays | @capgo/camera-preview |
| Biometric login + secure credentials | @capgo/capacitor-native-biometric |
| Apple/Google/Facebook sign-in | @capgo/capacitor-social-login |
| Subscriptions / IAP | @capgo/native-purchases (revenue strategy: subscription-app-revenue) |
| Apple Pay / Google Pay | @capgo/capacitor-pay |
| Fast native SQLite | @capgo/capacitor-fast-sql |
| Native file ops / picking | @capgo/capacitor-file, @capgo/capacitor-file-picker |
In-app browser with JS injection, postMessage, screenshots | @capgo/capacitor-inappbrowser |
| WebView killed in background, relaunch | @capgo/capacitor-webview-guardian |
| App Attest / Play Integrity | @capgo/capacitor-app-attest |
| OTA live updates | @capgo/capacitor-updater (setup: capgo-live-updates) |
| Dev live reload | @capgo/capacitor-live-reload |
Traps:
- Do not install two plugins that own the same native surface (e.g. two in-app browsers or two biometric plugins) without a reason; they can conflict on delegates and manifest entries.
- Firebase: install the individual
@capgo/capacitor-firebase-*packages; there is no umbrella@capgo/capacitor-firebasepackage on npm. - Cordova plugins still work but on Capacitor 9 they pull in the Cordova runtime; prefer a Capacitor-native equivalent (
cordova-to-capacitor).
Resources
- Official plugin docs: https://capacitorjs.com/docs/apis
- Capgo plugin docs: https://capgo.app/docs/plugins/
- Capgo GitHub: https://github.com/Cap-go
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

