From 44dfa536959bfdec5f56c86c317e1a2fb37b3eb1 Mon Sep 17 00:00:00 2001 From: Ishan Malu Date: Wed, 2 Sep 2026 17:54:26 +0300 Subject: [PATCH] Add a one-command install, so the quarantine step is not the visitor's job Perch is signed but not notarized, and will stay that way for now, so macOS quarantines every download and blocks the first launch. The instructions therefore ended with asking a stranger to paste an xattr command, which is where most people stop. The script does what those instructions described: reads the latest release, downloads the image, checks it against the published checksum and refuses to continue without one, installs it, clears the quarantine flag, and starts it. No sudo, and it falls back to ~/Applications if /Applications is not writable. Everything happens in a temp directory the trap cleans up, including the mount. Piping into a shell is a real thing to be wary of, so the page and the README both show how to read it first rather than pretending otherwise. Run against the live 1.8.5 release before committing: installs, signature still valid, quarantine cleared, app running, no mount left behind. --- README.md | 22 +++++++++++- docs/index.html | 23 +++++++++++-- docs/install.sh | 90 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 3 deletions(-) create mode 100755 docs/install.sh diff --git a/README.md b/README.md index f7bd9bc..57aea8c 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,27 @@ Night mode · Disk cleaning · Screen, keyboard and trackpad cleaning ## Install Perch is free, open source, and needs macOS 14 or later. The binary is -universal — Apple silicon and Intel — and about 4 MB. +universal — Apple silicon and Intel — and about 6 MB. + +### One command + +```bash +curl -fsSL https://ishanmalu.github.io/Perch/install.sh | bash +``` + +Fetches the latest release, checks it against the published checksum, installs +it, clears the flag macOS puts on downloads, and starts it. It asks for no +privileges and touches nothing outside the app. + +Piping a script into a shell means trusting it, which is a fair thing to be +wary of. Read it first if you would rather: + +```bash +curl -fsSL https://ishanmalu.github.io/Perch/install.sh -o install.sh +less install.sh && bash install.sh +``` + +Updates after this install themselves — press Check in the panel footer. ### Download the DMG diff --git a/docs/index.html b/docs/index.html index 53535f6..0052d74 100644 --- a/docs/index.html +++ b/docs/index.html @@ -899,12 +899,31 @@

Install

Free, and takes about a minute.

- + +
-
+
+

+ Fetches the latest release, checks it against the published checksum, installs it, + clears the flag macOS puts on downloads, and starts it. Asks for no privileges. +

+
curl -fsSL https://ishanmalu.github.io/Perch/install.sh | bash
+

+ Piping a script into a shell means trusting it, which is a fair thing to be wary of. + Read it first if you would rather: +

+
curl -fsSL https://ishanmalu.github.io/Perch/install.sh -o install.sh
+less install.sh && bash install.sh
+

+ Then grant Accessibility access under System Settings → Privacy & Security → + Accessibility, and press ⌃⌥Space. Updates after this install themselves. +

+
+ +