Awesome
<!--lint disable double-link--> <div align="center"> <div> <img width="500" src="media/logo.svg" alt="Awesome AppImage"> </div> <a href="https://awesome.re"> <!img src="https://awesome.re/badge-flat2.svg" alt="Awesome"> </a> <p> <sub>Lovingly crafted AppImage tools and resources. Follow me on <a href="https://twitter.com/probonopd">Twitter</a>.</sub> </p> <br> </div>Awesome AppImage
AppImage is a community-based format to distribute applications to various mainstream Linux distributions without the need for a centralized store. One app = one file! This list contains tools to work with AppImages, such as to create AppImages for applications and to integrate AppImages into the system easily. As the vibrant community around AppImage is growing, so is this list.
Contents
- AppImage discovery
- AppImage consumption tools
- AppImage developer tools
- Low-level tools
- Build systems
- Deployment tools for compiled applications
- Deployment tools for Python applications
- Deployment tools for Electron applications
- Deployment tools for Windows applications
- Deployment tools for Java applications
- Deployment tools for .NET Core (Mono) applications
- Deployment tools for Flash applications
- Deployment tools for Rust applications
- Tools to convert from other package formats
- Metadata tools
- QC tools
- Continuous integration
- Libraries
- Templates
- Resources
AppImage discovery
App catalogs
- AppImage.GitHub.io - Catalog of AppImages that passed an automated test, links to upstream download pages.
- Get AppImage - Collection of all AppImages in one website. Great search functionality.
App stores
- AppImageHub.com - Downloadable AppImages, powered by Opendesktop.org.
- pling.com - Open store where creators can publish their libre products and creative content including AppImages.
- App Outlet - Universal app store that works with AppImages, Flatpaks and Snaps.
- Manjaro Software Discover - Web-based app store that contains applications in multiple formats, including AppImage.
App centers
- NX Software Center - Portable Software Center for portable AppImage applications.
- AppImagePool - Simple, modern AppImageHub Client, powered by flutter.
App scrapers
- appimages.scraper - Search for AppImage releases over the web.
- AppImageRadar - Search for AppImage-related activity on GitHub using Travis CI.
AppImage consumption tools
Desktop integration
- Getting Started Managing Software with AppImage on Ubuntu - Verbosely explains how to manage AppImages without the need for further software.
- go-appimaged - Optional daemon that integrates AppImages into the system (experimental).
- appimaged - Optional daemon that integrates AppImages into the system (deprecated).
- AppImageLauncher - Integrates into users' systems and establishes a single
~/Applications
directory, assisting the user to move AppImages into there, with support for updating and removing AppImages through apps launcher. - appimage2desktop - Creates a desktop file and an icon in the system for an AppImage, nothing else.
- appimagehelper - Program for creating, deleting, controlling and organizing shortcuts to AppImage.
- LinuxPA - PortableApps.com type launcher for Linux with AppImage support.
- AppImage Desktop Maker - Creates menu entries for AppImages without the need for a daemon.
- Thumbnailer for AppImages - Generates icons for AppImages that are shown in file managers of GNOME and KDE compatible desktop environments.
- XApp Thumbnailers - Thumbnailers for GTK Desktop Environments, including one for the AppImage file format. Makes Gtk based file managers like Caja (MATE), Nautilus (GNOME), Nemo (Cinnamon), PCManFM (LXDE), and Thunar (Xfce) show application icons on AppImages.
- AppImage To Gnome - Monitors and (de)installs AppImages from the Gnome desktop.
- AppImage-Integrator - A simple program to integrate AppImages into the Linux desktop written in Qt6.
- gnome_appimage_installer - Somewhat a misnomer (AppImages don't need to be "installed"), creates a desktop file that follows the freedesktop.org spec for your AppImage files; written in bash.
- Gear lever - Integrates AppImages into the Gnome desktop by drag-and-drop onto the Gear lever application.
Updaters
- AppImageUpdate - Official grapical application to update AppImages; command-line tool to update AppImages.
- AppImageUpdater - Simple updater for humans written in C++ and Qt.
- appimage-update - AppImage Update implementation written in Go.
Sandboxes
- Firejail - Optional sandbox with support for AppImage built in.
- AppImage Sandboxing Project - Golang library to help sandbox AppImages with bwrap.
Package managers
Note: The AppImage format is explicitly designed not to need any package managers or similar tools. Everything can be done in the file manager (and an optional daemon for system integration).
- appimage-manager - Command-line tool for managing AppImages allowing to search, install, remove and update applications.
- bauh - Graphical user interface for managing Linux applications supporting AppImage, Arch (repositories/AUR), Flatpak, Snap and native Web applications.
- homebrew-appimage - Linuxbrew AppImage Formulae.
- AIPM - A Package Manager for AppImages.
- Zap - AppImage package manager. Downloads the AppImage if it does not exist. If it already exists, updates it with AppImageUpdate. Integrates AppImage into the system.
- RookiePM - Package manager for AppImages and Shell Scripts.
- AppMan - AppImage Manager that works like APT or Pacman.
- jewelrystore - Command line AppImage store made in ruby.
- ayy - Package manager for AppImage. Single, static, dependency free binary. Written in Go.
- leap - Fast and simple AppImage manager. Written in Rust.
- Bread - Download, update, remove, and run AppImages from GitHub on the command line, and integrate apps into the desktop.
Linux distributions
Although the AppImage format was carefully designed not to need any special support from Linux distributions, there are some that offer varying degrees of AppImage friendliness out of the box.
- Deepin - When you double-click an AppImage or any other executable file that lacks execute permissions, a user-friendly dialog explains the situation and asks for your permission to set the execute permission and execute the executable.
- Nitrux - Promotes the use of AppImage as the main format for getting applications, has a built in app center featuring AppImages.
- Linux Mint - Has an AppImage thumbnailer to show application icons on AppImage files.
- Zenwalk GNU Linux - Is "AppImage ready" and distributes some applications in AppImage format.
AppImage developer tools
Low-level tools
- appimagetool - Converts AppDirs into AppImages.
- nix-bundle - Converts Nix derivations into AppImages.
Build systems
- appimagecraft - Recipe based AppImage creation tool working from source.
- appimage-builder - Recipe based AppImage creation tool working from source.
- KDE Craft - Build system used by KDE that can produce AppImages and other formats.
- appimage-tooling - Ruby tooling to generate Appimages.
- AppImage.cmake - CMake script which facilitates generating AppImage executables for Linux.
- rules_appimage - Bazel rules to package any lang_binary target as AppImage.
Deployment tools for compiled applications
- go-appimagetool - Tool that deploys dependencies into AppDirs, and converts AppDirs into AppImages (experimental).
- linuxdeployqt - Deploys dependencies into AppDirs and creates AppImages; for Qt and other compiled applications.
- linuxdeploy - AppDir creation and maintenance tool using plugins.
Deployment tools for Python applications
- python-appimage - Ready to use AppImage distributions of Python (can be modified to include your application).
- linuxdeploy-plugin-python - Bundle Python into an AppDir using a source distribution and linuxdeploy.
- linuxdeploy-plugin-conda - Bundle Python into an AppDir using a source distribution, Conda, and linuxdeploy.
- Briefcase - Convert Python project into a standalone native application, e.g., using AppImage.
- pycharm-appimage-support - Deploy Python project as an AppImage directly from the PyCharm IDE.
- PyAppImage - Ultimately simple python-to-appimage bundler.
Deployment tools for Electron applications
- electron-builder - Supports AppImage as an output format.
- electron-forge-maker-appimage - Electron Forge builder for AppImage.
- Appnativefy - Create AppImage with embedded Electron browser from any website.
Deployment tools for Windows applications
- wine32-deploy - Creates AppImages for 32-bit Windows applications that can run on 64-bit Linux systems without multilib installed.
- AppImage For WINE - WINE-based AppImages and LD_PRELOAD based patches to launch WINE from AppImages.
- ferion11/Wine_Appimage - AppImage for WINE 32bits from PlayOnLinux, an run on no-multilib systems.
- GameImage - GameImage is a way to package up games with either Wine or an Emulator into a portable AppImage that could be useful for the Steam Deck.
Deployment tools for Java applications
- nbPackager - Packages NetBeans Platform Application with a JRE for AppImage, Linux, macOS and Windows.
Deployment tools for .NET Core (Mono) applications
- Publish-AppImage for .NET - Publish AppImages for .NET applications.
- .NET Core AppImage example - Example of how to deploy .NET Core (Mono) applications as an AppImage using
dotnet publish -f netcoreapp3.1 -r linux-x64
from within a.cs
program. - PupNet Deploy - Cross-platform deployment utility which publishes your .NET project and packages it as a ready-to-ship installation file in a single step.
- DotnetPackaging - Tool to distribute .NET applications in the AppImage format.
Deployment tools for Flash applications
- flash-to-appimage - Script to package a Flash game (
.swf
) into an AppImage.
Deployment tools for Rust applications
- Cargo AppImage - Cargo program that allows you to convert your Rust programs into AppImages.
Tools to convert from other package formats
- pkg2appimage - Converts from deb, zip, tar.gz and other formats to AppImage using YAML recipes.
- appimage2pkg - Repack AppImage and make rpm/deb which does not require FUSE.
- flatpak2appdir - Turn Flatpak into AppDir which in turn can be turned into AppImage.
- make-portable - Deploys installed application to AppDir, uses strace to fetch all file system calls and copies all accessed files in to AppDir including glibc.
- AppImage cobbler - Python application that takes strace.log and turns it into a directory suited for an AppImage.
- Elements - Tool to generate single-file, runc-based AppImages using a minimal (~3 MB compressed) Alpine Linux rootfs.
- arch2appimage - Python script to convert any Arch Linux package (official/AUR) to an AppImage.
- appimage-bash - GitHub Action for creating AppImage releases from binaries inside
.tar.gz
archives. - Package-to-appimage - Tool for converting
.deb
and.rpm
packages into AppImage format by using Docker. - GMAppImager - Graphically Converts GameMaker Studio 2 games to AppImage bundles.
- AppImaGen - Generates an AppImage from Debian or from a PPA of your choice for the previous (unfortunately not the oldest as recommended) and still supported Ubuntu LTS.
Metadata tools
- AppStream Generator - Very simple generator for AppStream MetaInfo files which application authors can use to add metadata (like descriptions, screenshots, links) to their AppImage.
- AppStream MetaInfo Creator - More elaborate generator for AppStream MetaInfo files by the author of the AppStream metainfo format.
QC tools
- appimage-testsuite - AppImage testing environment based on Docker containers for various Linux distributions.
- appimagelint - Tool to check AppImages for compatibility, best practices etc.
Continuous integration
- GitHub Actions example - Example of how to upload AppImages built using GitHub Actions to GitHub Releases.
- appimage.yml - Bigger, more complex example of how to build and upload AppImages using GitHub Actions.
- build-appimage-action - GitHub Action for producing AppImages using appimage-builder.
- jniltinho/packages - Drone.io example for producing AppImages using go-appimagetool.
- Link to the latest build artifact on GitLab CI - Example of how to directly link to the latest build artifact on GitLab CI (can be tricky).
Libraries
- QAppImageUpdate - Qt5 library and plugin for updating AppImages, can be embedded into applications.
- AppImageServices - D-Bus services providing a high-level interface over the AppImage manipulation libraries for file managers, software centers and other tools.
- libappimage - Implements functionality for dealing with AppImage files, written in C++ using Boost.
- libzsync-go - Zsync implementation written in Go that can be used to update AppImages.
- appenv - Small C++ library telling where the app data resides and where the user data is by using
readlink("/proc/self/exe")
), thus allowing C++ applications to become relocatable in the filesystem.
Templates
- Qt Desktop Template - Template for creating Qt Widgets desktop applications with AppImage generation using linuxdeployqt.
- qt-hello-world - Qt Hello World project for AppImage creation using appimage-builder.
- qt-qml-project-template-with-ci - Template for a Qt/QML application with batteries included: GitHub CI, automated GUI testing, automatic code-format checks and more. Compiles for Linux (AppImage), Mac, and Android.
- mini-qml - Minimal Qml application template with deployment for Linux (AppImage), Windows, macOS and WebAssembly.
- wxWidgetsTemplate - Cross-platform application template for wxWidgets C++, with pre-set files and IDE projects, supporting AppImage.
- Briefcase Linux AppImage Template - Cookiecutter template for building Python apps that will run under Linux, packaged as an AppImage.
Resources
Specs
- AppImageSpec - Official specification for the AppImage format.
- Desktop Entry Specification - Specification for the matadata used inside AppImages.
Documentation
- docs.appimage.org - Official AppImage documentation.
- appimage-builder.readthedocs.io - Documentation of appimage-builder, includes tutorials, examples, and more.
Tutorials
- Produce an AppImage that bundles everything with go-appimage - How to make an AppImage that bundles all required libraries so that it should run not only on newer, but also on older systems than the build system.
Articles
- The Background Story of AppImage - Interview with the creator of AppImage, explaining the key ideas and motivations behind the concept.
- Flatpak, Snap and AppImage - Jesse Smith on DistroWatch about AppImage, Flatpak and Snap.
- Don't Install, Just Copy with klik - Article from 2005 that gives perspective on how AppImage started, relevant only for historical reasons now.
Videos
- AppImage: Portable applications for Linux - Official AppImage introduction video by its founder.
- Comparing Linux Package Formats - Deb, Flatpak, AppImage, etc. - By Bryan Lunduke.
- AppImage: Universal Linux Apps, Overview and Thoughts - By Jeremy "Jay" LaCroix, LearnLinuxTV.
- AppImage system integration on Ubuntu using go-appimaged - New appimaged daemon from the go-appimage implementation.
- Integrate and Manage AppImages with AppImageLauncher - By Eric Adams.
Books
- Mastering Qt 5 - Contains a section on how to package and deploy Qt applications for Linux using linuxdeployqt.
Blogs
- Planet AppImage - Blog Aggregator covering all things AppImage.
- TheAssassin Blog - Blog covering AppImage related topics by TheAssassin.
- AppImage Crafters Blog - Blog about AppImage creation an usage by azubieta.
Courses
Community
- #AppImage channel on libera.chat - Chat where AppImage developers and users hang out, be prepared to stay in the channel for days if you don't get answers immediately.
- discourse.appimage.org - Official AppImage forum for users and application developers.
- Stack Overflow - Questions tagged
[appimage]
on Stack Overflow. - r/AppImage/ - AppImage subreddit.
Miscellaneous
- AppImage wiki - Official AppImage wiki.
- AppImageZip - Experimental pure Rust implementation of the AppImage runtime that uses Zip as the backing file system image.
- help-wanted - AppImage issues that the AppImage team would like your help with. A great way to get started contributing to the project.
- appdwarf - A tool to convert an AppDir or an existing AppImage file, either as a local file or from a URL, into a highly compressed portable image using dwarfs.
Related
- Similar projects - Comparison to other packaging systems.
Other awesome lists
- awesome-linuxdeploy - Awesome list on linuxdeploy.
- All Awesome Lists - All the Awesome lists on GitHub.