A shepherd for your Appimages.
0

Configure Feed

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

Update README.md

Aly Raffauf (Jun 17, 2026, 8:28 PM EDT) c3c2acb8 d2e28afe

+67
+67
README.md
··· 1 + [![Tests](https://github.com/alyraffauf/appherder/actions/workflows/tests.yml/badge.svg)](https://github.com/alyraffauf/appherder/actions/workflows/tests.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 + 3 + <div align="center"> 4 + <h1>appherder</h1> 5 + <h3>A herder for your AppImages.</h3> 6 + <p>Install AppImages so they act like real apps instead of loose files in your Downloads.</p> 7 + </div> 8 + 9 + On its own, an AppImage is just an executable in a folder. No icon, no menu entry, nothing in your launcher. appherder fixes that: point it at an AppImage and you get a real app, kind of like dropping something into Applications on macOS. Delete it later and everything it set up goes too. 10 + 11 + ## Features 12 + 13 + - **Shows up like a real app.** Lands in your application menu with its real name and icon. 14 + - **Uninstalls cleanly.** Remove an app and its launcher and icon go with it. No leftovers. 15 + - **Upgrades replace instead of piling up.** appherder names an app by what's inside it, not the download's filename, so a newer version of `Foo` just replaces the old one. 16 + - **Won't touch your other apps.** It only removes launchers it made itself, so your Flatpaks, Snaps, and hand-made shortcuts are safe. 17 + - **Quiet when nothing changed.** Re-installing an unchanged app does nothing. Drop your AppImages in one folder and `appherder sync` lines everything up. 18 + 19 + ## Installation 20 + 21 + ### Download a binary 22 + 23 + Grab `appherder-linux-amd64` (or `-arm64`) from the [latest release](https://github.com/alyraffauf/appherder/releases/latest), then: 24 + 25 + ```bash 26 + chmod +x appherder-linux-amd64 27 + sudo mv appherder-linux-amd64 /usr/local/bin/appherder 28 + ``` 29 + 30 + ### Nix flake 31 + 32 + ```bash 33 + nix run github:alyraffauf/appherder 34 + ``` 35 + 36 + Or `nix profile install github:alyraffauf/appherder` to keep it around. 37 + 38 + ### Build from source 39 + 40 + Requires Go 1.24+. 41 + 42 + ```bash 43 + git clone https://github.com/alyraffauf/appherder.git 44 + cd appherder 45 + go build ./cmd/appherder 46 + ``` 47 + 48 + ## Usage 49 + 50 + ```bash 51 + appherder install ~/Downloads/Foo-x86_64.AppImage # install one 52 + appherder uninstall foo # remove one 53 + appherder sync # match your apps to what's in ~/AppImages 54 + appherder migrate # adopt apps another tool set up 55 + ``` 56 + 57 + Installing copies the AppImage into `~/AppImages`, so you can delete the original download. That folder is the source of truth: add or remove files there and `appherder sync` matches your launchers to it. To uninstall, use the name the file has in `~/AppImages` (without `.appimage`). 58 + 59 + Coming from another AppImage tool? `appherder migrate` adopts the ones in `~/AppImages` and clears out launchers whose AppImage is gone, leaving everything else alone. 60 + 61 + ## Under the hood 62 + 63 + 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. 64 + 65 + ## License 66 + 67 + [GPLv3](LICENSE.md).