Privacy notice

This notice describes data handling in the open-source Pairlet clients, daemon, hosted relay, push path, project website, and optional support bot.

Effective August 31, 2026Version 1.9.5
Summary

Prompts, code, transcripts, and tool details sent between a paired client and daemon are end-to-end encrypted. The relay processes routing and connection metadata. App telemetry and push services are separate third-party data paths.

Session content

Claude Code or Codex and your project files run on your computer. When Pairlet sends session content between the daemon and a paired client, the content is encrypted at the endpoints using the protocol described in the security model. The hosted relay forwards encrypted frames and is not designed to receive plaintext prompts, code, transcripts, private keys, or session keys.

Voice dictation

Voice input is optional and requires microphone permission. On iOS the default engine is Apple's system Speech framework; audio is handled by Apple as described in Apple's own privacy disclosures and never reaches Pairlet servers or any third-party AI provider. If you enable the alternative "Transcribe on the computer" engine, the recording is sent end-to-end encrypted to your own paired computer and transcribed there by locally installed whisper.cpp; the audio is discarded after transcription and no cloud transcription API is involved in either mode.

Your own coding agent

Prompts, files, and session content delivered to your computer are processed there by the coding agent CLI you installed and authenticated yourself (for example Claude Code or Codex). That CLI communicates with its model provider under your own account and that provider's terms. Pairlet does not integrate, call, or hold credentials for any AI provider; it only transports content between your phone and your computer over the end-to-end encrypted channel described above.

Relay data and metadata

To authenticate devices and route traffic, the relay stores an account identifier derived from a daemon public key, daemon and device public keys, hashes of credentials and pairing tickets, timestamps, and revocation state. It can also observe source IP addresses, online timing, ciphertext size and timing, byte counts, and the account-to-device routing relationship. Operational logs include connection lifecycle, authentication results, and rate-limit events.

Data stored on your devices

The client and daemon store pairing credentials, public and private key material, preferences, and local session references needed to operate the product. Project content and coding-agent credentials remain under the control of the computer that runs the agent. Unpair or revoke a device when it is lost or no longer trusted.

Analytics and crash reporting

The distributed mobile apps integrate Firebase Analytics and Crashlytics. The app code emits enumerated usage and diagnostic events such as app launch, connection state, session opened, prompt sent, and approval decision. It is designed not to include prompt text, directory paths, tool inputs, account identifiers, code, or transcript content. Crash reports can include technical diagnostic information. These requests go directly to Google services and do not pass through the Pairlet relay. Desktop analytics is enabled only when a build is configured with the relevant GA4 credentials.

Push notifications

On supported platforms, APNs or Firebase Cloud Messaging may process a device push token and notification-delivery metadata. Push payloads are designed to avoid prompt or code content. Opening the app retrieves session details through the encrypted Pairlet channel.

Website requests

This static website is hosted by GitHub Pages and loads font files from Google Fonts. Its homepage also loads a QR-code utility from jsDelivr. Public smart support may load Cloudflare Turnstile for a short human-verification check; Cloudflare receives ordinary request and browser information needed to perform that check under its Turnstile Privacy Addendum. These providers receive ordinary web-request information such as IP address, browser headers, and requested resource. The site itself does not provide a Pairlet account or advertising profile.

Optional AI customer support

If you use public smart support from the website or App, the question, the safe App-environment fields shown in the interface, and the answer are processed by the project-operated support server, OpenClaw, and its configured model provider. This separate support path uses ordinary HTTPS and is not part of the phone-to-daemon end-to-end encrypted channel; Caddy terminates HTTPS on the project-operated relay host before forwarding the request to the isolated support host. No Pairlet account is required and the interface does not provide an account history. Operational support sessions are retained for up to 30 days: the maintenance threshold is 28 days, with a daily cleanup timer and scheduling buffer. Anonymous support messages and derived answers are not written to the shared knowledge-candidate queue. The abuse-control database stores HMAC-pseudonymous visitor identifiers, short-lived pass records, counters, and aggregate token use—not raw IP addresses, questions, App context, or answers—and removes short-lived records as quotas advance. Do not send API keys, access tokens, private source code, private keys, full configuration files, or complete private logs. The support agent is designed to reject requests for credentials and to inspect only the public Pairlet repository.

Data retention and deletion

The relay forwards encrypted session frames in transit and does not retain them as message history. Relay account and device records (public keys, credential hashes, revocation state) persist while a pairing exists; unpairing or revoking a device in the app invalidates its keys at any time, and operational connection logs are short-lived. Content on your phone is removed by deleting the app; your projects and coding-agent history live on your own computer under your control and are removed with the daemon's data directory. AI support sessions are retained for up to 30 days as described above. You can withdraw the in-app data-disclosure consent by unpairing your devices and deleting the app, which ends every data flow described in this notice. For deletion questions, open a GitHub issue.

Self-hosting

If you build or self-host Pairlet components, the operator of that deployment determines the relevant logging, retention, analytics configuration, and infrastructure access. Review and modify the source and deployment files to match your requirements.

Changes and questions

This notice may change as the product changes. The effective date above identifies the current version. For implementation questions, open a GitHub issue. Report security vulnerabilities privately through GitHub Security Advisories.

Technical sources

  1. Security and trust model.
  2. Shared telemetry event definitions.
  3. Complete source repository.