A shepherd for your Appimages.
0

Configure Feed

Select the types of activity you want to include in your feed.

update docs

Aly Raffauf (Jun 20, 2026, 10:29 AM EDT) fa6ad5f8 4ba11af3

+19 -13
+12 -13
README.md
··· 5 5 <h3>A shepherd for your AppImages.</h3> 6 6 </div> 7 7 8 - AppHerder automatically installs, removes, and upgrades your AppImages. Throw them in `~/AppImages` and AppHerder does the rest: apps appear in your menu, deleted ones disappear from it, and supported apps update in place. 8 + AppHerder automatically installs, removes, and upgrades your AppImages. Throw them in `~/AppImages` and AppHerder does the rest: apps appear in your menu, deleted apps disappear, and supported apps update in place. 9 9 10 10 ## Features 11 11 12 12 - **Set it and forget it.** Watches `~/AppImages` and checks for updates in the background. 13 - - **Real apps, not loose files.** Installed AppImages show up natively in your application menu. 14 - - **Install from anywhere.** Point it at a local file or paste a download link. 15 - - **Updates without the pile-up.** A newer version replaces the old one. 13 + - **Real apps.** Installed AppImages show up natively in your application menu. 14 + - **In-place upgrades.** New versions seemlessly replace old ones. 16 15 - **Verified updates.** Pins the publisher's signing key on first install, then refuses tampered updates. 17 - - **One-command rollback.** A bad update? Put the old version back instantly. 18 - - **Stays out of the way.** It only touches launchers it created. Your Flatpaks and hand-made shortcuts are safe. 16 + - **Quick rollbacks.** Bad update? Put the old version back instantly. 17 + - **Stays out of the way.** Only touches launchers it creates. Your other apps are safe. 19 18 20 19 ## Installation 21 20 ··· 43 42 ```bash 44 43 chmod +x appherder-*-x86_64.AppImage 45 44 ./appherder-*-x86_64.AppImage install ./appherder-*-x86_64.AppImage 46 - appherder autosync 47 - appherder autoupgrade 45 + appherder autosync # Watch ~/AppImages 46 + appherder autoupgrade # Enable automatic app upgrades 48 47 ``` 49 48 50 - The install step copies it into `~/AppImages` and links it to `~/.local/bin/appherder` automatically. You may need to restart your terminal or run `export PATH="$HOME/.local/bin:$PATH"` for the command to be found. 49 + The install step copies it into `~/AppImages` and links it to `~/.local/bin/appherder` automatically. You may need to restart your terminal or run `export PATH="$HOME/.local/bin:$PATH"` for the app to be found. 51 50 52 51 ### Nix flake 53 52 ··· 76 75 appherder autoupgrade # check for updates once a day 77 76 ``` 78 77 79 - Then use `~/AppImages` like the place AppImages belong. Add a file and it gets a launcher. Remove a file and its launcher goes away. When an update is available, appherder installs it without leaving the old copy behind. 78 + Then use `~/AppImages` like the place AppImages belong. Add a file and it gets a launcher. Remove a file and its launcher goes away. When an update is available, appherder installs it in-place (no app restarts needed). 80 79 81 80 Install an app from a file or URL: 82 81 ··· 117 116 Undo a bad update: 118 117 119 118 ```bash 120 - appherder rollback foo # restore the version the last update replaced 119 + appherder rollback foo # restore the last version 121 120 appherder rollback foo 1.2.3 # or restore a specific saved version 122 121 ``` 123 122 124 123 AppHerder keeps the last few versions of each app and saves the current one whenever an install or upgrade replaces it. 125 124 126 - Coming from another AppImage tool? `appherder migrate` adopts the ones in `~/AppImages` and clears out launchers whose AppImage is gone. 125 + Coming from another AppImage tool? `appherder migrate` adopts the apps in `~/AppImages` and manages them for you. 127 126 128 127 ## Verified updates 129 128 130 - 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. 129 + 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. 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. 131 130 132 131 `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`. 133 132
+7
docs/Configuration.md
··· 36 36 | `max_saved_versions` | int | `3` | Number of prior versions kept for rollback. | 37 37 | `bin_dir` | string | `~/.local/bin` | Directory for `appherder link` symlinks. | 38 38 39 + Note that if you change `appimages_dir` or `bin_dir` you will need to regenerate the systemd units that make AppHerder automatic: 40 + 41 + ```bash 42 + appherder autosync 43 + appherder autoupgrade 44 + ``` 45 + 39 46 ## Source overrides 40 47 41 48 The `[sources]` table overrides the update source for an app, taking priority over the embedded `.upd_info` ELF section. The key is the app name (the filename without `.appimage`).