Perch

Privacy Policy

Perch for iPhone · in force 22 August 2026 · revision 1

Most policies begin by explaining what a company takes. This one is an inventory instead, because Perch takes nothing: every value the app holds is listed below, and all of it sits inside your own phone.

Section 01

Reach of this document

This document governs the Perch iPhone app, everything the app puts elsewhere in iOS — its Home Screen and Lock Screen widgets, its Control Center buttons, its Siri phrases and Shortcuts actions, its Home Screen quick actions — and the four pages served at perchremote.com.

Perch is written and published by Alexa Pan. Throughout this page, "we" means that publisher and no one else; there is no group of companies behind Perch and no partner with a stake in it.

Section 02

The claim, stated plainly

Perch gathers no information about you. It has no sign-up, no profile, no usage counters, no crash reporting, no advertising, and no server of its own to send anything to. Nothing you do in the app is measured, and nothing about your phone is transmitted anywhere except to the television you point it at.

That claim is easy to make and easy to check, so the rest of this page is written to be checked. The next section names every value the app writes down. The one after it names every connection the app is capable of opening. If a piece of information is not on those two lists, the app does not have it.

Two supporting facts, for anyone who wants the technical version. The app ships a privacy manifest that declares an empty set of collected data types, tracking switched off, and a single accessed-API reason code — 1C8F.1, the code for reading and writing the app's own preferences. And the binary links no third-party library at all, which is why the app's Licenses & Notices screen has nothing to list — an empty page there is the honest result, not an oversight.

Section 03

Inventory of stored values

Everything below is written to a preferences container shared between the app and its own widget extension, inside the app's sandbox on your iPhone. Perch keeps no files, no database, and nothing in the keychain. It does not use iCloud, so none of this syncs to your other devices or to Apple's servers.

The table is exhaustive. Every entry carries the internal name of the stored value, so that the list can be checked against the app rather than taken on trust: these fifteen names are the complete set the software knows how to write.

Stored asWhat it holdsWhy it exists
Saved televisions
state.roster
Up to ten entries, five values each: the identifier the television reports for itself — a fixed string belonging to that piece of hardware, or, when the set reports none, a number computed from its address and port; the display name reported by the device; its address on your network; its port; and when you last used it. All five describe the television, not you, and none of them is sent anywhere So the app can reconnect without searching again, and can tell one saved set from another after either has changed address
Chosen television
state.activeDeviceID
Which of those entries is currently in front of you So the remote, the widgets and Siri all aim at the same device
Widget and control setup
state.surface.…, prefs.widget.deviceID, prefs.widget.key, prefs.control.deviceID
Which device and which key each widget or Control Center button is wired to So a tile keeps doing the same thing
Favourite keys
prefs.favoriteKeys
Up to four key names you picked To fill the Quick Keys widget
Last action
state.lastAction
A timestamp, whether it succeeded or failed, and which saved device it went to. Not which button you pressed. To draw the "last used 12 min ago" line on a widget
Demo flag
state.demoMode
Whether Demo Mode is on So widgets know not to touch the network either
Demo seen
prefs.demoOpened
Whether you have opened Demo Mode at least once. One true-or-false value, nothing about what you did there So the app stops highlighting a suggestion you have already taken
Intro finished
prefs.onboardingComplete
Whether the opening screens are done with So they are not shown again
Feel and sound
prefs.hapticsEnabled, prefs.keyClickSound
Haptics on or off, key-click sound on or offOrdinary settings
Volume hint shown
prefs.volumeHintAnswered.…
Whether the note about volume has already appeared for a particular saved deviceSo the same hint is not repeated every evening
Change counters
state.generation.…
One whole number per process, raised by one on each write. It carries no content of any kind — it is a tally, not a record So the app and its widget notice each other's edits without polling

Three things are worth calling out because people expect them to be stored and they are not. Text you type for the television is held only while the typing sheet is open and is sent straight through; the app keeps no drafts and no history. Your button presses are not logged — there is no command history anywhere in the app. The apps installed on your television are shown in the Apps tab from a fresh answer by the television each time; their names and icons come from your own hardware, not from us, and we never learn what you have installed.

Section 04

Traffic on your network

Perch is a local-network program. Every connection it opens by itself terminates on a device sitting on the same local network as your iPhone. There is no cloud tier in the middle, so your presses are never relayed through anyone.

Finding a television

When you ask Perch to look for hardware, it does three narrow things and then stops. It listens for one kind of Bonjour advertisement on your network. It reads your phone's own address and subnet mask from iOS to work out which addresses are worth trying. It then opens brief connections to a bounded number of those addresses to see which of them answer — at most a thousand or so, never on networks larger than a few thousand hosts, and the whole sweep gives up after about nine seconds. Addresses that do not answer are forgotten immediately; the app never builds or keeps a map of your home network, and it never reports one anywhere.

Driving a television

Once a device is chosen, Perch opens a single WebSocket to it and keeps that one connection for the session. Your key presses, your keyboard text and the list of installed apps travel over that socket and nowhere else. Closing the app closes the socket.

