A shepherd for your Appimages.
0

Configure Feed

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

README.md: fix caps

Aly Raffauf (Jun 18, 2026, 12:59 PM EDT) e5cdcafb 6fe410e9

+6 -6
+6 -6
README.md
··· 1 1 [![CI](https://github.com/alyraffauf/appherder/actions/workflows/ci.yml/badge.svg)](https://github.com/alyraffauf/appherder/actions/workflows/ci.yml) [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) [![Ko-fi](https://img.shields.io/badge/Donate-Ko--fi-ff5e5b?logo=ko-fi&logoColor=white)](https://ko-fi.com/alyraffauf) 2 2 3 3 <div align="center"> 4 - <h1>appherder</h1> 4 + <h1>AppHerder</h1> 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 ones disappear from it, and supported apps update in place. 9 9 10 10 ## Features 11 11 ··· 85 85 appherder install https://example.com/Foo.AppImage 86 86 ``` 87 87 88 - See what you have, remove what you don't: 88 + See what you have, remove what you don't want: 89 89 90 90 ```bash 91 91 appherder list ··· 121 121 appherder rollback foo 1.2.3 # or restore a specific saved version 122 122 ``` 123 123 124 - appherder keeps the last few versions of each app and saves the current one whenever an install or upgrade replaces it. 124 + AppHerder keeps the last few versions of each app and saves the current one whenever an install or upgrade replaces it. 125 125 126 126 Coming from another AppImage tool? `appherder migrate` adopts the ones in `~/AppImages` and clears out launchers whose AppImage is gone. 127 127 128 128 ## Verified updates 129 129 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. 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. 131 131 132 132 `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 133 134 134 ## Under the hood 135 135 136 - appherder reads the AppImage's squashfs filesystem directly to grab its icon and desktop entry, then writes a launcher pointing back at the file in `~/AppImages`. It does this without ever running the AppImage, unlike tools that launch it to unpack. Everything it writes is tagged, so uninstall and sync only touch its own files. 136 + AppHerder reads the AppImage's filesystem directly to grab its icon and desktop entry, then writes a launcher pointing back at the file in `~/AppImages`. It does this without ever running the AppImage, unlike tools that launch it to unpack. Everything it writes is tagged, so uninstall and sync only touch its own files. 137 137 138 138 ## License 139 139