
capacitor-plugins
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).
- Installs
- 1.6K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-plugins- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads capacitor-plugins automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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.mjs
Verification
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
FAQ
What does the capacitor-plugins skill do?
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).
How do I install capacitor-plugins?
Run npx skills add https://github.com/cap-go/capgo-skills --skill capacitor-plugins in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/capacitor-plugins/ (personal) or .claude/skills/capacitor-plugins/ (project).
Which AI agents can use capacitor-plugins?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is capacitor-plugins safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains capacitor-plugins?
It is published by cap-go in cap-go/capgo-skills. It has 1,588 recorded installs.
More from cap-go/capgo-skills
capacitor-best-practices
cap-go/capgo-skills
Review and set up Capacitor apps against current best practices (Capacitor 8.5 stable, 9 alpha via @next). Use for a Capacitor codebase review, capacitor.config.ts audit, new project setup, aligning @capacitor/core/cli/ios/android and plugin majors, plugin patterns (availability checks, checkPermissions/requestPermissions, error code handling, web fallbacks), or release prep; or on " " plugin is not implemented on ios, Could not find the web assets directory, platform has not been added yet, a dev server.url shipped to production, lost edits in android/app/src/main/assets/public, SPM vs CocoaPods, or AppDelegate/UIScene drift. Do not use for security audits (capacitor-security), performance (capacitor-performance), tests (capacitor-testing), crashes (debugging-capacitor), major upgrades (capacitor-app-upgrades), SPM migration (cocoapods-to-spm), UIScene adoption (capacitor-uiscene-migration), or live updates (capgo-live-updates).
ionic-design
cap-go/capgo-skills
Builds and reviews Ionic Framework UI in Capacitor apps (Ionic 9 current, Ionic 8 still common) - page structure (ion-header/ion-content/ion-footer), lists, modern form syntax (label/labelPlacement on ion-input/ion-select), sheet modals, tabs + ion-router-outlet, CSS variable theming, dark palettes (palettes/dark.system.css, .ion-palette-dark), iOS vs MD mode, and Ionic 8 - 9 breaking changes (React Router 6, Vue Router 5, Angular 18-22 zoneless, removed ion-picker-legacy, boolean autocorrect, npx @ionic/migrate). Use when writing Ionic components, theming an Ionic app, fixing platform-mode styling, or upgrading @ionic/react, @ionic/vue, @ionic/angular. Do not use for Konsta UI (konsta-ui), Tailwind setup (tailwind-capacitor), raw safe-area CSS (safe-area-handling), keyboard resize (capacitor-keyboard), or Ionic Appflow/Enterprise migrations (ionic-appflow-migration, ionic-enterprise-sdk-migration).
debugging-capacitor
cap-go/capgo-skills
Diagnoses and fixes runtime bugs in Capacitor iOS/Android apps - white/blank screen on launch, startup crashes, "X" plugin is not implemented on ios/android, net::ERRCLEARTEXTNOTPERMITTED, App Transport Security blocks, CORS on capacitor://localhost, permission denials, live reload not connecting, and Capacitor 8.5+ UIScene regressions (appUrlOpen, universal links, pause/resume silent because AppDelegate callbacks stopped). Covers Safari Web Inspector, chrome://inspect, Xcode/LLDB, Android Studio, npx cap run --url (Capacitor 9) vs -l --host (8), xcrun simctl openurlprivacypush, xcrun devicectl device process launchopenURL, xctrace. Do not use for only reading device logs (ios-android-logs), the UIScene migration itself (capacitor-uiscene-migration), deep-link setup (capacitor-deep-linking), speed (capacitor-performance), crash SDKs (capacitor-native-observability), tests (capacitor-testing), or upgrades/build errors (capacitor-app-upgrades, cocoapods-to-spm).
capacitor-testing
cap-go/capgo-skills
Testing guide for Capacitor apps and plugins. Covers web-layer unit and component tests with Vitest and mocked Capacitor plugins (vi.mock('@capacitor/core'), registerPlugin), Playwright for the web build, Appium E2E with NATIVEAPP / WEBVIEW context switching, native plugin unit tests with Swift Testing vs XCTest (what can migrate, CAPPluginCall patterns, xcodebuild test on a simulator) and Android JUnit, plus an agent-driven verification loop on simulators and devices (build, install, launch, screenshot, UI hierarchy, tap, logs) with xcrun simctl, xcrun devicectl, adb, Xcode MCP device tools, and live reload via npx cap run --url (Capacitor 9) or -l --host --port (Capacitor 8). Use when adding tests, mocking plugins, "does it work on device", verifying a UI change on a simulator, migrating XCTest to Swift Testing, or setting up test CI. Do not use for crash log capture (ios-android-logs), WebView debugging sessions (debugging-capacitor), or build pipelines (capacitor
safe-area-handling
cap-go/capgo-skills
Fixes notch, Dynamic Island, home indicator, display cutout, and system bar overlap in Capacitor apps. Covers viewport-fit=cover + env(safe-area-inset-), the Capacitor 8 SystemBars core plugin (insetsHandling, injected --safe-area-inset- CSS variables for Android WebView < 140, removal of android.adjustMarginsForEdgeToEdge), Android 15/16 enforced edge-to-edge (overlaysWebView and backgroundColor of @capacitor/status-bar no longer work at targetSdk 36), iOS contentInset, and insets that change at runtime on rotation, iPad/foldable resizable windows. Use when headers sit under the status bar, tab bars hide behind the gesture bar, env() returns 0 on Android, or layout broke after upgrading to Capacitor 8 / targetSdk 35+. Do not use for keyboard overlap (capacitor-keyboard), Ionic/Konsta component theming (ionic-design, konsta-ui), Tailwind utility setup (tailwind-capacitor), or iOS multi-window/resizability adoption (capacitor-ios-resizability).
capacitor-deep-linking
cap-go/capgo-skills
Implements and debugs deep links in Capacitor apps - custom URL schemes, iOS Universal Links (apple-app-site-association, Associated Domains entitlement), Android App Links (assetlinks.json, autoVerify), and routing via @capacitor/app appUrlOpen + App.getLaunchUrl(). Covers the Capacitor 8.5+ UIScene change where AppDelegate application(:open:options:) and continue userActivity stop being called and custom handling must move to SceneDelegate, plus cold vs warm launch testing. Use when links open Safari/Chrome instead of the app, appUrlOpen never fires, the launch URL is lost on cold start, or OAuth redirects do not return to the app. Do not use for the full UIScene migration (capacitor-uiscene-migration), push notification taps (capacitor-push-notifications), or social login plugin setup (capacitor-plugins).
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.