Privacy Policy for Fin
Last updated September 29, 2026
In short: Fin's terminal works without any account: it connects directly from your device to the SSH servers you configure, and what it stores stays on your device or in your own private iCloud. Fin also has optional cloud features — an account you create with Sign in with Apple, Fin's relay (SSH over HTTPS, Remote Desktop, Remote Browser), the agent's messages and notifications, and cloud agent computers — that run on a small service operated by Fin's developer on Amazon Web Services. This policy says exactly what that service handles, for how long, and how to delete it. There are no advertising or analytics SDKs, and we never sell or share your data.
Who this policy covers
Fin is developed by Levi Schoen. This policy applies to the Fin app on iOS, iPadOS, macOS, tvOS, and visionOS, and to Fin's background service (fin-agentd) that you may install on your own computers. Questions can be sent to levismschoen@gmail.com.
Part 1 — Without a Fin account
If you never sign in, none of the following leaves your devices and Apple's infrastructure.
- SSH private keys and passphrases are stored in your device's Keychain, protected by your passcode or biometrics. If you're signed in to iCloud, Keychain items sync to your other Apple devices through Apple's end-to-end encrypted iCloud Keychain; Fin's developer has no access to them.
- Server records (name, hostname, port, username, connection settings), SSH key metadata (a key's name and type, not the key), and agent settings are stored in Apple's CloudKit, in the private database tied to your own iCloud account. Fin's developer cannot read it.
- Clipboard clippings and markdown file references stay on your device only.
- Terminal content over a direct SSH connection — anything you type or see — travels directly between your device and the server you connected to. It does not pass through any server operated by Fin's developer.
- On-device AI. When an agent uses Apple's on-device model, its prompts and replies are processed on your device by Apple's framework.
Part 2 — With a Fin account and Fin's cloud service
Some features need a service that can reach your computers when they are behind a firewall or asleep, and can reach your devices when the app is closed. They require you to sign in with Apple. The service runs on AWS in the US (Oregon region) and handles the following. Nothing in this section applies unless you sign in and use the feature named.
- Your account. Sign in with Apple gives us Apple's stable, app-specific identifier for you, which we map to a Fin user ID. We ask Apple for no name and no email address, and we keep no Apple credentials or refresh tokens. A session token (valid for up to a year) keeps your devices signed in.
- Fin's relay — SSH over HTTPS. For a computer you have enrolled with Fin's background service, a terminal can be tunnelled through Fin's relay instead of connecting directly. The relay is a small on-demand server that starts when you open a session and shuts itself down when idle. It passes your keystrokes and the computer's terminal output between your device and the enrolled computer in memory; it does not write that content to disk or to logs (its logs hold only connection events and session IDs). The connection to the relay is encrypted with TLS, but the relay itself handles the traffic in the clear while forwarding it — so, unlike a direct SSH connection, the relay is a party in the path. Fin's developer does not read or keep this traffic.
- Remote Desktop and Remote Browser. These stream images of an enrolled computer's screen (or of the one browser the agent is using) to your device, and carry your taps and typing back, over the same relay and on the same terms: in memory, not stored. Each session opens only after Face ID, Touch ID, Optic ID, or your device passcode, and only on a computer whose owner has opted in and granted macOS Screen Recording (and, for input, Accessibility).
- Agent messages and notifications. The requests you send to your agent (by text, dictation, or Siri) and its replies are stored so they reach the right device and can be answered from a notification; they are deleted automatically after 14 days. The threads that group them keep event records for 30 days. Your devices' push-notification tokens are stored so Apple's push service can alert you.
- The agent's workspace. To work across devices, the agent's run history is stored under your account: its transcript (what it decided, the commands it typed, and the text it read from your terminals — which can include anything visible in a terminal), its memory and goals, artifacts it produced, and device status. It stays until you delete it or your account.
- Enrolled computers. For each computer you enroll we store its name and role, when it last checked in, its Fin version, what it can do, the name of its local user and host, the names of its tmux sessions and pane titles, and which model its agent is configured to use.
- SSH key vault (Apple TV). So an Apple TV can use your SSH keys, your other devices seal each key with a vault key that exists only in your private CloudKit database and upload the sealed ciphertext. The service stores ciphertext it cannot open.
- Connected-service credentials you choose to add are stored encrypted in AWS Secrets Manager.
- Cloud agent computers. If you launch one, we run a small AWS instance for you and store its configuration and transcripts as above; it is shut down when idle or when you delete your account.
- Diagnostics. When a relay or remote-screen connection is made, fails, or ends, the app and your computers send a small diagnostic record — your user ID, a computer ID, a session ID, a timestamp, and an error description or duration. These records never contain terminal content, keystrokes, or screen images, and are kept in AWS logs for troubleshooting.
- "Help improve Fin" (off by default). If you switch it on, ratings you give, comments you write (with secret-shaped text redacted before they leave your device), and metadata-only summaries of agent runs are sent to us to improve Fin's models and prompts. Switching it off stops sending and discards anything still queued on your device.
AI models
Fin does not send your data to any AI provider of its own. An agent uses either Apple's on-device model or an endpoint you configure — a model server on your own network, or a hosted service you choose. If you point an agent at a hosted endpoint, its prompts (which can include terminal text) go to that provider under the provider's own terms.
Who else handles data
- Amazon Web Services hosts Fin's service (API Gateway, Lambda, DynamoDB, S3, EC2, Secrets Manager, CloudWatch) as our processor.
- Apple provides iCloud and CloudKit, Keychain, Sign in with Apple, the Apple Push Notification service, and purchases through the App Store; Apple's own terms and privacy policy govern those.
There are no advertising or analytics SDKs in Fin, no crash-reporting SDKs, and we do not sell, rent, or share your data with anyone for their own purposes.
Markdown and file access
When you open a markdown or text file, Fin uses the standard file picker and a security-scoped bookmark to remember its location, and reads or writes only the files you explicitly open.
Deleting your data
- Delete your Fin account from inside the app (Settings → iCloud Sync → Fin Account → Delete Fin Account; on Apple TV, the Fin Account section of the server list). This shuts down your cloud computers, unlinks every computer, and erases your messages, transcripts, memory, goals, artifacts, vault ciphertext, stored credentials, device tokens, sessions, and the link between your Apple ID and Fin. It cannot be undone. Your own iCloud data — servers, keys, and settings — belongs to your Apple Account and is untouched by it.
- Answered message records expire on their own after 14 days and thread events after 30 days; a session token expires after a year. Transcripts and memory stay until you delete them or your account.
- Deleting a server, key, or clipping in Fin removes it from Keychain, CloudKit, or local storage. Deleting the app removes locally stored data, and CloudKit data can be removed from your device's iCloud settings.
- To ask about anything else we may hold, write to levismschoen@gmail.com.
Children's privacy
Fin is a developer tool and is not directed at children. It does not knowingly collect data from children.
Changes to this policy
If this policy changes, the "Last updated" date above will change and material changes will be noted in the app's release notes.
Contact
levismschoen@gmail.com