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

Rich Harvest

Author(s):

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.

Testing

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.

Unix Philosophy

Entering a number from the search results at the command line opens the selected application's page from the respective app store in your browser and offers to either download or install the app depending on the package (Figure 3). Following the Unix philosophy of "do one thing and do it well," Chob does not do any more than this.

Figure 3: Entering the number of the desired application takes you to the corresponding app store in your web browser. In the case of AppImage, you can download the application, while Flatpak and Snap let you install it.

Conclusions

Chob proves to be a useful little tool when it comes to finding software that is available in alternative package formats. You may even find applications for a given keyword that you didn't know existed, because the app stores offer numerous applications that are missing from many distributions' repositories.