A command-line search tool for AppImage, Flatpak, and Snap

Rich Harvest

Article from Issue 229/2019

If you are looking for an application in AppImage, Flatpak, or Snap app stores, Chob lets you perform a keyword-based search from the command line.

The alternative package formats AppImage, Flatpak, and Snap can be found in almost all distributions. Some projects even rely entirely, or at least predominantly, on these modern constructs that include most dependencies in the package. For example, Fedora's Silverblue Workstation is completely based on Flatpak; Clear Linux OS supports Flatpaks, as well as in-house bundles. Endless OS is also increasingly taking this path to deliver software. Although Ubuntu mainly uses its Snap format in the cloud, it also offers an increasing number of Snap packages for its desktop versions.


These new formats are especially useful for testing new software versions. For instance, the LibreOffice developers recommend staying with the previous version and waiting a couple of minor releases before making the final switch for production use.

However, if you want to find out whether the new version fixes a certain bug, trying out a corresponding Flatpak does not conflict with the previously installed, production-use version. In the AppImage format, there are even four different development stages of LibreOffice letting you safely try out new features in advance.

Complex Search

What if you want to find out which applications are available in the new formats for a certain application genre? Until now, you had to manually search each of the app stores. Flathub [1], Snap Store [2], and AppImageHub [3] each offer hundreds or even thousands of apps in their respective formats.

To remedy this, Mohammed Kaplan has developed Chob [4], a command-line search engine that searches these app stores using a keyword. Chob is licensed under Apache v2, builds on Node.js, and is available on GitHub.

On Chob's download page [5], you will find a package in deb format, as well as the executable chob-linux for other distributions. The source code is also available. You can install the deb package in the usual way with:

dpkg -i chob

After downloading the chob-linux binary, first make it executable by typing

sudo chmod +x chob-linux

and then launch the tool by entering the program name followed by the search term.

To build the tool yourself, you will need to install at least the latest Node.js LTS version (currently version 10.x). Then drag the software from the repository (Listing 1, line 1) onto your hard disk, change to the newly created directory (line 2), and install the application (line 3).

Listing 1

Building Chob

01 $ git clone https://github.com/MuhammedKpln/chob.git
02 $ cd chob
03 $ npm install && yarn

No Options

Chob is easy to use, because apart from the parameter for the search word, the small tool has no options. If you enter chob music in a terminal emulator, or (depending on your version) ./chob-linux music, you will see a list of matches. In a test run, the list contained 15 applications that contained the string music (Figure 1).

Figure 1: Searching for music revealed 15 applications whose name contained that string.

Keeping with the LibreOffice example, searching with a keyword of office results in the four previously-mentioned development versions of LibreOffice as AppImages, one package each in the Flatpak and Snap formats, as well as other office suite packages (Figure 2).

Figure 2: Four versions of LibreOffice at different stages of development are available – a great example of the advantages of alternative package formats.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Introduction

    This month in Linux Voice.

  • FOSSPicks

    With the demise of Twitter API access to the beautiful open source client, Harpy, Graham has spent the month on fosstodon.org, hoping Harpy's developer brings their skills to the Fediverse.

  • Parcel Service

    The traditional package management systems on Linux are now somewhat outdated, but AppImage, Flatpak, and Snap see some interesting new management systems enter the fray.

  • bauh

    The bauh package manager can cope with Flatpaks, Snaps, AppImages, AUR, and native web apps.

  • unsnap

    If you want to move away from Ubuntu's Snap package format, the unsnap script removes snaps from your computer and replaces them with Flatpaks where possible.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More