revenuecat
Comprehensive assistance with RevenueCat in-app subscriptions and purchases
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Comprehensive assistance with RevenueCat in-app subscriptions and purchases
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Anicca earn skill (GATE-0). The automaton loop calls run.sh each wake to discover and execute an earn (x402 / 0xwork / litcoin / nookplot), then VERIFIES it on-chain (tx receipt 0x1 + USDC before/after delta) and appends one line to state/earn-ledger.jsonl. One profitable wake (net>0 AND status 0x1) is the real launch gate. Use when wiring earn into the agent loop, recording an earn outcome, or verifying a profitable wake.
Universal AI-powered web scraper for any platform. Scrape data from Instagram, Facebook, TikTok, YouTube, Google Maps, Google Search, Google Trends, Booking.com, and TripAdvisor. Use for lead generation, brand monitoring, competitor analysis, influencer discovery, trend research, content analytics, audience analysis, or any data extraction task.
Build and deploy production apps using AppFactory's 7 pipelines (websites, mobile, dApps, AI agents, plugins, mini apps, bots). One prompt → live URL.
iOS Simulator automation using AXe CLI for touch gestures, text input, hardware buttons, screenshots, video recording, and accessibility inspection. Use when automating iOS Simulator interactions, writing UI tests, capturing screenshots/video, or inspecting accessibility elements. Triggers on iOS Simulator automation, AXe CLI usage, simulator tap/swipe/gesture commands, or accessibility testing tasks.
Deep competitive analysis for iOS/macOS apps including feature comparison, pricing analysis, strengths/weaknesses, market positioning, and differentiation opportunities. Use when user asks for competitive analysis, competitor research, feature comparison, market positioning, or wants to understand competition in detail.
Configure notification integrations (Telegram, Discord, Slack) via natural language
| name | revenuecat |
| description | Comprehensive assistance with RevenueCat in-app subscriptions and purchases |
Expert assistance for implementing in-app subscriptions and purchases using RevenueCat across iOS, Android, Flutter, React Native, and web platforms.
This skill should be triggered when:
Swift (iOS)
import RevenueCat
Purchases.logLevel = .debug
Purchases.configure(withAPIKey: "your_public_api_key", appUserID: "user_123")
Kotlin (Android)
Purchases.logLevel = LogLevel.DEBUG
Purchases.configure(PurchasesConfiguration.Builder(this, "your_public_api_key").build())
Flutter
await Purchases.setLogLevel(LogLevel.debug);
PurchasesConfiguration configuration = PurchasesConfiguration("your_public_api_key");
await Purchases.configure(configuration);
React Native
Purchases.setLogLevel(Purchases.LOG_LEVEL.DEBUG);
Purchases.configure({ apiKey: "your_public_api_key" });
Swift
let customerInfo = try await Purchases.shared.customerInfo()
if customerInfo.entitlements["pro"]?.isActive == true {
// User has premium access
}
Kotlin
Purchases.sharedInstance.getCustomerInfoWith(
onSuccess = { customerInfo ->
if (customerInfo.entitlements["pro"]?.isActive == true) {
// User has premium access
}
}
)
React Native
const customerInfo = await Purchases.getCustomerInfo();
if (customerInfo.entitlements.active["pro"] !== undefined) {
// User has premium access
}
Swift
Purchases.shared.getOfferings { (offerings, error) in
if let packages = offerings?.current?.availablePackages {
self.display(packages)
}
}
Kotlin
Purchases.sharedInstance.getOfferingsWith({ error -> }) { offerings ->
offerings.current?.availablePackages?.let { packages ->
// Display packages
}
}
Swift
Purchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) in
if customerInfo.entitlements["pro"]?.isActive == true {
// Unlock premium content
}
}
Kotlin
Purchases.sharedInstance.purchase(
packageToPurchase = aPackage,
onError = { error, userCancelled -> },
onSuccess = { storeTransaction, customerInfo ->
if (customerInfo.entitlements["pro"]?.isActive == true) {
// Unlock premium content
}
}
)
Swift
Purchases.shared.restorePurchases { customerInfo, error in
// Check customerInfo to see if entitlement is now active
}
Kotlin
Purchases.sharedInstance.restorePurchases(
onError = { error -> },
onSuccess = { customerInfo ->
// Check customerInfo to see if entitlement is now active
}
)
curl --request GET \
--url https://api.revenuecat.com/v1/subscribers/app_user_id \
--header 'Authorization: Bearer PUBLIC_API_KEY'
A level of access, features, or content that a user is "entitled" to. Most apps use a single entitlement (e.g., "pro"). Created in the RevenueCat dashboard and linked to products. When a product is purchased, its associated entitlements become active.
The set of products available to a user. Configured remotely in the dashboard, allowing you to change available products without app updates. Access via offerings.current for the default offering.
Containers for products within an offering. Include convenience accessors like .monthly, .annual, .lifetime. Each package contains a storeProduct with pricing details.
The central object containing all subscription and purchase data for a user. Retrieved via getCustomerInfo() or returned after purchases. Contains the entitlements dictionary for access checks.
Unique identifier for each user. Can be provided during configuration or auto-generated as an anonymous ID. Used to sync purchases across devices.
This skill includes comprehensive documentation in references/:
For detailed implementation patterns beyond the quick reference, consult the official documentation at https://www.revenuecat.com/docs/
purchase(package:)// Show paywall only if user doesn't have active subscription
if customerInfo.entitlements["pro"]?.isActive != true {
showPaywall()
}
if user.isPaidDownload {
packages = offerings?.offering(identifier: "paid_download_offer")?.availablePackages
} else {
packages = offerings?.current?.availablePackages
}
Purchases.logLevel = .debug)restorePurchases from user interaction (like a button tap)Organized documentation extracted from official sources with detailed explanations and code examples.
Add helper scripts here for common automation tasks.
Add templates, boilerplate, or example projects here.