···1313- **Real apps, not loose files.** Installed AppImages show up in your application menu with their real name and icon.
1414- **Install from anywhere.** Point it at a local file or paste a download link.
1515- **Updates without the pile-up.** A newer version replaces the old one.
1616+- **Verified updates.** Pins the publisher's signing key on first install, then refuses tampered or re-keyed updates.
1717+- **One-command rollback.** A bad update? Put the old version back instantly.
1618- **Stays out of the way.** It only touches launchers it created. Your Flatpaks and hand-made shortcuts are safe.
17191820## Installation
···36383739### Build from source
38403939-Requires Go 1.24+.
4141+Requires Go 1.25+.
40424143```bash
4244git clone https://github.com/alyraffauf/appherder.git
···8284appherder upgrade --check # just see what's out of date
8385```
84868787+Undo a bad update:
8888+8989+```bash
9090+appherder rollback foo # restore the version the last update replaced
9191+appherder rollback foo 1.2.3 # or restore a specific saved version
9292+```
9393+9494+appherder keeps the last few versions of each app and saves the current one whenever an install or upgrade replaces it.
9595+8596Coming from another AppImage tool? `appherder migrate` adopts the ones in `~/AppImages` and clears out launchers whose AppImage is gone.
9797+9898+## Verified updates
9999+100100+Some AppImages are signed by their publisher. The first time appherder installs a signed app, it pins that signing key. From then on, every update must be signed by the same key: an unsigned, tampered, or differently-signed build is refused instead of installed. Changing the trusted key is deliberate, so swapping publishers means uninstalling and reinstalling. Apps that aren't signed keep working as before; the pin only takes effect once a real signature has been seen.
101101+102102+`appherder list` shows each app's status in the **SIGNATURE** column: `pinned` (key locked in), `signed` (carries a signature appherder hasn't pinned yet), or `none`.
8610387104## Under the hood
88105