CommitBrew

Privacy Policy

Last updated · September 18, 2026

BrewPing is a developer tool that lets you monitor and control the AI coding agents already running on your own computer, from your iPhone or Apple Watch, over your local network. This policy describes exactly what data BrewPing handles on each platform — and what it never sees. It is written against the actual behaviour of the shipping code, not a template.

Summary

We do not operate a server that receives your data. There is no account, no sign-up, no analytics, no crash-reporting SDK, no advertising identifier and no location collection in any BrewPing build.

Commands, agent output and voice transcripts travel only between your phone and the computer you configured, over your local network.

One exception exists, and it is yours to control: if you configure a model provider in the Windows desktop app, prompts and output are forwarded to that provider. See Third-party services below.

What this policy covers

This policy covers BrewPing on iOS, watchOS, macOS and Windows, and this website (commitbrew.com).

It does not cover the third-party coding agents you choose to run (OpenCode, Claude Code, Codex CLI, pi and others). Those are separate products with their own terms and privacy policies.

Information we do not collect

BrewPing contains no telemetry of any kind. Specifically, we do not collect:

  • Names, email addresses or contact details
  • Usage analytics, event tracking or screen recordings
  • Crash reports (the app contains no crash-reporting SDK)
  • Advertising identifiers — BrewPing never reads the advertising identifier, so no App Tracking Transparency prompt is needed
  • Location data — no Core Location usage, and no coarse or precise location is derived
  • Contacts, photos, calendar or health data

Permissions the app requests

BrewPing asks for three permissions, and each is used only for the purpose stated here. You can decline any of them and the rest of the app keeps working, with one exception: declining Local Network means it cannot reach your computer.

  • Camera — used only to scan the pairing QR code displayed by the BrewPing desktop app. The scan produces a pairing code string; no photo or video is captured, saved or uploaded
  • Microphone (Apple Watch) and Speech Recognition (iPhone) — used only to turn your spoken words into a command. See Voice input and transcription below
  • Local Network — used to discover and reach the computer you have configured. See Bonjour and Local Network below

Data flow: iPhone and Apple Watch

Your device list and in-app preferences are stored on your iPhone in local app storage. The pairing token that authenticates your phone to your computer is stored in the iOS Keychain, not in plain app storage.

Commands you send are transmitted over HTTP on your local network to the host and port you configured (default 8787). They are not routed through any server of ours.

Agent output travels back along the same path and is rendered in the app.

Voice input and transcription

When you use voice input on Apple Watch, audio is recorded on the watch only while you are on the input screen, and is transferred to the paired iPhone over Apple's WatchConnectivity transport — a device-to-device channel, not an internet upload.

The iPhone then transcribes that audio file using Apple's Speech framework to produce the command text. Please note precisely how this works: BrewPing does not request on-device-only recognition, so transcription may be performed by Apple's servers rather than solely on your device. That transfer is between your device and Apple, is governed by Apple's own privacy policy, and we do not receive the audio or the transcript.

The temporary audio file is deleted from the iPhone immediately after transcription succeeds or fails.

Data flow: macOS desktop

The desktop app listens for your phone on port 8787 (falling back to 8788, then 8789 if the port is taken) and stores its state in ~/.brewping/:

  • session.json — current session id, process ids, working directory, status
  • agent.sock — a local Unix socket used by the command line tool
  • agent.log / opencode.log — agent standard output and error output
  • pairing.json — the pairing token, written with file permissions 0600
  • device.json — this computer's device identity
  • approval.json, config.json, workdirs.json — approval mode, agent and model preferences, working directory preferences
  • commands/ and conversations/ — one file per command, and stored conversations

Data flow: Windows desktop

The Windows app serves the same local HTTP API on port 8787 and stores its state under your user profile, in %USERPROFILE%\.brewping\:

  • device.json — device identity
  • pairing.json — the pairing token, file mode 0600
  • model_providers.json — provider configurations, proxy switch, proxy port, failover switch
  • workdirs.json — per-agent working directory preferences
  • approval.json — global approval mode

Bonjour and Local Network

BrewPing asks for Local Network permission for exactly one reason: to find and talk to the computer you have configured.

