Skip to main content

Linux - AppImage

Lovingly crafted AppImage tools and resources. Follow me on Twitter.

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

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.
  • Linux App Store - Universal app store for Linux applications in AppImage, Flatpak, and Snap formats (project abandoned).

App centers

  • NX Software Center - Portable Software Center for portable AppImage applications.
  • AppImagePool - Simple, modern AppImageHub Client, powered by flutter.

App scrapers

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.

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

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.

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

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.

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

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.

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

Deployment tools for Flash applications

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.

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

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.

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

Documentation

Tutorials

Articles

Videos

Books

  • Mastering Qt 5 - Contains a section on how to package and deploy Qt applications for Linux using linuxdeployqt.

Blogs

Courses

Community

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.

Other awesome lists

Contribute to this list: https://github.com/AppImage/awesome-appimage