Privacy Policy
Last updated:
This policy explains how RoamTerm (“we”, “us”) handles personal data in the RoamTerm mobile app, the desktop agent and this website. Operator: Ali Demirci, Ankara, Türkiye (individual developer). Contact: [email protected].
What we never see
The content of your terminal sessions, files you transfer and the commands you run travel inside an end-to-end encrypted SSH connection between your phone and your computer. Our relay forwards encrypted bytes and cannot read them. Your private keys stay on your phone in the Secure Enclave or StrongBox and are never sent to us. The same applies to remote help: the screen, keystrokes, files and terminal content of a help session travel inside an end-to-end encrypted connection and are never readable or stored by us. The secret part of a help code never reaches our servers.
What we process
- Account (optional). You can use RoamTerm without an account. If you sign in with Google or Apple, our authentication service (Supabase Auth) stores your email address, display name and the provider’s user ID.
- Devices and machines. To pair and reconnect, we store names you choose for your phone and computers, device identifiers, public key fingerprints, push notification tokens and last-seen times. We also keep a connection log (time, which device, relay or direct) that you can see in the app.
- Relay operation. To pair and forward connections the relay processes IP addresses, timing and data volume. It does not read content.
- Subscription. Purchases are handled by Apple or Google. RevenueCat receives an app user ID and your subscription status to unlock Pro. We do not receive your payment details.
- Diagnostics and analytics. Firebase Analytics and Crashlytics receive usage events, app version, device model, operating system and crash reports. They contain no terminal content. Push notifications use Firebase Cloud Messaging.
- This website. We use Cloudflare Web Analytics, which does not use cookies and does not track you across sites.
- Support requests. If you contact us through the in-app Support & feedback form (phone app or desktop control center), we process the data described under “Support requests” below.
- Status page. The public status page (status.roamterm.com) collects no personal data; it only shows whether our services are running.
- Push notifications about Claude Code. Notifications telling you that Claude Code needs you or has finished contain no command, prompt or message content; they only name your computer. Details are shown after the end-to-end encrypted connection is made.
- Remote help: identity of the helper. A person who helps must sign in with Google or Apple. When they connect, our server issues a short-lived signed statement containing their RoamTerm device ID, the sign-in provider and a masked e-mail address (for example a***@gmail.com). The computer owner sees this statement together with the display name and device name the helper sent, so they can decide whether to approve. We do not store a copy of the statement. A person who only receives help needs no account and we process no account data about them.
- Remote help: relay operation. To connect the two sides, the relay processes the 4-digit routing part of the help code (not the secret part), IP addresses, timing, the device IDs involved and data volume, as for normal connections. It does not read content. A help code is valid for 10 minutes and works once.
- Remote help: records on your computer. The desktop agent keeps a local audit log of help events (code issued, request, approved or denied scopes, session end, block, report). It never records terminal content, typed text or screen pixels, and it is not sent to us.
Support requests
When you send a request through Support & feedback in the app, we receive and store: the message you write; a reply email address, only if you enter one; the app and operating system version, device model, your RoamTerm device ID and your language; if you leave “include diagnostic info” ticked, the items listed on the form (for example theme, number of paired computers, Pro status, online or offline state and the kind of the last connection error; on the desktop agent: version, operating system, architecture, relay and direct-connection status, number of paired phones and sessions, whether ADB and tmux are installed), but never machine names, host names, file paths, keys or terminal content; and a salted one-way hash of your IP address, used only to limit abuse. We never store your IP address itself. Diagnostic info is optional and you can untick it.
Purpose and legal basis. We use this data to answer your request, to fix bugs and to prevent abuse. Our legal bases are performance of the contract (handling your request about the service) and our legitimate interests (improving the product and preventing abuse).
Recipients and processors. Support requests are stored on our own server in Germany. For each request we receive an email notification, which is sent through Cloudflare Email Routing to the operator’s Google (Gmail) mailbox; Cloudflare and Google process it as service providers. We reply only to the email address you provide.
Retention and deletion. Support requests are deleted 24 months after their last update, whether closed or not, and earlier on request. Support requests are not linked to an account, so deleting your account does not automatically delete them. Email [email protected] with the ticket number (RT-…) or the reply address you used and we will delete the request. Please do not put passwords, private keys or terminal content in a request.
Abuse reports and blocking (remote help)
If a session ends and the computer owner chooses “Report” (or “Block”), we receive and store:
- the device ID of the reported helper and, if they were signed in, their RoamTerm account ID;
- a pseudonymous identifier of the reporting computer (a hash derived from its key, not its name or address);
- the reason, chosen from a list;
- an optional free-text note of up to 500 characters written by the reporter (please do not put passwords or private data in it);
- the date and time of the report.
We also keep a block list (device ID, optional account ID, reason, optional end date) for helpers we or the computer owner have blocked, and the relay checks it when someone tries to connect.
Purpose and legal basis. To protect people from fraud and unauthorized access, to review reports, to block abusive devices and accounts and to defend against legal claims. Our legal basis is our legitimate interests (GDPR Art. 6(1)(f); KVKK Art. 5(2)(f)) in keeping the service safe, balanced against the rights of the person reported, who may ask us about the data we hold on them (see “Your choices and rights”). Where the law obliges us to hand data to a public authority, the legal basis is that obligation.
Retention. Reports are deleted automatically 180 days after they were filed. Block list entries are kept while the block is active and removed when it is lifted or expires. If an account is deleted, the account ID in reports and in the block list is removed or anonymised; the device ID stays for the remaining period so that a blocked device cannot return by deleting an account.
Who sees it. Only the operator, on our own server in Germany. Reports are not shared with other users, including the person who is reported, beyond the fact that they were blocked. We do not sell or share this data with advertisers.
Where data is stored
Account, device and subscription records, as well as remote help reports and block lists, are stored on our own servers in Germany (self-hosted Supabase) with encrypted backups. Analytics and crash data are processed by Google (Firebase). Subscription status is processed by RevenueCat. Website traffic goes through Cloudflare. Some of these providers may process data outside your country, including outside the EEA and Türkiye; where the law requires it, such transfers rely on safeguards such as standard contractual clauses.
Why we process it
To provide the service you asked for (pairing, reconnecting, subscriptions), to keep it secure and reliable (connection log, crash reports) and to understand which features are used. Our legal bases are: performance of the contract (providing pairing, relay and subscriptions), our legitimate interests (security, abuse prevention, preventing fraud and abuse in remote help, and crash diagnostics), your consent where required (analytics where consent applies, and push notifications) and legal obligations (tax and accounting records for purchases, which are handled by the app stores).
How long we keep it
Account and device records are kept until you delete them or your account. Crash and analytics data follow the retention settings of the respective provider. Encrypted database backups are stored with the encrypted storage provider Cloudflare R2: daily backups are kept for 15 days and monthly backups for 12 months. Deleted data disappears from daily backups within 15 days and from monthly archives within 12 months. Backups are used only for disaster recovery; deleted accounts are not restored from them. Remote help reports are kept for 180 days; block list entries are kept while the block is active.
Your choices and rights
You can remove a machine or device in the app at any time and delete your account in Settings (see delete your account). Depending on where you live you may have the right to access, correct, export or delete your data and to object to processing. Write to [email protected] and we will respond within 30 days at the latest. The data controller is Ali Demirci (Ankara, Türkiye). Your rights arise under the GDPR and the Turkish Personal Data Protection Law (KVKK, Law No. 6698). You may also complain to your local data protection authority or, in Türkiye, to the Personal Data Protection Board. If you believe you were reported or blocked in remote help, you can write to [email protected] to ask what we hold about you and to contest a block; we may withhold details that would expose the reporter or help abusers evade detection.
Children
RoamTerm is built for adult professionals and is not directed at children.
Changes
We will update this page when our practices change and show the date above.