Files
hapi/docs/privacy.md
T
weishu c62cea9be8 docs: privacy policy as a VitePress page, replacing the static HTML
Markdown under docs/ renders through the existing docs pipeline
(deployed at /docs/privacy.html) and stays easy to maintain; the
hand-written website/public/privacy.html is gone. Footer gains a
Privacy Policy link. Content unchanged: self-hosted architecture, zero
developer-side collection, FCM transit on Android vs E2E envelopes on
iOS, camera/microphone usage, deletion, contact.
2026-08-19 20:50:10 +08:00

3.4 KiB

title, aside
title aside
Privacy Policy false

Privacy Policy

Effective date: August 19, 2026 · Applies to the HAPI mobile companion apps (Android and iOS) and the self-hosted HAPI hub.

::: tip The short version HAPI is self-hosted software. The apps talk only to the hub server you run. We — the HAPI developers — operate no servers that receive your conversations, your code, or your personal data. The apps contain no analytics, no advertising, and no tracking SDKs, and there is no account with us to create. :::

What the app stores on your device

  • The address of your hub and the access credentials you pair with (kept in the app's private storage).
  • App preferences (theme, language, notification choices).
  • Cached session content fetched from your hub, so the app works offline.

Uninstalling the app removes all of this from the device. Your sessions themselves live on your own hub server, under your control.

Where your data travels

Session content, files, and commands move directly between the app and your hub over the connection you configure. No copy is sent to us or to any third party by the app itself.

Push notifications

Android: notifications are delivered through Google's Firebase Cloud Messaging (FCM). Your hub sends the notification (session title, status text) to FCM, which routes it to your device; Google processes this traffic per its own privacy policy. The FCM device token is stored only by your hub. Builds compiled without a Firebase configuration send nothing to Google and simply have no push.

iOS: notifications are end-to-end encrypted. Your hub encrypts the content with a key that exists only on your device and your hub; Apple's push service — and the optional HAPI relay, if you use it instead of your own APNs credentials — carry ciphertext and routing metadata only, and cannot read the notification. Self-hosters can bypass the relay entirely with their own Apple developer credentials.

Camera

Used only to scan the pairing QR code, processed on the device. No images are stored or transmitted, and pairing works without the camera via manual entry.

Microphone

Used only for voice dictation in the message composer, and only while you hold the dictation button. Speech recognition is performed by your device's system speech service (for example, the platform speech recognizer), which may process audio according to its provider's policy. HAPI does not record, store, or transmit the audio itself; only the resulting text is placed in the composer.

What we collect

Nothing. The apps have no telemetry, crash reporting, analytics, or advertising SDKs. If you install from an app store, the store operator (Google or Apple) may collect install and crash statistics under its own policies, independently of us.

Data deletion

Unpair a hub or uninstall the app to remove everything held on the device. Data on your hub is yours to delete at any time — it is your server.

Children

HAPI is a developer tool and is not directed at children under 13.

Open source

The complete source code of the apps and the hub is available at github.com/tiann/hapi — the claims above can be verified in the code.

Changes & contact

If this policy changes, the updated version will be published at this address with a new effective date. Questions and concerns: open an issue on GitHub or email twsxtd@gmail.com.