> ## Documentation Index
> Fetch the complete documentation index at: https://ngrok.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the ngrok CLI

> Install the ngrok CLI on your platform, turn on shell tab completion, and keep the binary up to date with the built-in update command.

## Install

Follow the [CLI Quickstart](https://ngrok.com/docs/gateway/endpoints/agent-cli-quickstart.md#install-the-ngrok-cli) or visit the [download page](https://download.ngrok.com) to install and set up the ngrok agent.

## System requirements

### Supported platforms

The ngrok CLI runs on all major platforms including Linux, macOS, Windows, and most CPU architectures.
See the [ngrok agent download](https://download.ngrok.com) page for details.
It's also distributed as a Docker container.

| OS | Supported Architectures |
| - | - |
| Windows | 64-bit, 32-bit (`x86-64`, `x86`) |
| MacOS | Intel, Apple Silicon (`x86-64`, `arm64`) |
| Linux | `x86-64`, `x86`, `arm`, `arm64`, `mips`, `mips64`, `mips64le`, `mipsle`, `ppc64`, `ppc64le`, `s390x` |
| FreeBSD | `x86-64`, `x86`, `arm` |

If the CLI doesn't run on your target platform, you can still use ngrok via the [SDKs](https://ngrok.com/docs/agent-sdks.md) or the [SSH Reverse Tunnel Agent](https://ngrok.com/docs/gateway/agent/ssh-reverse-tunnel-agent.md).

### Resource requirements

The ngrok CLI is lightweight enough to run most everywhere, even on many embedded platforms.
Its resource usage depends on how much concurrent traffic you drive through it.
If you have stricter resource requirements, you can still use ngrok via the [SDKs](https://ngrok.com/docs/agent-sdks.md) or the [SSH Reverse Tunnel Agent](https://ngrok.com/docs/gateway/agent/ssh-reverse-tunnel-agent.md).

| Resource | Value |
| - | - |
| Memory | 64MB minimum, 128MB recommended |
| Disk | 25MB |
| CPU | No requirement |

> [!TIP]
>
> You can reduce memory usage in the ngrok agent by disabling [inspection in the configuration file](https://ngrok.com/docs/gateway/agent/config/v3.md#inspect-db-size).

## Tab completion

The ngrok agent has built-in tab completion which makes it easy to navigate its command and flags by hitting tab in your terminal when using a `bash` or `zsh` shell.
Add tab-completion to your shell session with:

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
. <(ngrok completion)
```

Install it permanently by following the documentation for the [`ngrok completion` command](https://ngrok.com/docs/gateway/agent/cli/#ngrok-completion).

## Updates

The ngrok agent can update itself even if you didn't install it with a package manager.
Update the ngrok agent with the [`ngrok update`](https://ngrok.com/docs/gateway/agent/cli/#ngrok-update) command.

```bash theme={"theme":{"light":"css-variables","dark":"css-variables"}}
ngrok update
```

By default, the ngrok agent automatically checks for available updates when it runs.
If an update is available, it prompts you to update by pressing `Ctrl+U`.
You can configure whether the agent checks for updates via the [`update_check` config parameter](https://ngrok.com/docs/gateway/agent/config/v3/#update-check).

You can configure which release channel (for example, `stable`, `beta`) the agent uses for updates via the [`update_channel` config parameter](https://ngrok.com/docs/gateway/agent/config/v3/#update-channel).

## Why did my antivirus flag the download?

ngrok isn't a virus, and ngrok, Inc. signs every release.
If your antivirus flags a signed copy, the flag is a false positive.
[Verify your copy](https://ngrok.com/docs/faq/is-ngrok-a-virus/#verify-your-copy), then add an exception and report the false positive to your antivirus vendor.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.