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

# Installation

> Install Charter on macOS, Linux, or Windows.

Charter ships as a single static binary with no runtime dependencies. Pick the install path that fits your workflow.

<Tabs>
  <Tab title="Homebrew">
    The fastest path on macOS and Linux:

    ```bash theme={null}
    brew install use-charter/tap/charter
    ```

    Homebrew handles version management and future upgrades:

    ```bash theme={null}
    brew upgrade charter
    ```
  </Tab>

  <Tab title="Binary">
    Pre-built binaries are published to [GitHub Releases](https://github.com/use-charter/charter/releases) for all supported platforms.

    <Steps>
      <Step title="Go to GitHub Releases">
        Navigate to [github.com/use-charter/charter/releases](https://github.com/use-charter/charter/releases) and find the latest release.
      </Step>

      <Step title="Download the archive for your platform">
        | Platform            | Asset                           |
        | ------------------- | ------------------------------- |
        | macOS Apple Silicon | `charter_*_darwin_arm64.tar.gz` |
        | macOS Intel         | `charter_*_darwin_amd64.tar.gz` |
        | Linux x86-64        | `charter_*_linux_amd64.tar.gz`  |
        | Linux ARM           | `charter_*_linux_arm64.tar.gz`  |
        | Windows x86-64      | `charter_*_windows_amd64.zip`   |
      </Step>

      <Step title="Extract and move to your PATH">
        <CodeGroup>
          ```bash macOS / Linux theme={null}
          # Extract the archive
          tar xzf charter_*_linux_amd64.tar.gz

          # Move charter to a directory on your PATH
          sudo mv charter /usr/local/bin/charter
          ```

          ```powershell Windows theme={null}
          # Extract the zip (right-click → Extract All, or use Expand-Archive)
          Expand-Archive charter_*_windows_amd64.zip -DestinationPath .

          # Move charter.exe to a directory on your PATH
          Move-Item charter.exe C:\Windows\System32\charter.exe
          ```
        </CodeGroup>
      </Step>

      <Step title="Verify">
        ```bash theme={null}
        charter version
        ```
      </Step>
    </Steps>

    <AccordionGroup>
      <Accordion title="Verify the binary signature (optional)">
        Every release asset is signed with cosign keyless signing. To verify:

        ```bash theme={null}
        cosign verify-blob \
          --certificate-identity "https://github.com/use-charter/charter/.github/workflows/release.yml@refs/tags/v*" \
          --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
          --bundle charter_*.bundle \
          charter
        ```

        A successful verification prints `Verified OK`.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="go install">
    If you have a Go toolchain available:

    ```bash theme={null}
    go install go.use-charter.dev/charter/cmd/charter@latest
    ```

    The binary is placed in `$(go env GOPATH)/bin`.

    <Note>
      Requires Go 1.26 or later. The vanity import host `go.use-charter.dev` serves the module. Make sure `$(go env GOPATH)/bin` is on your `PATH`.
    </Note>
  </Tab>

  <Tab title="Source">
    Build directly from the repository:

    ```bash theme={null}
    git clone https://github.com/use-charter/charter
    cd charter
    go build -o charter ./cmd/charter
    ```

    Move the resulting binary to a directory on your `PATH`. Building from source requires Go 1.26 or later.
  </Tab>
</Tabs>

## Verify the install

After any install path, confirm the binary is working:

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

Expected output:

```
charter   1.0.0
commit    abc1234f
built     2026-05-18T09:42:00Z
go        1.26.3
platform  darwin/arm64
```

<Tip>
  Add `charter` to your shell `PATH` so it's available from any directory. Homebrew does this automatically. For manual installs, ensure the directory containing the binary is in your `PATH` and open a new shell session to pick up the change.
</Tip>
