Skip to the download

Remote Coder

v0.1.0 · in test

[01]

What never reaches us

In effect 22 August 2026

Remote Coder is published by an independent developer based in India, who decides what the apps collect and is the data controller for it. The contact for anything on this page — including a request to see or delete what we hold — is hello@remotecoder.dev. What you may do with the app is a separate document: the terms.

Remote Coder connects your phone to your own computer directly. Everything that makes up a session — the screen you are looking at, every pointer move and keystroke you send, the terminal output, the sound, and any file you pull off the machine — travels over an end-to-end encrypted peer-to-peer link between those two devices.

None of it is collected, stored, or seen by us. On a local network there is no server in the path at all. When you connect from outside your network, a relay forwards the connection — and it forwards sealed bytes: it holds no key, so it cannot read what passes through it, and it keeps no copy.

Your computer’s access password is never sent anywhere either. The apps prove knowledge of it without transmitting it, and the phone stores what it derives in the platform keystore — Keychain on iOS, an encrypted store on Android.

One consequence worth naming

Because we hold none of it, we cannot recover any of it. There is no copy of your session, no backup of your machine’s password, and no way for us to reach your computer on your behalf or on anyone else’s.

[02]

Your account

Firebase Authentication

An account is required before any screen in either app is reachable, and it is what a paired computer and a purchase attach to. Signing in with email and password, Google, or Apple gives us:

  • 01Email addressfrom the sign-in
  • 02Display nameif the provider sends one
  • 03Account identifierthe uid
  • 04Sign-in timestampscreated · last seen

Authentication is run by Firebase Authentication (Google). Your password is handled by Firebase and never reaches a server of ours — this site only ever receives a signed token proving the sign-in happened. If you sign in with Apple and use Hide My Email, we only ever see the relay address.

[03]

The connection log

Yours · one row per pair

So the apps can show you which computers this account has paired with, one row is written per computer-and-phone pair, under your account and readable by nobody else. It holds exactly these fields:

  • 01Computer id and namethe name you gave it
  • 02Phone id and namethe device name
  • 03Key fingerprintto spot a changed key
  • 04Transportdirect or relayed
  • 05First seen · last seen · endedtimestamps

That is the whole record of a session. There is no log of what you did in it, how long each thing took, what you typed, or what was on the screen.

[04]

Crash reports and analytics

Two Google services · named

The apps report crashes and basic usage so that a bug reaches us without you having to describe it. This works the way every third-party analytics service works — the app sends requests over the network to that company’s servers — so the two services are named here rather than described in the abstract: Firebase Crashlytics and Google Analytics for Firebase, both operated by Google. There is no third one.

  • 01Crashlytics — stack trace, device model, OS and app versionon a crash
  • 02Analytics — screen names as you move through the appper screen
  • 03Analytics — first open, session start, app and device detailsautomatic
  • 04Analytics — an app instance identifier Google assignsper install
  • 05Analytics — a coarse region, derived from the request's IPper request
  • 06Your account identifier, attached to bothalways

The account identifier is what lets us answer a specific person’s report instead of staring at an average. The coarse region is derived by Google from the address the request arrives from; we do not receive your IP address and cannot look one up.

No custom events are recorded at all. The apps contain the ability to log one and do not use it: nothing reports that you signed in, connected to a machine, opened a terminal, ran a command, or bought anything. What Analytics receives is what it collects on its own, plus the name of the screen you are on.

Neither service carries session content. No screen image, no keystroke, no terminal output, and no file name is in a crash report or an event. Collection is off entirely in development builds. Both retain what they hold on Google’s own schedule.

If that list ever grows

There is no product-analytics service in the apps beyond the two named above — no PostHog, Amplitude, Mixpanel, Segment or anything of that kind, and no advertising SDK. If one is ever added, this page names it and says what it collects before the build containing it ships.

There is no advertising and no tracking. No ad network is present in either app, no advertising identifier is requested on iOS, and on Android the advertising-id permission is actively removed from the build — a check in continuous integration fails the build if a dependency ever merges it back in. Nothing is shared with data brokers, and nothing is used to profile you across other companies’ apps or sites.

