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

# Installation

> Install, update, verify, and uninstall the Entire CLI.

## System Requirements

* macOS, Linux, or Windows
* Git 2.25 or later
* Bash, Zsh, Fish, or PowerShell
* Windows PowerShell 5.1 or later, for the Windows PowerShell installer

Building from source requires Go 1.26.6 or later.

## Release Channels

Entire ships two release channels:

* `stable`: the default channel for Homebrew, Scoop, `install.sh`, and `install.ps1`
* `nightly`: prerelease builds available through Homebrew, `install.sh`, and `install.ps1`

Scoop supports the stable channel only. For a nightly install on Windows, use `install.ps1`.

## Install and Update Entire

Choose one installation method. Use the update command in the same tab when you want a newer release.

**macOS with Homebrew**

Install the stable channel:

```bash theme={null}
brew install --cask entireio/tap/entire
```

Or install the nightly channel:

```bash theme={null}
brew install --cask entireio/tap/entire@nightly
```

The fully qualified cask name adds the `entireio/tap` tap for you, so no separate `brew tap` step is needed.

Update the channel you installed:

```bash theme={null}
brew upgrade --cask entireio/tap/entire
```

```bash theme={null}
brew upgrade --cask entireio/tap/entire@nightly
```

**Linux Install Script**

Install the stable channel:

```bash theme={null}
curl -fsSL https://entire.io/install.sh | bash
```

Or install the nightly channel:

```bash theme={null}
curl -fsSL https://entire.io/install.sh | bash -s -- --channel nightly
```

The script installs `entire` and `git-remote-entire` in `~/.local/bin`. If that directory is missing from your `PATH`, the script prints the command that adds it to your shell configuration.

Run the command for your channel again to update Entire.

**Linux Direct Download**

Download the stable AMD64 archive and install both executables:

```bash theme={null}
download_dir="$(mktemp -d)"
mkdir -p "$HOME/.local/bin"
curl -fsSL https://github.com/entireio/cli/releases/latest/download/entire_linux_amd64.tar.gz \
  -o "$download_dir/entire_linux_amd64.tar.gz"
tar -xzf "$download_dir/entire_linux_amd64.tar.gz" -C "$download_dir"
install -m 0755 "$download_dir/entire" "$download_dir/git-remote-entire" "$HOME/.local/bin/"
rm -rf "$download_dir"
```

For ARM64, replace `amd64` with `arm64` in the archive name:

```bash theme={null}
download_dir="$(mktemp -d)"
mkdir -p "$HOME/.local/bin"
curl -fsSL https://github.com/entireio/cli/releases/latest/download/entire_linux_arm64.tar.gz \
  -o "$download_dir/entire_linux_arm64.tar.gz"
tar -xzf "$download_dir/entire_linux_arm64.tar.gz" -C "$download_dir"
install -m 0755 "$download_dir/entire" "$download_dir/git-remote-entire" "$HOME/.local/bin/"
rm -rf "$download_dir"
```

Run the block for your architecture again to update Entire.

**Windows with PowerShell**

Install the stable channel from Windows PowerShell 5.1 or later:

```powershell theme={null}
irm https://entire.io/install.ps1 | iex
```

Or install the nightly channel:

```powershell theme={null}
iex "& {$(irm https://entire.io/install.ps1)} -Channel nightly"
```

For the stable channel, the script uses Scoop when Scoop is on your `PATH`, and it adds the Entire bucket first. Without Scoop, and for every nightly install, the script verifies the release checksum, installs `entire.exe` and `git-remote-entire.exe` in `%USERPROFILE%\.local\bin`, and adds that directory to your user `PATH`. Restart your terminal after the script changes your `PATH`.

The script accepts these options. Pass them with the script block form shown for the nightly channel, because `irm | iex` cannot forward arguments:

| Option | Effect |
| - | - |
| `-Channel` | Release channel to install, `stable` or `nightly`. Defaults to `stable`. |
| `-InstallDir` | Destination for a checksum verified install. Defaults to `$HOME\.local\bin`. Passing it selects the release archive even when Scoop is available. |
| `-NoPathUpdate` | Leave your user `PATH` unchanged. Applies to release archive installs, because Scoop manages its own `PATH` entry. |
| `-Help` | Print the usage message. |

> [!NOTE]
>
> In Git Bash, MSYS, or Cygwin, `install.sh` stops and points you to this installer.

Run the command for your channel again to update Entire.

**Windows with Scoop**

These commands drive Scoop directly. The PowerShell installer already uses Scoop for stable installs when Scoop is available.

Add the Entire bucket once, then install the stable channel:

