Skip to content

Privacy Policy

Last updated: November 13, 2026

Summary

lpm is an open-source project. The software itself (the lpm desktop app and the lpm Link apps for iPhone and Android) runs on your own machines. It does not collect, transmit, or share any personal data, telemetry, or usage information. Two things reach the network on their own: the desktop app’s update check and, if you pair a phone, push notifications. A third is on until you turn it off: crash reports from the desktop app. On Android, two Google components the app is built with also talk to Google: one reads the pairing QR code, the other delivers notifications. All of this is described below.

This website (lpm.cx) uses a small amount of third-party analytics to understand traffic. Details below.

The software (desktop app)

  • No analytics or tracking. Crash reports, described below, can be turned off in Settings.
  • No account required.
  • All project configuration and state stays on your local machine.
  • Update checks: the desktop app asks GitHub’s releases API for the latest version at launch and every 24 hours. Updates, and the lpm build a Linux server installs when you add it as a host, download from GitHub Releases.
  • AI features (commit and pull request text, Generate with AI, prompt rewrites) run through the agent CLI you installed, under your own account, so that provider receives what you send it. lpm hosts no model of its own.
  • Crash reports are on until you turn off Send crash reports in Settings, under General, and each computer has its own switch. While it is on, an error lpm didn’t expect is sent to Sentry (sentry.io), the service where we read the reports. A report holds the error and where in lpm it happened, your lpm version, operating system version and processor type, and the app’s own recent events. Your code, terminal output, prompts and project settings are never part of it. The error text can name the file or project it was about; your home folder name and anything that looks like a password or token are removed from it before it leaves your computer. A report has no account or name on it, and Sentry is set to keep neither the address it came from nor a location worked out from it. Turning the switch off stops reports at once. With it off, the screen lpm shows after a crash still has a Send report button, which sends that one error when you press it.
  • Push notifications are sent only if you pair a phone. Apple and Google require a signing key to deliver them, so those notifications are relayed through a server we run, which hands them to Apple Push Notification service or Firebase Cloud Messaging. The contents are sealed on your computer (or the Linux server your phone is paired with) and can only be opened by your phone — we, Apple and Google can see that a notification was relayed and to which device, never what it says. Terminal output, keystrokes, diffs, and files go straight from your computer to your phone.
  • Source code is available at github.com/gug007/lpm so you can verify this for yourself.

The iOS app (lpm Link)

  • No analytics, tracking, or telemetry. No data is collected.
  • The app talks only to the machines you pair it with, meaning a computer or a Linux server running lpm, over whatever route reaches them (your home network, Tailscale, or an address you enter). Nothing is sent to any server we control.
  • Camera access is used to scan the pairing QR code and, when you tap Take Photo, to attach a photo to a prompt or a project note. Photos go only to the computer or server you paired with.
  • Built-in Tailscale is off unless you turn it on. Then the phone joins your tailnet through Tailscale’s servers and you sign in with your own Tailscale account, under Tailscale’s privacy policy. lpm turns off Tailscale’s own logging, so its logs stay on the phone.
  • The pairing credential is stored in the iOS Keychain on your device.
  • No account is required.

The Android app (lpm Link)

  • No analytics, tracking, or telemetry of our own. The app talks only to the machines you pair it with, over whatever route reaches them (your home network, Tailscale, or an address you enter). Nothing is sent to any server we control.
  • Local network: on Android 17 and later the app asks for “nearby devices” access. It uses it only to find and reach your computers on the same Wi-Fi.
  • Camera access is used to scan the pairing QR code and, when you tap Take Photo, to attach a photo to a prompt or a project note. Photos go only to the computer or server you paired with. The QR code is read on the phone by Google’s ML Kit, which sends Google diagnostic data about its own use (device model and Android version, app version, a per-install identifier, and performance figures such as how long a scan took) — never the camera image or what the code says.
  • Notifications: once you allow notifications, the app registers with Google’s Firebase Cloud Messaging, which gives this install an identifier. The app sends that identifier to the computers you paired with so they can address notifications to it, as described above. Until you allow notifications, the app doesn’t contact Firebase at all.
  • Built-in Tailscale is off unless you turn it on. Then the phone joins your tailnet through Tailscale’s servers and you sign in with your own Tailscale account, under Tailscale’s privacy policy. lpm turns off Tailscale’s own logging, so its logs stay on the phone.
  • The pairing credential is encrypted with a key in the Android Keystore, which never leaves your phone, and the app’s data is excluded from cloud backups.
  • No account is required.

Website analytics

lpm.cx uses the following third-party services to understand website traffic and measure ad performance:

  • Google Analytics — aggregated visitor statistics (pages visited, referrer, approximate location, device type).
  • Google Ads — conversion measurement for ads that link to the site.

These services may set cookies in your browser. Visitors from the European Economic Area, the United Kingdom and Switzerland are asked first. Until they allow it, Google’s tags store no cookies and only tell Google, without cookies, that a page was visited. lpm.cx keeps the answer in your browser, with a cookie that records whether to ask. .

You can also opt out by using browser settings, an ad blocker, or the Google Analytics opt-out add-on.

What we don’t do

  • We don’t sell your data.
  • We don’t bundle third-party software with the installer.
  • We don’t run ads inside the software.
  • We don’t require an account to use lpm.

Your rights

Because the software stores no personal data on our side, there is nothing for us to export, correct, or delete. Crash reports carry no name or account, so we can’t tell which ones came from you. For website analytics data handled by Google, see Google’s privacy policy and opt-out tools linked above.

Changes

If this policy changes, the “last updated” date at the top of the page will change with it.

Contact

Questions? Open an issue at github.com/gug007/lpm/issues.