Privacy Policy

HerdrChat · last updated 25 September 2026

HerdrChat has no accounts and no analytics. The app talks over SSH to a computer you own and administer, using credentials you supply. The only system of ours anything passes through is a push relay, and only if you turn notifications on; it forwards each notification to Apple and keeps nothing.

What we collect

Nothing. HerdrChat collects no personal data, stores nothing on any system of ours, and contains no analytics, advertising, tracking or crash-reporting SDKs. The notification relay described below handles a notification only for the moment it takes to hand it to Apple. The app's Apple privacy manifest declares NSPrivacyTracking = false and an empty set of collected data types, which matches the “Data Not Collected” label on the App Store.

About this website, which is a separate thing from the app: it does count visits. Pages here load a self-hosted analytics script from oa-c.cobanov.run, a server we run ourselves rather than a third-party service. It records the page address, its title, a coarse device class (desktop, mobile or tablet), the referring page, and named clicks on a few links — for example the one to the source repository. It does not receive anything you type, and there is nothing here to type into.

That script is on this page too, so the sentence above applies to the policy you are reading. Cloudflare's own Web Analytics, which would otherwise be injected automatically, is switched off for this hostname. None of this touches the app: HerdrChat itself ships no analytics and makes no request to us at all, which is what the section above describes and what the “Data Not Collected” label on the App Store reflects.

What is stored on your device

All of this stays on your phone and is never sent to us:

Removing a host deletes its saved credentials and pinned fingerprint. Use Settings → Erase all data before uninstalling if you want to remove all saved credentials: iOS Keychain entries can survive uninstalling and reinstalling the app. Settings → Clear cached messages clears cached conversations, last-message previews and transcript cursors, without touching your credentials or anything on your machines.

Where your data goes

HerdrChat sends your input directly to the machine you configure over SSH. Use a private network such as Tailscale to reach it without opening SSH to the public internet. Your network configuration determines how the host is exposed. Host keys are pinned the first time you connect, and a changed host key refuses the connection rather than silently trusting it.

Agent tools running on that computer, such as Claude Code and Codex, may send prompts, files and other context to Anthropic, OpenAI or another provider you configure. Those tools use your separate accounts and follow their own settings and privacy policies. HerdrChat does not make model API requests itself. The built-in Demo uses local fictional conversations and sends no prompts to a host or AI provider.

Notifications

Notifications are off until you turn them on. When you do, your device's Apple Push Notification token is written to a file on your own host over the same SSH connection, and the app can install a small watcher there that notices when an agent is waiting for you or has finished.

Apple delivers a notification only when it is signed with the push key of the team that published the app, so the watcher sends each one to the HerdrChat relay at push.herdrchat.cobanov.dev, which signs it and passes it to Apple. What the relay receives is the device token, the notification's title and text, and identifiers the app uses to open the right chat: the workspace, session and host entry. The title is the chat's name. The text is a line or two in the agent's own words, read on your host from the end of that chat: the opening of its closing message, or the question or command it is waiting on. It stores none of it and records no request logs, and it accepts only notifications for HerdrChat. Its source is in the app's repository.

To keep what the agent said off the relay, set NOTIFY_PREVIEW=0 in ~/.config/herdrchat/apns.env on your host: notifications then carry only the chat's name and whether the agent finished or is waiting.

If you build and sign the app yourself, the watcher can use your own Apple push key and send directly to Apple instead, and nothing passes through the relay. The token identifies your installation of the app so Apple can deliver to it; it does not identify you. Turning notifications off removes the token from your hosts.

Children

HerdrChat is a developer tool and is not directed at children. It collects no data from anyone, including children.

Changes

If this policy changes, the date above changes with it. The app is open source and this page lives in the same repository, so any change is visible in the project's history alongside the code it describes.

Contact

Questions about this policy: mertcobanov@gmail.com.