```powershell theme={null}
scoop bucket add entire https://github.com/entireio/scoop-bucket.git
scoop install entire/entire
```

Update Scoop and Entire:

```powershell theme={null}
scoop update
scoop update entire
```

> [!NOTE]
>
> Use `entire/entire` for new installations. Scoop previously used `entire/cli`.

**Build from Source**

Install both executables:

```bash theme={null}
go install github.com/entireio/cli/cmd/entire@latest
go install github.com/entireio/cli/cmd/git-remote-entire@latest
```

Go writes them to `$(go env GOPATH)/bin`. Add that directory to your `PATH` if your shell cannot find `entire`.

Run both commands again to update the source installation.

## Verify the Installation

Run:

```bash theme={null}
entire version
```

Entire CLI 0.10.5 prints three lines. The Go version and platform reflect the release and system you installed:

```text theme={null}
Entire CLI 0.10.5
Go version: go1.26.6
OS/Arch: darwin/arm64
```

Release archives also include `git-remote-entire`. Git invokes this helper when a remote uses an `entire://` URL. Verify that your shell can find both executables:

**macOS or Linux**

```bash theme={null}
command -v entire
command -v git-remote-entire
```

**Windows**

```powershell theme={null}
Get-Command entire
Get-Command git-remote-entire
```

## Installation and Data Locations

The executable location depends on the installation method:

| Method | Location |
| - | - |
| Homebrew | The Homebrew prefix returned by `brew --prefix` |
| Linux install script or direct download | `~/.local/bin` |
| Windows PowerShell script without Scoop | `%USERPROFILE%\.local\bin`, or the `-InstallDir` you passed |
| Scoop | The directory returned by `scoop prefix entire` |
| Go | `$(go env GOPATH)/bin` |

Entire stores repository settings in `.entire/settings.json` and personal repository overrides in `.entire/settings.local.json`. See [Local, Project, and Global Settings](/guides/configuration/settings-layers) for those files.

The CLI also uses these directories for each user:

| Data | Default | Override |
| - | - | - |
| Login contexts, update state, and file based credentials | `~/.config/entire` | `ENTIRE_CONFIG_DIR` |
| Discovery caches | `~/.cache/entire` | `XDG_CACHE_HOME`, with `/entire` appended |
| Managed CLI plugins on macOS and Linux | `~/.local/share/entire/plugins` | `ENTIRE_PLUGIN_DIR`, or `XDG_DATA_HOME` with `/entire/plugins` appended |

`XDG_CONFIG_HOME` does not change the Entire config directory. Set `ENTIRE_CONFIG_DIR` when you need a different location.

## Control Update Prompts

Set this variable in scripts, CI, or other environments where the CLI should not prompt for an update:

```bash theme={null}
ENTIRE_NO_AUTO_UPDATE=1
```

## Shell Completion

Entire generates shell completion scripts for Bash, Zsh, Fish, and PowerShell with [`entire completion`](/cli-reference/completion). The steps below cover Bash and Zsh.

**Bash**

Add this command to `~/.bashrc`:

```bash theme={null}
source <(entire completion bash)
```

**Zsh**

Add this command to `~/.zshrc`:

```bash theme={null}
source <(entire completion zsh)
```

## Uninstall Entire

Use the command that matches your installation method.

**Homebrew**

Stable:

```bash theme={null}
brew uninstall --cask entireio/tap/entire
```

Nightly:

```bash theme={null}
brew uninstall --cask entireio/tap/entire@nightly
```

**Linux Install Script or Direct Download**

```bash theme={null}
rm -f "$HOME/.local/bin/entire" "$HOME/.local/bin/git-remote-entire"
```

**Windows PowerShell Script**

Remove both executables from the directory you installed them in:

```powershell theme={null}
Remove-Item "$HOME\.local\bin\entire.exe", "$HOME\.local\bin\git-remote-entire.exe"
```

The user `PATH` entry for that directory remains. Remove it if you no longer need the directory. If the script used Scoop, follow the Scoop tab instead.

**Scoop**

```powershell theme={null}
scoop uninstall entire
```

**Go**

```bash theme={null}
rm -f "$(go env GOPATH)/bin/entire" "$(go env GOPATH)/bin/git-remote-entire"
```

Uninstalling the executables does not remove repository settings, checkpoints, or user data. Inspect the paths under [Installation and Data Locations](#installation-and-data-locations) before removing data you no longer need.

## Review Recent Changes

Read the [Entire CLI changelog](https://github.com/entireio/cli/blob/main/CHANGELOG.md) for changes in each release.

Continue to the [Quickstart](/quickstart) to capture your first checkpoint.
