English
LimitPulse Privacy Policy
1. Scope and identity
This policy describes the Android and iPhone apps LimitPulse, published by YongTech. LimitPulse can create a separate Firebase-backed LimitPulse account using Google on Android or Apple on iPhone. OpenAI and Claude connections remain accounts the user already controls at those providers; LimitPulse does not create or administer those provider accounts.
2. Data handled by the app
LimitPulse account.
Android uses Google sign-in and iPhone uses Sign in with Apple through Firebase Authentication. Firebase assigns a user ID and retains the authentication record needed to keep the user signed in. The Google response on Android can include an email address, display name, and profile-photo URL. Apple sign-in on iPhone requests neither name nor email scope. The apps do not display or copy provider profile fields into local usage history. The LimitPulse backend verifies the Firebase ID token and uses only the user ID and sign-in provider after verification; it does not persist or log email, name, or photo claims.
A LimitPulse account is optional for OpenAI usage and public signals, but required for private Claude features. Every private request must contain both a Firebase App Check proof and a current Firebase ID token.
OpenAI authentication and account identifier.
Sign-in takes place in the system browser. LimitPulse never asks for or receives an OpenAI password. Device authorization results, access tokens, refresh tokens, ID tokens, and the ChatGPT account identifier are handled on the mobile device so the app can make read-only usage requests directly to OpenAI over HTTPS.
Android encrypts authentication material with AES-GCM using a key generated in Android Keystore. iPhone stores the complete authentication bundle in a device-only, non-syncing Keychain item. Authentication material is not sent to the LimitPulse public-signal service.
Claude authentication.
Claude connection starts from the app and opens an Anthropic-owned HTTPS page in the system browser. LimitPulse never asks for or receives an Anthropic password. The user returns a one-time authorization code to the app. The code is sent over HTTPS with Firebase App Check and the signed-in user's Firebase ID token to the LimitPulse backend, where the official Claude Code authorization flow exchanges it. The one-time code is not retained on the phone or written to service logs.
The resulting Claude OAuth session is stored in an access-restricted, per-user server directory selected by a secret HMAC of the Firebase user ID. It is used only to read the connected subscription's 5-hour and 7-day quota windows. Claude OAuth tokens are not returned to the Android or iPhone app. Disconnect Claude removes the server-side session and cached Claude quota snapshot.
Usage and local history.
The app receives quota, reset-time, plan, and Token Activity values from OpenAI and the two supported quota windows from the LimitPulse Claude usage service. It normalizes and stores the minimum values needed for current status and history in an app-private Room database on Android or SwiftData store on iPhone. Usage records contain no conversations, prompts, source code, profile photos, or email addresses.
OpenAI usage and local history are processed on the device and are not uploaded to the LimitPulse backend, Firebase Analytics, or a crash-reporting provider. The backend temporarily stores the latest Claude quota snapshot so connected apps can display it; it does not receive Claude prompts, conversations, or source code.
Firebase services.
When a release is configured for Firebase Cloud Messaging (FCM), Google/Firebase processes data required to deliver reset-verification signals. This may include a Firebase installation ID, app version, Firebase user agent, and messaging registration data. LimitPulse uses FCM only for the fixed public reset-signal topic.
FCM messages contain only a bounded public event type, public event identifier, public source category, and publication time. OpenAI tokens, cookies, account identifiers, usage, prompts, conversations, and source code are never put in an FCM message.
Firebase Analytics is enabled by default and can be turned off in Settings. LimitPulse records first opens, active use, successful account authentication, account sign-out or deletion, and bounded provider connection/disconnection labels. It does not set an Analytics user ID or send email, AI tokens, prompts, conversations, source code, or usage values in these events. Firebase processes an app-instance identifier, interaction and device metadata, and general location derived from a masked IP address under its own terms. Advertising-ID collection and ad-personalization signals are disabled; iPhone also disables IDFV collection and uses the AnalyticsCore product without AdSupport. LimitPulse does not use advertising, Crashlytics, Firebase Performance Monitoring, or BigQuery delivery-metrics export.
Public reset-signal service.
The LimitPulse public-signal service reads public reset announcements, classifies explicit completed-reset evidence, deduplicates public events, and sends the fixed FCM topic signal. It does not expose a client upload endpoint and does not receive OpenAI account data from the app. The same backend separately exposes the App Check-and-account-protected Claude and account-deletion endpoints described above.
3. Purposes
Data is used only to:
- create, authenticate, sign out, and delete the user's LimitPulse account;
- connect to OpenAI or Claude at the user's request;
- retrieve and display read-only OpenAI and Claude usage information;
- retain local usage and reset history;
- schedule account verification near expected resets;
- prompt the device to verify the user's actual account after a public signal; and
- show safe local status and failure information; and
- measure installs, active use, and bounded connection outcomes when Analytics is enabled.
LimitPulse does not sell personal or sensitive data, use it for advertising, build advertising profiles, run Codex tasks, consume reset credits, or read or modify conversations.
4. Storage, retention, and backup
Encrypted authentication material and local history stay in app-private mobile storage. Android uses Android Keystore plus an encrypted authentication file and Room; iPhone uses a device-only Keychain item and SwiftData. Local history is excluded from Android backup and iPhone backup. Authentication material remains until disconnect, unrecoverable storage failure, app-data clear, or uninstall. Local history follows the in-app retention behavior and can be deleted at any time. Per-user Claude credentials and the latest bounded Claude snapshot remain on the LimitPulse server until the user disconnects Claude or deletes the LimitPulse account.
Google/Firebase applies its own retention rules to authentication, Analytics, installation, and messaging data. Turning off Analytics stops future app Analytics collection. Disconnect OpenAI disables FCM auto-initialization, requests topic unsubscription and FCM unregistration, and requests deletion of the Firebase installation ID.
5. User controls and deletion
- Sign out of LimitPulse removes the Firebase session from this device. Server-side Claude data remains so it is available after signing back into the same account.
- Delete LimitPulse account deletes the Firebase Auth user and that user's server-side Claude credentials and usage snapshot. Android asks for fresh Google authorization. On iPhone, the app asks for fresh Apple authorization and revokes the Apple authorization token before deletion.
- Disconnect OpenAI deletes the encrypted Android authentication file and Keystore key or the iPhone Keychain item, clears transient Cloudflare state, disables FCM auto-initialization, requests FCM cleanup, and cancels scheduled account checks.
- Disconnect Claude removes the Claude OAuth session and cached Claude quota snapshot from the LimitPulse backend. It does not disconnect OpenAI or delete the user's Anthropic account.
- Delete local history deletes usage snapshots, quota windows, Token Activity history, reset evidence, sync state, and stored public signals from the Room database on Android or SwiftData store on iPhone.
These controls delete the corresponding LimitPulse data. They do not delete the user's Google, Apple, OpenAI, or Anthropic account. Provider-account deletion must be performed through the applicable provider.
An external LimitPulse account-deletion request can be started at the account deletion page. The page explains what is deleted, what remains local, and how to request deletion without sending a password, one-time code, or token.
6. Permissions
- Internet: required for OpenAI, Claude, the LimitPulse backend, and Firebase messaging.
- Notifications: requested only from a user action so verified reset alerts can be shown.
On Android, other network, wake, boot, and foreground-service permissions are contributed by FCM and WorkManager for delivery and scheduled work. On iPhone, background tasks and remote notifications remain controlled by iOS. Neither app requests contacts, location, camera, microphone, phone, SMS, advertising ID, or unrestricted storage access.
7. Security and limitations
Network traffic uses HTTPS and cleartext transport exceptions are not enabled.
Release builds contain no network body logger or developer-operated crash reporter.
Firebase Analytics events are restricted to the bounded fields described above and can
be disabled in Settings. WebView is restricted to a Cloudflare
fallback at the exact
https://chatgpt.com origin and WebView debugging is disabled.
OpenAI usage endpoints and the Anthropic OAuth usage contract used by LimitPulse may change. The app preserves the last successful value and displays an explicit state when a request fails. Android and iOS may delay background work. Force-stopping on Android or force-quitting on iPhone can block background checks and alerts until the user opens the app again.
8. International processing
OpenAI, Anthropic, the LimitPulse backend, and Google/Firebase may process data in countries other than the user's country under their respective terms and privacy policies. Applicable jurisdiction-specific rights and disclosures may vary by launch country.
9. Children
LimitPulse is not designed or directed to children. Its intended audience is adults who already control an eligible OpenAI or Anthropic account.
10. Changes and contact
Material changes will be reflected by updating this policy and its effective date.
Developer/operator: YongTech
Privacy contact: pyhppyyhh0307@daum.net