# About the PW CLI

> Source: https://parallelworks.com/docs/cli

The Parallel Works command-line interface (PW CLI) offers a streamlined way to interract with your compute and storage resources from a terminal.

## Installation

By default, the PW CLI is pre-installed on user workspaces, cloud clusters, and existing clusters. You can open a terminal on the ACTIVATE platform and immediately use any PW CLI command.

For existing clusters, the PW CLI is installed in a folder named `pw` inside your home directory.

### Install Script (Recommended)

The easiest way to install the PW CLI is with the install script, which automatically detects your operating system and architecture. This works on Linux and macOS:

```bash
curl -fsSL https://activate.parallel.works/cli/install.sh | bash
```

By default, the CLI is installed to `~/.local/bin`. You can specify a custom install location with the `--to` flag:

```bash
curl -fsSL https://activate.parallel.works/cli/install.sh | bash -s -- --to /usr/local/bin
```

:::info PATH Configuration
If `~/.local/bin` is not already on your PATH, the installer will provide instructions for adding it.
:::

### Manual Installation

If you prefer to download the binary manually, or are on Windows, follow the instructions below for your operating system and device's chip type.

**Linux, AMD**

```bash
mkdir -p ~/bin
wget "https://activate.parallel.works/cli/pw-linux-amd64" -O ~/bin/pw
```

**Linux, ARM**

```bash
mkdir -p ~/bin
wget "https://activate.parallel.works/cli/pw-linux-arm64" -O ~/bin/pw
```

**macOS, Apple Silicon**

```bash
mkdir -p ~/bin
wget "https://activate.parallel.works/cli/pw-darwin-arm64" -O ~/bin/pw
echo 'export PATH="$PATH:$HOME/bin"' >> ~/.zshrc # adjust if not using zsh
```

**macOS, Intel**

```bash
mkdir -p ~/bin
wget "https://activate.parallel.works/cli/pw-darwin-amd64" -O ~/bin/pw
echo 'export PATH="$PATH:$HOME/bin"' >> ~/.zshrc # adjust if not using zsh
```

**Windows, AMD**

```powershell
$dest = "$env:LOCALAPPDATA\Programs\pw"
New-Item -ItemType Directory -Force -Path $dest
curl.exe -L "https://activate.parallel.works/cli/pw-windows-amd64.exe" -o "$dest\pw.exe"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$dest", [EnvironmentVariableTarget]::User)
```

**Windows, ARM**

```powershell
$dest = "$env:LOCALAPPDATA\Programs\pw"
New-Item -ItemType Directory -Force -Path $dest
curl.exe -L "https://activate.parallel.works/cli/pw-windows-arm64.exe" -o "$dest\pw.exe"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$dest", [EnvironmentVariableTarget]::User)
```

## Authentication

User workspaces and existing clusters are pre-authenticated. You can access the PW CLI and immediately interact with your compute and storage resources.

For cloud clusters, you must first authenticate either with an API key or a token.

#### API Key

First, create an API key by following [these instructions](/docs/account-settings/authentication#managing-api-keys) in our user guide.

Next, use the `pw auth apikey` command by following [these instructions](/docs/cli/pw/auth/apikey).

#### Token

First, create a token by following [these instructions](/docs/account-settings/authentication#managing-tokens) in our user guide.

Next, use the `pw auth token` command by following [these instructions](/docs/cli/pw/auth/token).

## About URIs

When using the CLI to interact with buckets, you will see them identified by a Uniform Resource Identifier (URI).

URIs function similarly to URLs. In fact, URLs are a type of URI. URIs, however, do not have to point to a location on a network; they only serve to identify a resource.

In the screenshot below, we used the PW CLI to list our buckets in a table format. Each bucket has a URI that's exclusive to the ACTIVATE platform, which takes the form of `pw://namespace/bucket`.

There is also a URI that's exclusive to a bucket's CSP, such as:

- `gs://google-bucket-name`
- `s3://aws-bucket-name`
- `https://azure-bucket-name.blob.core.windows.net/azure-bucket-name`

Buckets will only display a CSP URI if they have already been provisioned.

![Screenshot of buckets listed in a terminal on the ACTIVATE platform.](/content-images/docs/cli/cli-buckets-running-table.png)
_A screenshot of provisioned buckets, displayed in a terminal as a table_
