Privacy Policy — Phren for iPhone
Effective 12 September 2026. Replaces the 10 September 2026 version; the changes are listed at the end.
Phren for iPhone ("the app") is a client for two things you own: a knowledge store kept in a Git repository on GitHub, and coding-agent sessions running on your own computers. This policy says, item by item, what the app keeps on your phone, what leaves it and to whom, and how to remove it. Everything here is checked against the app's source, which is public.
The short version
- There is no Phren account and no Phren server. The developer operates no backend and receives no data from the app — no analytics, no crash reports, no telemetry, no advertising identifiers.
- Store data goes between your phone and GitHub, using your own token.
- Session data goes between your phone and your own computers, over SSH, using a key the phone generated.
- Signing out or forgetting a computer removes what the app kept for it.
What the app keeps on your phone
| Item | Where | Why, and how it is protected |
|---|---|---|
| Your GitHub access token | iOS Keychain, this device only, available after first unlock | Sent only as an authorization header to api.github.com. Not synced to iCloud Keychain, not in backups. |
| A local copy of your store's markdown and YAML files | The app's private container | So the app works offline and searches locally. Includes findings, notes, tasks, truths, review queue, summaries, skills, agent instructions, and the store's own registry files (stores.yaml, machines.yaml, profiles/, each project's phren.project.yaml) so the app knows which of your computers carries which project. |
| Changes not yet pushed | The app's private container | A queue of edits you made offline, replayed to GitHub when you are back online. |
| One SSH private key per added computer | iOS Keychain, this device only, available only while unlocked | Identifies this phone to that computer. The private key never leaves the device; only its public half is shown for you to authorize. |
| Computer connections | Device preferences | Addresses, usernames, the SSH host-key fingerprint you trusted, pinned sessions, and which folder on that computer belongs to which project. |
| Chat drafts and attached images | The app's private container | So an unsent message survives a relaunch. Messages you queue while an agent is busy are kept in memory only and are gone when the app quits. |
| Preferences | Device preferences | Theme and custom themes, terminal toolbar and shortcut layouts, task view choices, the default project for quick capture, and a short log of recent captures. |
| Widget snapshot | The app group shared with the widget | Memory and project counts, your top active task, and the last sync time — nothing else — so the Home Screen widget can draw without the app. |
Deleting the app removes its private container and preferences. Keychain items can outlive deletion: Sign out deletes the GitHub token and wipes every local store copy; Forget computer deletes that computer's SSH key. Remove the matching phren-iphone line from the computer's ~/.ssh/authorized_keys to revoke the phone there.
What leaves your phone, and to whom
GitHub
To sign in and sync, the app talks directly to github.com (optional device sign-in) and api.github.com (repository contents). It reads the repositories you attach and writes your edits back as commits authored by your GitHub account. GitHub's handling of that traffic is governed by GitHub's privacy policies.
Your own computers
When you open a computer you added, the app connects over SSH to the address you gave, verifies the host key against the fingerprint you trusted, and talks to Phren Hook — a helper you installed and run there. Over that connection the app:
- reads session metadata (workspaces, tabs, agent state, working folders, the git branch of a pane's folder, the computer's own hostname), transcripts of the agent conversations you open, repository diffs you ask for, running web servers, and the account-usage figures your agents report;
- sends the messages, images, approvals and terminal keystrokes you submit, to the computer and agent you chose. The agent may forward that content to its AI provider under that provider's privacy policy — the app has no part in that;
- can create a workspace and start an agent in a project folder when you ask it to.
Images you upload are kept on that computer for up to 14 days. GitHub credentials are never sent over this connection. Web previews tunnel a development server on the computer into an isolated in-app browser; pages can reach whatever external resources they include.
Apple
Voice capture uses Apple's Speech framework and requests on-device recognition wherever the device supports it; otherwise iOS may send the audio to Apple under Apple's privacy policy. Audio is not stored; only the text you save becomes a note or task. Siri shortcuts ("add a task to phren") are handled by Siri under Apple's policy and pass the text to the app. Approval requests can be shown as a Live Activity; the activity carries display text and an opaque local identifier only.
Nobody else
The app contains no analytics, crash-reporting or advertising SDKs. Its networking libraries (SwiftNIO SSH, Swift Crypto) carry no telemetry. The phren command-line tool has an opt-in usage counter (phren config telemetry on); when enabled it keeps counts of tool calls and commands in a local file in your store's runtime folder and does not transmit them anywhere. The app does not use it.
Permissions the app may ask for
- Microphone and speech recognition — only while you dictate. Decline them and everything else still works, including the keyboard's own dictation.
- Camera and photos — only when you attach an image to an agent message.
- Local network — to reach computers you add over SSH.
Children
The app is not directed at children under 13 and collects no data from anyone.
Changes to this policy
Material changes are published at this address with a new effective date and noted in the app's release notes.
12 September 2026: the app now also mirrors the store's machines.yaml, profiles/ and per-project phren.project.yaml; reads a computer's hostname and a pane's git branch from Phren Hook; can start an agent in a project folder on request; and keeps queued chat messages in memory only. The developer-receives-nothing statement is unchanged.
Contact
Questions about this policy: ala@alaarab.com
Source code: github.com/alaarab/phren