Support

Perch runs no servers, so there is no account to recover and no data of yours for us to look up. Almost everything is a question about your own gateway, and the fastest answer usually comes from its logs.

Get help

Email sunim.54@gmail.com. Please say which platform and version you are on. Settings → About has both.

The public issue tracker opens with the source release; until then email is the only channel, and it is read.

Report content

Every agent message in Perch carries a Report action. Two things happen, and they are independent:

Your data, and deleting it

Perch runs no servers, so almost nothing of yours exists anywhere but your own phone and your own gateway. Full steps, and exactly what is deleted or kept, are on the delete my data page.

Security

Report a vulnerability privately to sunim.54@gmail.com rather than in public. Perch holds no user data and operates no infrastructure, so the interesting surface is the pairing credential and what a paired dashboard token can read. Both are described in the privacy policy.

Join the Android test

Perch is in closed testing on Google Play. It takes two steps, and the second one is the one people miss:

  1. Join the testers group. This is what admits you.
  2. Open the opt-in link and press Become a tester, then install from Play as normal.

Free, and leaving is one tap in Play. Opting in collects nothing from you; Perch has no servers to collect it with.

Setup scripts

Everything Perch might ask you to run on the machine your agent lives on. They are plain shell, they print every change before making it, and the app tells you to download them rather than pipe them into a shell. Reading something before you run it on your own machine is reasonable, and a pipe takes that away from you.

Each one is downloaded and run in two steps:

curl -fsSL https://aryaminus.github.io/perch-site/pair.sh -o pair.sh
bash pair.sh

install-approval-bridge.sh installs a small plugin into your gateway so an approval reaches your phone while Perch is closed. The plugin is two files, and you can read them first: plugin.yaml and __init__.py. It publishes one line to your ntfy topic: that a decision is waiting, and never the command itself.