Integrates the Gleap customer feedback SDK into projects. Detects the platform (JavaScript, iOS, Android, React Native, Flutter, Ionic Capacitor, Cordova, FlutterFlow) and guides through installation, initialization, permissions, and common API usage like user identification and event tracking. Use when adding Gleap, setting up feedback SDK, or integrating Gleap SDK.
Guides users through integrating the Gleap SDK into their project. Supports JavaScript, iOS, Android, React Native, Flutter, Ionic/Capacitor, Cordova, and FlutterFlow.
Detect the user's platform before proceeding. If the user explicitly states their platform, skip detection.
Check in this order (first match wins):
pubspec.yaml exists?
flutterflow references or user mentions FlutterFlow -> FlutterFlow (platform-flutterflow.md)platform-flutter.md)package.json exists? Read it and check dependencies + devDependencies:
react-native present -> React Native (platform-react-native.md)@capacitor/core or present -> ()capacitor-coreplatform-ionic-capacitor.mdcordova present, or config.xml exists with <widget> -> Cordova (platform-cordova.md)@angular/core present -> JavaScript (Angular)react present (without react-native) -> JavaScript (React)vue present -> JavaScript (Vue)next present -> JavaScript (Next.js)nuxt present -> JavaScript (Nuxt)platform-javascript.md for all JavaScript variants*.xcodeproj, *.xcworkspace, or Podfile exists? -> iOS (platform-ios.md)
build.gradle, build.gradle.kts, or app/build.gradle exists? -> Android (platform-android.md)
index.html exists (no package.json)? -> JavaScript CDN approach (platform-javascript.md)
Server-side web framework detected? These all use the JavaScript SDK on the client side (platform-javascript.md):
composer.json exists (PHP / Laravel) — use CDN or npm depending on whether a JS build pipeline existsGemfile with rails (Ruby on Rails) — use CDN in layouts, or npm if Webpacker/esbuild/importmap is presentrequirements.txt / pyproject.toml with django or flask (Python) — use CDN in base templates*.cshtml / *.csproj files (.NET / ASP.NET) — use CDN in layout viewspom.xml / build.gradle with Spring Boot (Java) — use CDN in Thymeleaf templatespackage.json with a frontend framework, step 2 already covers this.Nothing detected -> Ask the user which platform they are targeting.
Use Glob to scan for key files:
pubspec.yamlpackage.json**/*.xcodeproj**/*.xcworkspacePodfilebuild.gradlebuild.gradle.ktsapp/build.gradleconfig.xmlindex.htmlcomposer.jsonGemfilerequirements.txtpyproject.tomlIf package.json is found, use Read to inspect its dependencies and devDependencies keys.
Before asking the user for their API key, check these locations in order:
.env file in the project root — look for GLEAP_API_KEY=...GLEAP_API_KEY is set via echo $GLEAP_API_KEYWhen a key is found or provided, offer to save it to the project's .env file (creating it if needed, and adding .env to .gitignore if not already there) so it's available for future use.
Follow these steps in order:
scripts/get-latest-versions.sh from this skill's directory. Use the returned versions in all install commands instead of hardcoded version numbers.platform-{name}.md file from this skill's directory.After setup, if the user asks about using the Gleap API, refer to the "Common API Usage" section in the relevant platform file. The most common tasks are:
Re-read the platform file's API section for the correct method signatures, as they differ between platforms.
initialize() must be called exactly once in the application lifecyclepod install fails: Run pod repo update first, then retryminSdkVersion is at least 21tools:overrideLibrary="io.gleap.gleap_sdk" to AndroidManifest.xmlsdk.gleap.ioGleap.getInstance().softReInitialize() after reloadandroid:hardwareAccelerated="false" at application level