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

# How to Install photo-cli on macOS, Windows, and Linux

> Step-by-step instructions to install photo-cli as a self-contained executable, via Homebrew, as a .NET global tool, or in a container (Docker, Podman), including PATH troubleshooting.

photo-cli runs on macOS, Windows, and Linux across arm64, x64, and x86 architectures. You can install it as a self-contained executable, through Homebrew on macOS and Linux, as a .NET global tool on any platform, or in a container (Docker, Podman). Choose the method that fits your operating system below.

## Prerequisites

photo-cli requires the **.NET SDK 10 or later** when installing as a .NET tool. The `dotnet` command must be available on your PATH before you install photo-cli as a .NET tool.

You can install the .NET SDK in two ways:

* Download directly from [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download)
* Install via Homebrew on macOS or Linux:

```bash theme={null}
brew install dotnet-sdk --cask
```

<Note>
  If you install photo-cli via Homebrew on macOS, the .NET SDK is bundled automatically and you do not need to install it separately.
</Note>

## Installation

<Tabs>
  <Tab title="Homebrew">
    Homebrew is the recommended installation method on macOS and Linux. It handles all dependencies, including the .NET runtime, and keeps photo-cli up to date automatically.

    <Steps>
      <Step title="Add the photo-cli Homebrew tap">
        Register the photo-cli tap so Homebrew can find the package:

        ```bash theme={null}
        brew tap photo-cli/homebrew-photo-cli
        ```

        The tap is hosted at [https://github.com/photo-cli/homebrew-photo-cli](https://github.com/photo-cli/homebrew-photo-cli).
      </Step>

      <Step title="Install photo-cli">
        Install the package from the tap:

        ```bash theme={null}
        brew install photo-cli
        ```

        You can also run both commands in a single line:

        ```bash theme={null}
        brew tap photo-cli/homebrew-photo-cli && brew install photo-cli
        ```
      </Step>

      <Step title="Verify the installation">
        Confirm that photo-cli is available in your terminal:

        ```bash theme={null}
        photo-cli --version
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="Container">
    Pull the published photo-cli [image from DockerHub](https://hub.docker.com/r/photocli/photocli) with Docker or Podman:

    ```bash Docker theme={null}
    docker pull photocli/photocli
    ```

    ```bash Podman theme={null}
    podman pull docker.io/photocli/photocli
    ```

    See the [container usage example](/reference/container) for a worked `archive` command that mounts your photographs and output directory as bind mounts.
  </Tab>

  <Tab title=".NET Tool">
    You can install photo-cli as a .NET global tool on any platform where the .NET SDK is available.

    <Steps>
      <Step title="Install the .NET SDK">
        Download and install the .NET SDK 10 or later from [https://dotnet.microsoft.com/en-us/download](https://dotnet.microsoft.com/en-us/download). Confirm the installation:

        ```bash theme={null}
        dotnet --version
        ```
      </Step>

      <Step title="Install photo-cli globally">
        Install the tool from NuGet:

        ```bash theme={null}
        dotnet tool install photo-cli -g
        ```

        The package is available at [https://www.nuget.org/packages/photo-cli/](https://www.nuget.org/packages/photo-cli/).
      </Step>

      <Step title="Verify the installation">
        ```bash theme={null}
        photo-cli --version
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="Self-Contained Executable">
    The easiest way to run photo-cli without installing any dependency. The executable contains the .NET runtime in a single file and is available for macOS, Windows, and Linux across arm64, x64, and x86 architectures.

    Download the executable for your OS and architecture directly from the [releases page](https://github.com/photo-cli/photo-cli/releases).
  </Tab>
</Tabs>

## Accessing the application

After installing photo-cli globally, the `photo-cli` command is available in any terminal session:

```bash theme={null}
photo-cli [command]
photo-cli help [command]
```

## Troubleshooting

### Command not found

If your terminal reports `photo-cli: command not found` after installation, the `.dotnet/tools` directory is not on your PATH. Add it manually using the steps below for your shell.

**macOS (zsh)**

Add the following line to your `~/.zshenv` file:

```bash theme={null}
export PATH="$PATH:/Users/[your-account-name]/.dotnet/tools"
```

**Linux (bash)**

Add the following line to your `~/.profile` file:

```bash theme={null}
export PATH="$PATH:/home/[your-account-name]/.dotnet/tools"
```

Replace `[your-account-name]` with your actual system username, then open a new terminal session for the change to take effect.

<Tip>
  The exact path to `.dotnet/tools` may differ depending on how you installed the .NET SDK. Check your installation directory if the paths above do not work.
</Tip>

## Uninstallation

### .NET Tool

```bash theme={null}
dotnet tool uninstall -g photo-cli
```

## MCP Server Setup

The `mcp` command is built into photo-cli and requires no additional installation. It starts an [MCP](https://modelcontextprotocol.io/) stdio server on top of an existing archive folder (one previously created with `photo-cli archive`).

See the [MCP command page](/commands/mcp) for setup instructions for Claude Code, Claude Desktop, VS Code, and MCP Inspector.