It browses and advertises the Bonjour (mDNS) service type _brewping._tcp on your own network. The advertised record carries the app version, the active agent id, the platform, a protocol version, and optionally a device id and device name — nothing else.

Discovery and command delivery both stay on your local network. There is no wide-area component: BrewPing does not open a connection to the internet to reach your computer, and it cannot be reached from outside your network unless you make your own network arrangements (for example Tailscale or WireGuard).

Relay server

No relay server is in operation. BrewPing ships as a local-network tool only.

For full transparency: the BrewPing source repository contains an experimental relay-server/ directory. It is not wired into any shipped client, it has no authentication, and the project documentation explicitly prohibits deploying it to the public internet or to any untrusted network. It is not built, not shipped and not running. If that ever changes, this policy will be updated before such a feature is enabled for anyone.

Third-party services

BrewPing embeds no analytics, advertising, attribution or crash-reporting SDK of any kind.

The one path by which your content can reach a third party is the one you configure yourself. The Windows desktop app can run a local model proxy on 127.0.0.1:15721. If you enable it and configure a model provider, the proxy forwards your prompts and the resulting output to that provider so the coding agent can do its work. The providers offered as presets are Kimi (Moonshot), DeepSeek, GLM (Zhipu), MiMo (Xiaomi) and MiniMax, plus a custom option where you enter the endpoint yourself. Which provider receives your content is entirely your choice, and that provider's own privacy policy governs what it does with it. We do not receive a copy.

Purchases of the iOS app are processed by Apple through the App Store. We do not receive payment card details. Apple provides us with aggregate sales and download reporting, and aggregate crash diagnostics only from users who have opted in to share diagnostics with developers.

This website

commitbrew.com is a static site hosted on Vercel. As with any public web server, Vercel may generate standard request logs (such as IP address, requested path and user agent) as part of delivering the pages.

We add no analytics, tag manager, advertising or cross-site tracking script to this site, and it sets no advertising or tracking cookies. The only thing this site stores in your browser is your language choice, kept in local storage so the site opens in the language you picked. Fonts are served from the site itself rather than from a third-party content delivery network.

Network requests, logs and errors

Traffic between your phone and your computer is plain HTTP on the local network. It is not encrypted with TLS on that local hop, which is why pairing is required: every request except the pairing exchange and a public status check must carry a bearer token, and write requests additionally carry a timestamp within a two-minute window plus a single-use nonce so a captured request cannot be replayed.

The apps log to the operating system's own logging facility. Command text, voice transcripts, file names and host names are all marked as private in those logs. Logs stay on your device and are never uploaded by us.

Error messages are shown to you in the app. We do not receive them.

How long data is kept, and how you delete it

Because we hold none of your data on any server, there is nothing for us to retain or delete. Retention is entirely on your own devices, and you control it:

  • Conversations and command history — delete them in the app, or activate a different conversation and clear the archive
  • Pairing token — removing the device in the app, or deleting the app, removes the Keychain item
  • macOS desktop state — delete ~/.brewping (this removes sessions, conversations, logs, preferences and the pairing token)
  • Windows desktop state — delete %USERPROFILE%\.brewping (this removes device identity, pairing token, provider configuration and working directory preferences)
  • Voice audio — deleted automatically right after transcription, whether it succeeded or failed
  • Uninstalling an app removes that app's own container and everything inside it

Your rights

Since we hold no account and no server-side copy of your data, we cannot access, correct, export or delete it for you — and we cannot hand it to anyone else, because we never receive it.

You therefore exercise these rights directly on your own devices, using the deletion steps above. Where a data protection law gives you rights over data we do not hold, there is simply no such data to act on.

If you believe any build of BrewPing is transmitting data it should not, please tell us. Point us at the specific behaviour and we will fix it rather than argue about it.

Children's privacy

BrewPing is a developer tool intended for people who already run coding agents on their own machines. It is not directed at children, and we do not knowingly collect information from anyone, including children.

Changes to this policy

If we change this policy, we will update the effective date at the top of this page. Because BrewPing does not hold your contact details, we cannot email you about changes — please check this page if the question matters to you.

Contact

Questions about this policy, or about what a specific build actually transmits:

Back to CommitBrew