[05]

Notifications

One table · four columns

If you ask your computer to buzz your phone when a long-running command finishes, the phone registers for notifications. A small service of ours stores one row per app install so it knows where to send the buzz: the notification token, your account identifier, the platform (iOS or Android), and when it registered. Signing in on that device as somebody else moves the row rather than adding one.

The notification itself names the computer and says a session wants attention. It does not carry the command, its output, or anything from the screen.

[06]

Purchases

RevenueCat · the stores

Remote Coder Pro is one payment that never renews. We never see your card. The payment is taken by Apple or Google under their own terms, and RevenueCat sits between the app and the two stores to tell the app whether the purchase exists. What that involves is your account identifier, the purchase and its status, and the store’s own anonymous identifiers. Refunds are the store’s to give, not ours.

[07]

Who else gets it

Four processors · no sale

Nothing described on this page is sold, rented, or shared for anyone else’s advertising. It reaches five processors, each doing one job on our behalf:

  • 01Google — Firebaseaccounts · connection log · diagnostics
  • 02RevenueCatpurchase status
  • 03Cloudflarenotifications · the relay
  • 04Apple · Google Playthe payment itself
  • 05Vercelhosting this site · §[08]

We will also hand something over if the law requires it — which, given the list above, means an account and a list of paired computer names, and cannot mean a session, because there is nothing to hand over.

[08]

This website

One cookie · no analytics

The site is not the app and collects far less. It runs no analytics of any kind — no Google Analytics, no PostHog, no Vercel Analytics, no pixel, no fingerprinting. The landing page ships zero client-side JavaScript, which is a property the build checks on every commit, and a page that runs no script cannot be measuring you. There is no cookie banner because there is nothing to ask you to consent to.

  • 01rc_session — set only if you sign in herestrictly necessary
  • 02Readable by scriptsno · httpOnly
  • 03Lifetime14 days, then sign in again
  • 04Used for analytics or advertisingnever

That one cookie exists to keep you signed in on the account pages. Nothing else is stored in your browser, and signing out clears it.

The site is hosted by Vercel, which keeps ordinary server logs — the requesting address, the user agent, the path and the time — as any web host does, for security and for finding faults. Those logs are Vercel’s to retain on its own schedule, they are not joined to your account, and nothing on this site reads them to build a profile.

[09]

How long, and how to end it

Yours to delete

The account and its connection log stay until you delete them. Crash reports and analytics events age out on Firebase’s own retention schedule. A notification registration is dropped when you turn notifications off, when the token stops working, or when that install signs in as somebody else.

Deleting the account removes it and everything filed under it, including the connection log. Purchases live with Apple or Google and are restored by signing in to the same store account, so deleting here does not destroy something you paid for.

Depending on where you live you may also have the right to see a copy of what we hold, correct it, restrict or object to our holding it, or receive it in a portable form. Write to hello@remotecoder.dev and it gets done. There is one of us, so it gets done by a person rather than by a portal — and if you think it was not, you can complain to the data protection authority where you live.

Why we are allowed to hold it. For the account, the connection log and the purchase, because there is no app without them: we are performing the contract you entered when you installed it. For crash reports and analytics, because a tool that cannot be debugged cannot be maintained — a legitimate interest, narrowed to what serves it, which is why no advertising identifier is collected and no profile is built. Where your law requires consent instead, the app asks for it before collecting.

Where it is held. On infrastructure run by Google and Cloudflare, which means it may be processed outside India and outside your own country, including in the United States. Both operate under the standard contractual terms that make those transfers lawful, and both are bound to process it only on our instructions.

[10]

Children, and changes

Not for under 13

Remote Coder is a developer tool and is not directed at children. We do not knowingly collect anything from a child under 13. If you believe a child has made an account, write to hello@remotecoder.dev and it will be deleted.

If this policy changes in a way that matters, the app and this page will say so before the change takes effect. Every revision is in the public git history of the site.

Questions

hello@remotecoder.dev — for anything on this page, including a request to see or delete what we hold. The licence agreement for the app itself is the terms.