✓ Compliance Document

Privacy Policy

Version 1.1Effective: January 1, 2025Last Updated: August 3, 2026

Summary: Server connection profiles are stored encrypted on your device. The optional QR pairing route relays connection traffic through KKCode to reach the local companion agent; use a direct private-network or self-hosted route if your policy requires it. Firebase Analytics and Firebase Crashlytics process anonymous crash statistics and usage analytics when telemetry is enabled.

01.Scope

This Privacy Policy applies to the iOS and Android versions of the KKCode mobile application (the "App"). The App is developed and maintained by individual developer junbaor (referred to as "we") and distributed through the App Store and Android app stores.

By using this App, you agree to the information practices described in this Privacy Policy.

02.Information We Collect

To provide core functionality and improve app quality, we collect the following anonymized information via third-party SDKs:

  • Crash Reports: Stack traces, device model, OS version, and app version at the time of a crash (collected via Firebase Crashlytics; cannot identify individuals).
  • Anonymous Usage Events: Page view counts, feature tap statistics, session duration, and other aggregate metrics (collected via Firebase Analytics with anonymization enabled).
  • Basic Device Info: Device type (phone/tablet), OS version, app version — used for compatibility analysis.

None of the above data contains any personally identifiable information (PII). Firebase Analytics anonymizes IP addresses by default.

03.Connection Routes and App Data

KKCode needs connection and session data to operate. OpenCode computation and repository files remain on the development machine you configure. The route you choose determines how traffic reaches that machine:

  • Direct LAN, Tailscale, or your own HTTPS proxy: traffic travels between your phone and your configured server.
  • QR pairing: the KKCode relay forwards connection traffic to the companion agent running on your development machine. The relay does not run OpenCode or create a workspace copy.

If a policy requires a route limited to infrastructure you control, use a private network, trusted LAN, or your own HTTPS proxy instead of QR pairing.

04.How We Use Information

We use the anonymous data we collect for the following purposes:

  • Crash Fixes: Identify and fix issues that cause the app to crash via Crashlytics.
  • Feature Improvement: Understand which features are used most to prioritize UX improvements.
  • Compatibility: Understand the devices and OS versions in use to ensure the app runs correctly on popular hardware.

We do not sell, rent, or share any data with third parties for commercial purposes.

05.Storage and Protection

Local storage: Your server connection profiles (address and credentials) are stored on your device. iOS uses the system Keychain for encrypted storage; Android uses Expo SecureStore (backed by Android Keystore). They are used only to connect to the server route you configure.

Connection routes: QR pairing uses the KKCode relay as a transport path to the local companion agent. For a route operated only inside your own infrastructure, choose a private VPN, trusted LAN, or self-hosted HTTPS proxy.

Third-party data processing: Anonymous data collected by Firebase Analytics and Crashlytics is processed and stored by Google LLC in their data centers, subject to Google's Privacy Policy and Data Processing Agreement.

06.Third-Party Services

This App integrates the following third-party services, each with their own independent privacy policy:

For the full list of third-party SDKs and their data practices, see the Third-Party SDKs page.

The optional QR connection route uses a KKCode relay to reach the companion agent on your development machine. It is a transport path: it does not run OpenCode or create a workspace copy. You may instead use a trusted LAN, private VPN, or your own HTTPS proxy.

07.Children's Privacy

This App is intended for users aged 16 and above, primarily developers with a technical background. We do not knowingly collect personal information from children under 16. If you believe we have inadvertently collected such information, please contact us using the details below and we will delete it immediately.

08.Your Rights

Because we only collect data in anonymized form, we cannot link any data to a specific individual and therefore cannot fulfill requests to delete or export a specific person's data.

You can manage your privacy in the following ways:

  • On iOS: Settings → Privacy & Security — control which system features the App can access.
  • On Android: Settings → App Permissions — revoke any permissions granted to the App.
  • Uninstalling the App will delete all locally stored credentials and preferences.

09.Policy Changes

We may update this Privacy Policy from time to time. Material changes will be communicated by:

  • Updating the "Last Updated" date at the top of this page
  • Noting privacy-related changes in the app's version release notes

We recommend checking this page periodically. Continued use of the App after changes take effect constitutes acceptance of the updated policy.

10.Contact Us

If you have any questions or comments about this Privacy Policy, please reach out:

KKCode Developer
Email: junbaor@gmail.com
Website: kkcode.app
We will reply within 7 business days of receiving your message.