> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Installation

## Install

<div class="gb-stepper">

<div class="gb-step">

**Download the CLI**

The CLI can be installed using Curl (native), Homebrew or npm (deprecated).

<div class="gb-tabs">

<div class="gb-tab">
<p class="gb-tab-title">Native</p>

```
curl -fsSL https://get.tessl.io | sh
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">Homebrew</p>

```
brew tap tesslio/tap #  Recommended as of Homebrew 6.0.0
brew trust tesslio/tap #  Recommended as of Homebrew 6.0.0
brew install tesslio/tap/tessl
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">winget</p>

```sh
winget install tessl.tessl
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">npm (deprecated)</p>

```
npm install -g @tessl/cli
```

</div>

</div>

</div>

<div class="gb-step">

**Test the CLI**

Run the following command to check that everything is working.

```shell-session
tessl --help
```

</div>

<div class="gb-step">

**Authenticate with Tessl \[optional]**

Log in to Tessl to access all CLI functionality:

```shell-session
tessl login
```

- This will display a verification code and URL

```
Please log in at the URL below (if your browser didn't open automatically):

  https://auth.tessl.io/device

Then confirm the following code:

  XYZA-BCDE

⠏ Waiting for confirmation…
```

- Open the URL in your browser and login to Tessl with either your GitHub or Google account.

<figure><img src="/gitbook-assets/image (16) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>

- Once authenticated, you can enter the device code in your browser window.

<figure><img src="/gitbook-assets/image (17) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>

:::info

If your organization uses the EU region, run this command instead of `tessl login` above. It requires CLI 0.114.0 or later. The CLI remembers the region for later commands. See [Using the EU region](/administrators/eu-region.md).

```shell-session
tessl login --region eu
```

:::

You can now verify your authentication status with:

```shell-session
tessl whoami
```

To log out when needed:

```shell-session
tessl logout
```

</div>

</div>

## Automatic Updates

The Tessl CLI automatically checks for updates and installs them in the background. Updates run silently without interrupting your workflow.

- Updates check every 3 hours by default
- Updates only occur when you run CLI commands; they might briefly delay command exit
- To disable automatic updates, set `TESSL_AUTO_UPDATE_INTERVAL_MINUTES=0`
- Update logs are saved to `~/.tessl/auto-update.log` for troubleshooting

:::info

Automatic updates are disabled in CI environments and on `winget`

:::

## Manual Update

To manually update your CLI to the latest version:

<div class="gb-tabs">

<div class="gb-tab">
<p class="gb-tab-title">Native</p>

```shell-session
tessl cli update
```

This command will update your CLI to the latest version for your current release channel.

</div>

<div class="gb-tab">
<p class="gb-tab-title">Homebrew</p>

```shell-session
tessl cli update
```

This command will update your CLI to the latest version for your current release channel.

</div>

<div class="gb-tab">
<p class="gb-tab-title">winget</p>

```sh
winget upgrade tessl.tessl
```

Running `tessl cli update` will provide a hint to use `winget upgrade tessl.tessl` instead

</div>

<div class="gb-tab">
<p class="gb-tab-title">npm (deprecated)</p>

```shell-session
npm update -g @tessl/cli
```

</div>

</div>

## Update to Specific Version

You can find all releases in the [changelog](/changelog-cli.md). To install/upgrade to a specific version:

<div class="gb-tabs">

<div class="gb-tab">
<p class="gb-tab-title">Native</p>

Example to update to a specific version:

```sh
tessl cli update --target 0.86.0
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">Homebrew</p>

Installing a specific version is not supported in `brew`. To update to a specific version execute:

```sh
tessl cli update --target 0.84.0
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">winget</p>

Example to update to a specific version:

```sh
winget upgrade tessl.tessl --version 0.84.0
```

Running `tessl cli update` will provide a hint to use `winget upgrade tessl.tessl` instead

</div>

<div class="gb-tab">
<p class="gb-tab-title">npm (deprecated)</p>

Example to install a specific version:

```sh
npm install -g @tessl/cli@0.84.0
```

</div>

</div>

## Uninstall

<div class="gb-tabs">

<div class="gb-tab">
<p class="gb-tab-title">Native</p>

```sh
rm -rf ~/.local/bin/tessl ~/.local/share/tessl
```

To remove Tessl config files, delete the `~/.tessl` directory

</div>

<div class="gb-tab">
<p class="gb-tab-title">Homebrew</p>

```sh
brew uninstall tessl
rm -rf ~/.local/bin/tessl ~/.local/share/tessl
```

To remove Tessl config files, delete the `~/.tessl` directory

</div>

<div class="gb-tab">
<p class="gb-tab-title">winget</p>

```sh
winget uninstall tessl.tessl
```

</div>

<div class="gb-tab">
<p class="gb-tab-title">npm (deprecated)</p>

Determine which `npm` Tessl package you have:

```sh
npm ls -g | grep tessl
```

To uninstall `@tessl/cli`

```sh
npm uninstall -g @tessl/cli
```

To uninstall `tessl`

```sh
npm uninstall -g tessl
```

Remove the native binaries:

```sh
rm -rf ~/.local/bin/tessl ~/.local/share/tessl
```

To remove Tessl config files, delete the `~/.tessl` directory

</div>

</div>
