Privacy

Privacy notice

What KVMFlow stores locally, what it sends, and how to delete feedback.

Last updated: 26 October 2026

Local operation

By default, the app does not upload any data. KVMFlow switches monitor inputs and runs USB device identification and input switching locally. Configuration is saved on your own computers. After you pair two computers, KVMFlow syncs configuration only between those paired computers over the local network; it does not pass through a KVMFlow server. Keyboard input, mouse input and screen content are not uploaded.

Update checks

The app checks for updates by requesting the latest release manifest. The manifest and installers are hosted on GitHub, which processes that request under its own privacy policy.

LAN pairing

LAN pairing and sync only connect to private local-network addresses. The channel uses Noise XX encryption and pins the paired computer’s public key. This traffic is not sent through a KVMFlow server.

Feedback you choose to send

Nothing is sent unless you open Feedback in the app and send it yourself. The request contains:

  • The feedback type (works or problem), your message and any contact details you enter.
  • The app version and channel, operating system version and architecture, and switching mode.
  • For each monitor: vendor, model, DDC support, the VCP60 value, and the input values recorded for both computers with their source (read or manual).
  • The USB switch vendor, product name, VID and PID.
  • The last switch result: whether it was accepted and the value read back.
  • Optional diagnostic text, only when you choose to include it. It may contain configuration, recent event logs and LAN connection status. Before sending, the app replaces device serial numbers and fingerprints, computer names (including the peer), user directory paths, LAN and public IP addresses, device UUIDs and device instance paths with local placeholders. The server does not scan diagnostic text.

What the report does not contain

The structured report excludes computer names, user names, serial numbers, monitor fingerprints or UUIDs, device instance paths, public keys, raw IP addresses and local file paths. The server rejects a report if it detects an IP address, email address, local user path or long hexadecimal identifier in those fields. You may still type such details into the message or contact field yourself.

  • The server derives a keyed hash (HMAC-SHA256) of your IP address for rate limiting. That identifier is kept in the rate-limit table for at most two days. The raw IP address is not stored in the feedback table and is not written to our logs. Requests are transported and processed by Cloudflare’s network, so Cloudflare as the service provider can see connection metadata.

Storage and retention

Feedback is stored in Cloudflare D1. A daily cleanup deletes records older than 365 days.

Deletion

Keep the feedback ID shown after sending. To request deletion, email [email protected] with that ID. Deletion is handled manually.