# Linux Installation (/desktop/install/linux)

Instructions for installing Jan on Linux.

## Install Jan [#install-jan]

<Callout type="info">
**Flatpak is the recommended way to install Jan on Linux.** It runs on any distribution and updates automatically through Flathub. Use the `.deb` or AppImage only if you can't use Flatpak.
</Callout>

<Tabs items={['Flatpak (recommended)', '.deb (Ubuntu/Debian)', 'AppImage']}>
<Tabs.Tab>

Install from [Flathub](https://flathub.org/apps/ai.jan.Jan):

```bash
flatpak install flathub ai.jan.Jan
```

Then launch it:

```bash
flatpak run ai.jan.Jan
```

If you don't have the Flathub remote set up yet:

```bash
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```

</Tabs.Tab>

<Tabs.Tab>

[Download the `.deb`](https://app.jan.ai/download/latest/linux-amd64-deb), then install it:

```bash
sudo apt-get install ./jan-linux-amd64-{version}.deb
```

Or with `dpkg`:

```bash
sudo dpkg -i jan-linux-amd64-{version}.deb
```

</Tabs.Tab>

<Tabs.Tab>

[Download the AppImage](https://app.jan.ai/download/latest/linux-amd64-appimage), then run it:

```bash
chmod +x jan-linux-x86_64-{version}.AppImage
./jan-linux-x86_64-{version}.AppImage
```

</Tabs.Tab>
</Tabs>

## Updating Jan [#updating-jan]

How Jan updates depends on which package you installed:

<Tabs items={['Flatpak (recommended)', 'AppImage', '.deb (Ubuntu/Debian)']}>
<Tabs.Tab>

Flatpak updates through Flathub along with the rest of your system. The in-app updater is disabled — your package manager handles it:

```bash
flatpak update ai.jan.Jan
```

</Tabs.Tab>
<Tabs.Tab>

The AppImage supports Jan's **built-in auto-updater**. When a new release is available, Jan downloads and applies it in place, then restarts.

</Tabs.Tab>
<Tabs.Tab>

The `.deb` package is **not updated by the in-app updater** — the auto-updater only ships the AppImage as the Linux update artifact. Update the `.deb` manually by downloading the latest package and reinstalling:

```bash
sudo apt-get install ./jan-linux-amd64-{version}.deb
```

Your data folder (`~/.local/share/Jan`) and configuration (`~/.config/Jan`) are preserved across reinstalls.

</Tabs.Tab>
</Tabs>

## Compatibility [#compatibility]

- **OS:** Debian/Ubuntu, Fedora/RHEL, Arch, openSUSE
- **CPU:** AVX2 required — Intel Haswell (2013+), AMD Excavator (2015+)
- **Memory:** 8GB minimum (16GB recommended)
- **GPU:** 6GB VRAM minimum
- **Storage:** 10GB free space minimum

## Jan Data Folder [#jan-data-folder]

Jan stores all your data locally — downloaded models, conversation threads, settings, and logs generated from using the app. Nothing is sent to the cloud.

Default location (resolves via `XDG_DATA_HOME`):

```bash
~/.local/share/Jan/data
```

The path to Jan's per-user configuration file (which records the data folder location) lives at `~/.config/Jan/`.

See [Jan Data Folder](/desktop/data-folder) for details.

## GPU Acceleration [#gpu-acceleration]
Configuration for GPU support:

<Tabs items={['NVIDIA GPU', 'AMD GPU', 'Intel Arc GPU']}>

<Tabs.Tab>
<Steps>

### Step 1: Verify Hardware & Install Dependencies [#step-1-verify-hardware--install-dependencies]

**1.1. Check GPU Detection**

```sh
lspci | grep -i nvidia
```

**1.2. Install Required components**

**NVIDIA Driver:**

1. Install the [NVIDIA Driver](https://www.nvidia.com/en-us/drivers/), ideally via your package manager.
2. Verify:

```sh
nvidia-smi
```

**CUDA Toolkit:**

1. Install the [CUDA toolkit](https://developer.nvidia.com/cuda-downloads), ideally from your package manager (**11.7+**)
2. Verify:

```sh
nvcc --version
```

**Additional Requirements:**

```sh
sudo apt update
sudo apt install gcc-11 g++-11 cpp-11
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
```
[Documentation](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions)

### Step 2: Enable GPU Acceleration [#step-2-enable-gpu-acceleration]

1. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Model Providers** > **Llama.cpp**
2. Select an appropriate backend in **Backend**. Details in our [llama.cpp guide](/desktop/local-engine/llama-cpp).

<Callout type="info">
CUDA offers better performance than Vulkan.
</Callout>

</Steps>

</Tabs.Tab>

<Tabs.Tab>
Requires Vulkan support.

1. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Hardware** > **GPUs**
2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/desktop/local-engine/llama-cpp).

</Tabs.Tab>

<Tabs.Tab>
Requires Vulkan support.

1. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>) > **Hardware** > **GPUs**
2. Select appropriate backend in **llama-cpp Backend**. Details in our [guide](/desktop/local-engine/llama-cpp).
</Tabs.Tab>

</Tabs>

## Uninstall Jan [#uninstall-jan]

Removal commands:
<Tabs items={['Flatpak', '.deb (Ubuntu/Debian)', 'AppImage']}>
<Tabs.Tab>

```bash
flatpak uninstall ai.jan.Jan
rm -rf ~/.local/share/Jan   # data folder (models, threads, logs)
rm -rf ~/.config/Jan        # app configuration
```
</Tabs.Tab>
<Tabs.Tab>

```bash
sudo apt-get remove jan
rm -rf ~/.local/share/Jan   # data folder (models, threads, logs)
rm -rf ~/.config/Jan        # app configuration
```
</Tabs.Tab>
<Tabs.Tab>

```bash
rm jan-linux-x86_64-{version}.AppImage
rm -rf ~/.local/share/Jan   # data folder (models, threads, logs)
rm -rf ~/.config/Jan        # app configuration
```
</Tabs.Tab>
</Tabs>

<Callout type="warning">
These commands permanently delete application data.
</Callout>
