capacitor-plugins
Original:🇺🇸 English
Translated
Guides the agent through installing, configuring, and using Capacitor plugins from four sources — official Capacitor plugins, Capawesome plugins, Capacitor Firebase plugins, and Capacitor MLKit plugins. Covers installation, platform-specific configuration (Android and iOS), and basic usage examples. Do not use for migrating Capacitor apps or plugins to a newer version, setting up Capacitor Live Updates, or non-Capacitor mobile frameworks.
2installs
Sourcecapawesome-team/skills
Added on
NPX Install
npx skill4agent add capawesome-team/skills capacitor-pluginsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Capacitor Plugins
Install, configure, and use Capacitor plugins from official and community sources.
Prerequisites
- Capacitor 6, 7, or 8 app.
- Node.js and npm installed.
- For iOS plugins: Xcode installed. CocoaPods or Swift Package Manager (SPM) for dependency management.
- For Android plugins: Android Studio installed.
Agent Behavior
- Guide step-by-step. Walk the user through the process one step at a time. Never present multiple unrelated questions at once.
- Auto-detect before asking. Check the project for platforms (,
android/), build tools (ios/,vite.config.ts,angular.json), framework, existing npm registry config, andwebpack.config.jsdependencies. Only ask the user when something cannot be detected.package.json - One decision at a time. When a step requires user input (e.g., encryption yes/no), ask that single question, wait for the answer, then continue to the next step.
- Present clear options. When asking a question, provide concrete choices (e.g., "Do you need SQLite encryption? (yes/no)") instead of open-ended questions.
Procedures
Step 1: Identify the Plugin
Match the user's request to a plugin from the index below. If the match is ambiguous, ask the user to clarify.
Step 2: Read the Reference File
Read the corresponding reference file from for the matched plugin.
references/Step 3: Analyze the Project
Auto-detect the following by reading project files — do not ask the user for information that can be inferred:
- Platforms: Check which directories exist (,
android/). These are the platforms to configure.ios/ - Build tool / framework: Check for ,
vite.config.ts,angular.json,webpack.config.js, etc.next.config.js - iOS dependency manager: Check if exists (CocoaPods) or if SPM is used.
ios/App/Podfile - Capacitor version: Read version from
@capacitor/core.package.json
Step 4: Set Up Prerequisites
If the plugin requires Capawesome Insiders (the reference file states ):
Capawesome Insiders: Yes- Check if the npm registry is already configured by running:
@capawesome-teamnpm config get @capawesome-team:registry - If the registry is not configured, tell the user this plugin requires a Capawesome Insiders license and guide them through the setup:
Ask the user for their license key if needed. Wait for confirmation before continuing.bash
npm config set @capawesome-team:registry https://npm.registry.capawesome.io npm config set //npm.registry.capawesome.io/:_authToken <YOUR_LICENSE_KEY> - If the registry is already configured, skip this and move on.
Step 5: Install the Plugin
Run the installation command from the reference file:
bash
npm install <package-name>
npx cap syncIf the reference file lists additional packages (e.g., ), include them.
@sqlite.org/sqlite-wasmStep 6: Apply Platform-Specific Configuration
For each platform detected in Step 3, apply the configuration from the reference file.
When the reference file offers variants or optional features for a platform (e.g., encryption vs. plain, bundled SQLite vs. default), handle them one at a time:
- Present the choice to the user with a clear question and options.
- Wait for the user's answer.
- Apply only the chosen configuration.
- Move on to the next platform or decision point.
Typical configuration includes:
- Android: Gradle variables in , permissions in
variables.gradle, meta-data entries, ProGuard rulesAndroidManifest.xml - iOS: entries, Podfile or SPM changes,
Info.plistmodificationsAppDelegate.swift
Skip platforms that don't exist in the project.
Step 7: Apply Web Configuration (if applicable)
If the reference file includes a Web configuration section and the project targets the web:
- Apply the configuration matching the detected build tool (Vite, Webpack, Angular CLI, etc.).
- If the build tool is not covered by the reference file, adapt the configuration to the detected build tool and inform the user.
Step 8: Add Usage Code
Ask the user if they want usage code added to the project. If yes:
- Add the usage code from the reference file.
- Adapt imports, method calls, and options to match the user's project structure and requirements.
Step 9: Sync the Project
bash
npx cap syncPlugin Index
Official Capacitor Plugins
| Plugin | Package | Reference |
|---|---|---|
| Action Sheet | | |
| App | | |
| App Launcher | | |
| Background Runner | | |
| Barcode Scanner | | |
| Browser | | |
| Camera | | |
| Clipboard | | |
| Cookies | | |
| Device | | |
| Dialog | | |
| File Transfer | | |
| File Viewer | | |
| Filesystem | | |
| Geolocation | | |
| Google Maps | | |
| Haptics | | |
| Http | | |
| InAppBrowser | | |
| Keyboard | | |
| Local Notifications | | |
| Motion | | |
| Network | | |
| Preferences | | |
| Privacy Screen | | |
| Push Notifications | | |
| Screen Orientation | | |
| Screen Reader | | |
| Share | | |
| Splash Screen | | |
| Status Bar | | |
| System Bars | | |
| Text Zoom | | |
| Toast | | |
| Watch | | |
Capawesome Plugins
| Plugin | Package | Reference |
|---|---|---|
| Accelerometer | | |
| Age Signals | | |
| Android Battery Optimization | | |
| Android Dark Mode Support | | |
| Android Edge-to-Edge Support | | |
| Android Foreground Service | | |
| App Review | | |
| App Shortcuts | | |
| App Update | | |
| Apple Sign In | | |
| Asset Manager | | |
| Audio Player | | |
| Audio Recorder | | |
| Background Task | | |
| Badge | | |
| Barometer | | |
| Biometrics | | |
| Bluetooth Low Energy | | |
| Cloudinary | | |
| Contacts | | |
| Datetime Picker | | |
| File Compressor | | |
| File Opener | | |
| File Picker | | |
| Geocoder | | |
| Google Sign In | | |
| libSQL | | |
| Live Update | | |
| Managed Configurations | | |
| Media Session | | |
| NFC | | |
| OAuth | | |
| Pedometer | | |
| Photo Editor | | |
| PostHog | | |
| Printer | | |
| Purchases | | |
| RealtimeKit | | |
| Screen Orientation | | |
| Screenshot | | |
| Secure Preferences | | |
| Share Target | | |
| Speech Recognition | | |
| Speech Synthesis | | |
| SQLite | | |
| Square Mobile Payments | | |
| Superwall | | |
| Torch | | |
| Wi-Fi | | |
| Zip | | |
Capacitor Firebase Plugins
| Plugin | Package | Reference |
|---|---|---|
| Analytics | | |
| App | | |
| App Check | | |
| Authentication | | |
| Crashlytics | | |
| Firestore | | |
| Functions | | |
| Messaging | | |
| Performance | | |
| Remote Config | | |
| Storage | | |
Capacitor MLKit Plugins
| Plugin | Package | Reference |
|---|---|---|
| Barcode Scanning | | |
| Face Detection | | |
| Face Mesh Detection | | |
| Selfie Segmentation | | |
| Subject Segmentation | | |
| Translation | | |
Error Handling
- Installation fails: Verify the package name is correct and the plugin version is compatible with the project's Capacitor version. Check version in
@capacitor/core.package.json - fails: Ensure all native dependencies are installed. On iOS with CocoaPods, run
npx cap sync. On Android, sync Gradle files.cd ios/App && pod install - Android build fails: Check that required Gradle variables are set in . Verify permissions are added to
variables.gradle.AndroidManifest.xml - iOS build fails: Check that required entries are present. Verify the deployment target meets the plugin's minimum requirement.
Info.plist - Plugin not found at runtime: Ensure was run after installation. For iOS, verify the dependency was installed (pod for CocoaPods, package for SPM). For Android, verify the Gradle sync completed.
npx cap sync - Permission denied at runtime: Check that permissions are declared in platform config files AND requested at runtime via /
checkPermissions()where applicable.requestPermissions()