A shepherd for your Appimages.
0

Configure Feed

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

20 1 0

Clone this repository

https://tangled.org/aly.codes/appherder https://tangled.org/did:plc:dnzn6t3scwrj6k4zkff7am5b
git@tangled.org:aly.codes/appherder git@tangled.org:did:plc:dnzn6t3scwrj6k4zkff7am5b

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Tests License: GPL v3 Ko-fi

appherder

A herder for your AppImages.

Install AppImages so they act like real apps instead of loose files in your Downloads.

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.

Features#

  • Shows up like a real app. Lands in your application menu with its real name and icon.
  • Uninstalls cleanly. Remove an app and its launcher and icon go with it. No leftovers.
  • 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.
  • Won't touch your other apps. It only removes launchers it made itself, so your Flatpaks, Snaps, and hand-made shortcuts are safe.
  • Quiet when nothing changed. Re-installing an unchanged app does nothing. Drop your AppImages in one folder and appherder sync lines everything up.

Installation#

Download a binary#

Grab appherder-linux-amd64 (or -arm64) from the latest release, then:

chmod +x appherder-linux-amd64
sudo mv appherder-linux-amd64 /usr/local/bin/appherder

Nix flake#

nix run github:alyraffauf/appherder

Or nix profile install github:alyraffauf/appherder to keep it around.

Build from source#

Requires Go 1.24+.

git clone https://github.com/alyraffauf/appherder.git
cd appherder
go build ./cmd/appherder

Usage#

appherder install ~/Downloads/Foo-x86_64.AppImage    # install one
appherder uninstall foo                              # remove one
appherder sync                                       # match your apps to what's in ~/AppImages
appherder migrate                                    # adopt apps another tool set up

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).

Coming from another AppImage tool? appherder migrate adopts the ones in ~/AppImages and clears out launchers whose AppImage is gone, leaving everything else alone.

Under the hood#

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.

License#

GPLv3.