# Fully offline mode

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/help/idea/2026.3/llms.txt).

Due to security regulations in your company, the internet access could be restricted. However, the company can configure the air-gapped environment that would allow you to work with your remote project.

While the air-gapped environment is the best solution in such case, keep in mind that clients will need to be downloaded and saved locally. Moreover, they would need to be downloaded and saved again each time you want to use the new version of IntelliJ IDEA.

Procedure: Set up the air-gapped environment

1. [Download and unpack](https://data.services.jetbrains.com/products/download?code=JCD&platform=linux_x86-64) the JetBrains Client Downloader.

> **Note:**
> The version of JetBrains Client Downloader needs to be 1849 or later.
>
>
>
> The script supports Linux only.

2. On the server, which has the internet access to JetBrains servers, run the script with filters of the product (IDE), version or build number, platform (of machines that are used by developers locally). Also, run `--download-backends` flag that downloads backends matching the given filters.

Check the following example:

```SHELL
/bin/bash jetbrains-clients-downloader --products-filter IU --build-filter 223.7255.1 --include-eap-builds --platforms-filter linux-x64 --download-backends Desktop/backends
```

* `--products-filter IU`: this is IntelliJ IDEA Ultimate

* `--build-filter 223.7255.1`: this is the latest EAP release number. Since the number of the build changes frequently, use the official IntelliJ IDEA [download page](https://www.jetbrains.com/idea/download/other.html) for the correct build number.

* `--platforms-filter linux-x64`: this is your local Linux laptop, so the Linux archives are downloaded

* `Desktop/backends`: this is the target directory where you download clients archives

> **Note:**
> If the filters are not used, then by default, everything gets downloaded.

For the detailed syntax, run the following command:

```SHELL
jetbrains-clients-downloader -h
```

3. Run the script without the `--download-backends` flag.

After downloading the backends, clients, and JBR, you can host them internally, according to your company's policies.

4. Set up a web server, such as `nginx`, on the machine that hosts the backends and clients storage.

The URLs of this server are the values that you specify in the JetBrains Gateway settings files.

5. Install or update the standalone [JetBrains Gateway](jetbrains-gateway.html#manual_launch).

The alternative way to update JetBrains Gateway is to use the [Toolbox App](https://www.jetbrains.com/help/toolbox-app/introduction.html).

> **Note:**
> The version of JetBrains Gateway needs to be 223.7571.203 or later.

6. To configure JetBrains Gateway for the air-gapped environment, create a separate file for each of the settings that describe what you have downloaded:

* `productsInfoUrl`: a path to `products.json` that was generated by the backend's downloader (it could be `http://`, or `https://`) > **Note:** > `<PRODUCT_CODE>` is the exact placeholder that JetBrains Gateway replaces with the corresponding product code.

* `clientDownloadUrl`: a path for clients that you got from the clients' downloader (it could be `http://`, or `https://`)

* `jreDownloadUrl`: a path for JBR that you got from the clients' downloader (it could be `http://`, or `https://`)

* `pgpPublicKeyUrl`: a URL to the `KEYS` file that was downloaded with the clients builds.

Check the following examples:

* `$ cat productsInfoUrl` `https://internal.site/backends/<PRODUCT_CODE>/products.json`

* `$ cat clientDownloadUrl` `https://internal.site/clients/`

* `$ cat jreDownloadUrl` `https://internal.site/jre/`

* `$ cat pgpPublicKeyUrl` `https://internal.site/KEYS`

> **Note:**
> Creating separate files is applicable for macOS and Linux only.

Place the created files in the system location on the developers' local machines:

macOS:

* For the user-specific settings: `/Users/UserName/Library/Application Support/JetBrains/RemoteDev/`

* For the system-wide settings: `/Library/Application Support/JetBrains/RemoteDev/`

Linux:

* For the user-specific settings: `$HOME/.config/JetBrains/RemoteDev/`

* For the system-wide settings: `/etc/xdg/JetBrains/RemoteDev/`

Windows:

* For the user-specific settings: use the `HKEY_CURRENT_USER` registry

* For the system-wide settings: use the `HKEY_LOCAL_MACHINE` registry

In `SOFTWARE\JetBrains\RemoteDev`, create a string for each setting with its appropriate value.

![Windows](https://resources.jetbrains.com/help/img/idea/2026.3/offline_mode.png)

## Configure the version management of JetBrains Client

In some cases, you might need to control local JetBrains Client versions.

For that purpose, you need to set a value for the `versionManagementEnabled` parameter in OS registry named `OsRegistryConfigProvider`. The location of the registry depends on your OS.

macOS:

For the whole system:

```
/Library/Application Support/JetBrains/JetBrainsClient/config.json
```

For a specific user:

```
~/Library/Application Support/JetBrains/JetBrainsClient/config.json
```

Write a json object with a parameter `versionManagementEnabled` and a value `"true"`.

If you want this parameter disabled, add `"false"` instead of `"true"`.

Example of the `json` file:

```JSON
{
    "versionManagementEnabled": "true"
}
```

> **Note:**
> Alternatively, you can create a separate config file with the name `versionManagementEnabled` and the value `false` inside to disable the automatic management.

Linux:

For the whole system:

```
/etc/xdg/JetBrains/JetBrainsClient/config.json
```

For a specific user:

```
~/.config/JetBrains/JetBrainsClient/config.json
```

or other XDG_CONFIG_HOME if specified: https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html

Write a JSON object with a parameter `versionManagementEnabled` and a value `"true"`.

```JSON
{
    "versionManagementEnabled": "true"
}
```

If you want this parameter disabled, add `"false"` instead of `"true"`.

> **Note:**
> Alternatively, you can create a separate config file with the name `versionManagementEnabled` and the value `false` inside to disable the automatic management.

Windows:

For the whole system:

```
HKEY_LOCAL_MACHINE/SOFTWARE/JetBrains/JetBrainsClient
```

For a specific user:

```
HKEY_CURRENT_USER/SOFTWARE/JetBrains/JetBrainsClient
```

Create `REG_SZ` or `REG_EXPAND_SZ` entry with `versionManagementEnabled` as the key and `true` as a value.

## Troubleshooting

If you encounter a problem, make sure you check the following:

* Make sure you have downloaded the correct client for the IDE you are currently using.

* When submitting JetBrains Gateway logs to the support, include the ones from the local machine.

* Make a screenshot from the step where the files were configured.