The only time Perch reaches the public internet

Tapping Contact Support, Privacy Policy or Terms of Use inside the app opens the corresponding page of this website in an in-app browser view. That happens because you tapped, it fetches an ordinary static page, and it is the sole route out of your home network in the entire product. If you are offline the app says so and offers to copy the link rather than pretending to load.

Section 05

What your TV is told

Handshakes work in both directions, so it is only fair to say what your television learns about your phone. When Perch introduces itself it sends a friendly client name — the string Perch for iPhone, assembled from the app's own name — two fixed capability values stating that this client has no microphone, and the answer to the challenge the television itself has just sent — a hash of that challenge and a fixed constant, which says nothing about you or your phone. That is the whole introduction. Your phone's name, your Apple Account, your contacts and your location are not part of it, because the app never reads them in the first place.

What your television does with that exchange is governed by whoever made the television, under their own privacy terms, not ours.

Section 06

Outside parties

Perch shares no user data with anyone, because it holds none to share. There is no analytics vendor, no advertising network, no crash reporter, no artificial-intelligence service, no payment processor, no parent or affiliated company, and no third-party software development kit compiled into the app. Consequently there is no arrangement under which any outside party could receive information about you from Perch, and no such arrangement will be entered into without this policy being rewritten first and the revision date at the top of this page being changed.

The single company that unavoidably knows you installed the app is Apple, through the App Store, on Apple's own terms — the same as for any iPhone app. Perch receives none of that; we cannot see who downloaded it or how often it is opened.

Section 07

Keeping and erasing

Retention questions usually turn on how long a company holds records. Here the answer is structural: the values in Section 03 live on your iPhone for exactly as long as you leave them there, and we hold nothing at all, so there is no copy anywhere for us to keep or to purge.

Erasing part of it

  • Swipe a television off the list in Settings → your saved devices to drop that entry and everything remembered about it.
  • Reset a widget or a Control Center button by editing it, which rewrites the value that tile stores.

Erasing all of it

Delete Perch from your iPhone. iOS destroys the app's container together with the shared preferences, and every value in Section 03 goes with it. Nothing survives the deletion, on the phone or anywhere else, and there is no account left behind to close.

If you would rather ask us

Write to help@perchremote.com and we will answer honestly, which in almost every case will be that we hold no record of you to produce or destroy. If your message itself contains personal details, say so and we will delete the correspondence once your question is settled.

Section 08

The one permission

Perch asks iOS for exactly one thing, Local Network access, and the app explains why on a plain screen with a single button before the system prompt appears. The permission text reads: "Perch finds your TV on this network and delivers every key you tap on the remote." That is the entire use.

No other protected resource is requested. There is no microphone, camera, photo, location, contacts, calendar, notification, motion or health access anywhere in the app or its extension. The clipboard is written to once, when you tap Copy Link on a legal page, and is never read.

You can take the permission back at any moment in iOS Settings → Privacy & Security → Local Network, or in iOS Settings → Perch. The app is built to survive that: it shows an explanatory screen rather than a dead end, and Demo Mode keeps working so you can still look around. Only the ability to reach real hardware goes away, which is the honest consequence and not a penalty.

Section 09

Advertising and tracking

Perch shows no advertising, carries no advertising identifier, and follows you across no other app or website. The App Tracking Transparency prompt that iOS puts up will never appear for Perch, and the reason is worth stating precisely: that prompt exists so a developer can ask for permission to track, and we have nothing to ask about. The app's privacy manifest declares tracking as false with an empty list of tracking domains, which is the machine-readable form of this same paragraph.

Perch is also not funded by data. It is free, it contains no purchases and no subscriptions, and nothing inside it is unlocked by giving up information.

Section 10

Visiting this website

These four pages are plain HTML on a server we run. They set no cookies, load nothing from anyone else's servers — no fonts, no scripts, no analytics, no embedded anything — and there is no form to fill in.

The web server keeps an ordinary access log: the requesting address, the page asked for, the time, and the browser's own description of itself. It exists so we can notice an attack on the server, it is never linked to anything from inside the app, and entries are discarded after fourteen days.

Section 11

Younger users

A remote control is a household object, and children live in households, so Perch is rated for all ages and built to be safe for one to pick up. Since the app gathers nothing from anybody, it gathers nothing from a child either, and there is no message field, no chat, no user-generated content and no external link inside it other than the three legal pages of this site.

Section 12

Future revisions

If a later version of Perch ever needs to collect or transmit something, this page will be rewritten and its date and revision number changed before that version reaches the App Store, and the change will be described in the app's release notes. We will not quietly widen an existing sentence to cover a new practice. The wording published here is always the wording in force, and it is what applies to the build on your phone today.

Section 13

Reaching a person

Questions about this policy, requests about your information, or anything that reads wrong to you:

Email — help@perchremote.com
Telephone — +1 534 444 8801

Replies come from a person, usually within two working days. The support page lists the same details alongside answers to the questions that come up most.