Last updated · Crow Tech Pte. Ltd.
You choose and operate the host.
AI Agent Remote connects to the separately installed Herdr Remote host. It has no Crow account, advertising or developer analytics SDK, and does not automatically upload your project contents to Crow Tech.
Your paired computers
Pairing sends a temporary invitation, or the 6-digit code shown on your computer, and the device name you choose to your selected host. The host returns an independently revocable credential. The app saves that credential, the host address and the host certificate pin in this device’s Keychain. Saved app-only WireGuard profiles and secure-gateway credentials are kept in that same encrypted Keychain catalog. They may include a WireGuard private key, a relay or gateway credential, or configured reverse-proxy access credentials. Connections to the runner use HTTPS and validate the paired certificate, its hostname and validity.
These Keychain records are marked for this device only and are not synchronized through iCloud Keychain by the app. Choose Forget for a paired computer to remove its local record. Keychain items may remain after an app is uninstalled, so forget computers before uninstalling when you want their local credentials removed. Forgetting locally does not revoke access on the host; use its device-revocation command to remove server-side access.
Terminal and project contents
Terminal input and output, supported agent messages, Git changes and requested files travel between your device and the host you choose. They provide the remote session you requested. In the standard self-hosted setup, Crow Tech does not operate that host or receive those contents. The host’s optional web console runs only on that computer and is not a Crow service.
Your host, coding agents, model providers and network services may process or retain information under their own configuration and policies. A relay can see connection metadata even when it forwards the separate encrypted phone-to-host connection. Choose hosts and network operators you trust.
App-only networking and network operators
App-only WireGuard carries the app’s runner connection through the profile you choose. It does not change the phone’s global VPN or route other apps’ traffic. During pairing, pasted and imported profiles stay in app memory. After successful pairing, the saved route is held in the device-only Keychain catalog. Keep invitations and copies of network profiles private.
Secure gateways use an authenticated outer WebSocket connection and carry a separate, certificate-pinned TLS connection to the runner inside it. A gateway, reverse proxy or tunnel provider can see connection metadata and any access credentials it authenticates. Forwarding this encrypted inner connection does not give it plaintext terminal, prompt or project contents. An operator that also controls the runner can access the contents on that runner. These services remain subject to their own policies and configuration.
Live routes are intended for foreground use. After about 20 seconds in the background, the app closes its app-only routes and releases terminal control. Removing a paired record locally does not revoke an external WireGuard peer or gateway credential; ask the relevant operator to remove those separately when needed.
On-device voice notes
The Voice note control requests microphone and Apple Speech access only when you choose it. While you record, the audio is kept in a temporary file on this device. When you stop, it is transcribed on the device and the file is deleted; discarding the note deletes it too. The app requires on-device recognition: unsupported devices or languages do not silently fall back to network speech recognition. The recording is never sent to Crow Tech, the runner or a model provider.
Recognized text is added to an editable local draft. It is sent to the selected runner only when you explicitly send it with terminal control; your configured agent and model provider may then process that prompt. Leaving the editor, backgrounding or an audio interruption stops recording. The system keyboard’s own dictation feature is separate and follows your iOS settings and Apple’s applicable policies.
Local state and command delivery
The app keeps display preferences and local drafts. Drafts are kept in memory for the app session; they are sent to a terminal only when you explicitly submit them with control of that pane. The device’s credential catalog also records command request identifiers, body digests and delivery status, rather than saved prompt bodies.
The host stores paired-device records, credential hashes and a bounded operation journal used to recognize repeated requests and report uncertain delivery. Journal entries are not automatically pruned in this version. Those records remain under the host operator’s control; revoking a device does not by itself erase its previous operation history. Host and agent logs may have separate retention behavior.
Local network, camera, paste and notifications
Local Network access lets the app find computers running the bridge on your current network and connect to the one you choose. Discovery happens on that network only; nothing is sent to Crow Tech.
Camera access is requested to scan a pairing QR code. Recognition is handled on the device. You may paste an invitation instead. The app does not need your contacts, precise location or photo library for pairing.
The current standard distribution does not provide a publisher-operated background notification service. Separately configured developer deployments may register an Apple notification token with a chosen host/provider. The optional host module sends generic alerts without code, project names or terminal text. We will update this policy and the app’s privacy disclosures before adding a public Crow-operated notification gateway.
Update checks
To tell you when a newer version of the app is on the App Store, the app asks Apple’s public App Store lookup service at most once a day. The request carries only the app’s identifier and your device’s region; it contains nothing about your computers, projects or terminals, and nothing is sent to Crow Tech. Turn this off with Connections → Updates → Show update notices. Installing app updates is handled by the App Store as usual.
The bridge you install on your computer checks GitHub for newer bridge releases a few minutes after it starts and about every six hours, and by default installs them itself. Those requests go from your computer to GitHub, which receives your computer’s IP address under its own policies; they carry no project or terminal content. You can switch the bridge to only tell you about updates, or stop checking, with herdr-remote update --mode notify or --mode off. A device with control access can also turn automatic bridge updates off in Connections → Updates.
Optional support and beta testing
If you contact us, we receive what you choose to include and use it to respond. Do not send API keys, passwords, live pairing QR codes or invitation text, device tokens, WireGuard profiles or private keys, gateway/access credentials, TLS private keys, or private project contents. Remove those details from screenshots and logs first.
Apple TestFlight may provide diagnostics and the beta feedback you send through its testing services, under Apple’s own privacy information and terms. That is separate from the app’s connection to your selected host.
This website is separate from the app
Visiting crow.sg can expose ordinary connection information to its hosting provider. This website uses website analytics, including Google Analytics, as described in our website privacy policy. Those website services are not native-app analytics. Visiting this page does not upload your terminal session or project files.
Contact and policy changes
Contact [email protected] for app privacy questions or requests about support correspondence.
Crow Tech Pte. Ltd.
152 Beach Road, #23-02 Gateway East
Singapore 189721
We will update this policy when the app’s data handling or deployed services change. AI Agent Remote is an independent companion project, not an official Herdr application.