---
title: "Run CAT on Linux"
description: "Run CAT on Linux — CAT CLI as a single executable, or the PowerShell module under PowerShell 7: install, use, what works and what does not"
url: "https://docs.justcat.it/how-to-guides/licensing-and-admin/cat-on-linux/"
---
# Run CAT on Linux


Two of the four CAT tools run on Linux. **CAT CLI** is a single self-contained executable — nothing has to be installed first, which makes it the tool for a container or a locked-down machine. The **PowerShell module** needs PowerShell 7.6 or later and gives you test results as PowerShell objects. The Python module is Windows-only; CAT Studio is a Windows application.

Neither tool has, on Linux, the providers built on Windows components (`Dax@*`, `PowerBI@*`, `CsvOleDB@1`, `ExcelOleDB@1`), and the Excel output needs `libgdiplus` installed. Databases, CSV and YAML files, the JSON/YAML/JUnit/TRX and database outputs — all there.

## Install CAT CLI

Download the archive for your architecture (`uname -m` prints `x86_64` for x64, `aarch64` for arm64), check its hash, unpack it and link it onto `PATH`. Replace `<version>` with the current version from the [Releases](https://docs.justcat.it/releases/ "Releases") page; the lines are chained with `&&`, so a failed hash check stops the sequence before anything is unpacked:

~~~~bash
curl -fLO https://docs.justcat.it/releases/cat-cli-<version>-linux-x64.tar.gz && \
curl -fLO https://docs.justcat.it/releases/cat-cli-<version>-linux-x64.tar.gz.sha256 && \
sha256sum -c cat-cli-<version>-linux-x64.tar.gz.sha256 && \
sudo rm -rf /opt/catcli && \
sudo mkdir -p /opt/catcli && \
sudo tar -xzf cat-cli-<version>-linux-x64.tar.gz -C /opt/catcli && \
sudo ln -sfn /opt/catcli/catcli /usr/local/bin/catcli
~~~~

Homebrew works on Linux too: `brew install justcatit/cat/catcli`.

Your distribution needs `curl` and **ICU** installed — desktop distributions have both, a minimal container image does not; [Installation](https://docs.justcat.it/reference/cat-cli/installation/#prerequisites-1 "CAT CLI installation — prerequisites") has the install command for each distribution. Then:

~~~~bash
catcli --version
cd /path/to/your/project
catcli run
~~~~

See [CAT CLI installation](https://docs.justcat.it/reference/cat-cli/installation/ "CAT CLI installation") for updating, removing and the no-`sudo` variant, and [CAT CLI introduction](https://docs.justcat.it/reference/cat-cli/introduction/ "CAT CLI introduction") for the verbs.

## Install PowerShell 7

Microsoft has a nice article with step-by-step instructions to install PowerShell 7 on Ubuntu. At the moment Focal, Jammy and Noble are supported:

<a href="https://learn.microsoft.com/en-us/powershell/scripting/install/install-ubuntu?view=powershell-7.6" target="_blank">https://learn.microsoft.com/en-us/powershell/scripting/install/install-ubuntu?view=powershell-7.6</a>


## Install the CAT PowerShell module

First, you need to run PowerShell 7:

~~~bash
pwsh
~~~

PowerShell prints its version. Notice it also changes the prompt, now you are "in PowerShell", not "in bash". The prompt now starts with "PS" letters:

![pwsh command in bash](bash-pwsh.png)

Your terminal now expects PowerShell commands. You can easily install CAT with a single line, the same way as on Windows:

~~~~pwsh
Install-Module CAT -AcceptLicense -Force -AllowClobber -Scope CurrentUser
~~~~

## Use the PowerShell module

Now you can use any commands from CAT [PowerShell module](https://docs.justcat.it/reference/powershell-module/introduction/ "PowerShell module").

Don't forget you need to run `Import-Module CAT` everytime before you use CAT module. Example:

![CAT commands in PowerShell](cat-commands.png)

For non-interactive way, you can save your commands into a .ps1 script and run it like this:

~~~~bash
pwsh ./run-cat-tests.ps1
~~~~

## Related

* [CAT in cron](https://docs.justcat.it/how-to-guides/pipelines-and-schedulers/cat-in-cron/ "CAT in cron") — scheduling CAT on Linux.
* [CAT CLI installation](https://docs.justcat.it/reference/cat-cli/installation/ "CAT CLI installation") — the reference, including arm64, updating and removing.
* [PowerShell module](https://docs.justcat.it/reference/powershell-module/introduction/ "PowerShell module") — the reference, including the Linux file locations.

