# Install Skink on Linux, macOS and Windows

> Install Skink with one command on Linux, macOS or Windows, or build it with cargo. Covers installer options, unsigned binaries, upgrading and uninstalling.

Source: https://skink.cc/start/install/

Skink installs with one command and needs no `sudo` or admin prompt.

The installer downloads the prebuilt binary for your machine, checks its SHA-256, and puts it in your user folder.

  **Linux / macOS**

    ```sh
    curl -fsSL https://skink.cc/install.sh | sh
    ```
    The binary goes to `~/.local/bin`. The script adds that folder to your `PATH` in your shell's startup file if it is missing.
  
  **Windows**

    In PowerShell 5.1 or 7+:
    ```powershell
    irm https://skink.cc/install.ps1 | iex
    ```
    The binary goes to `%LOCALAPPDATA%\Programs\skink\bin`, and that folder is added to your user `PATH`.
  
  **From source (cargo)**

    Any OS with Rust 1.90 or newer:
    ```sh
    cargo install --git https://github.com/xuckless/skink skink
    ```
  

`skink.cc/install.sh` and `skink.cc/install.ps1` redirect to the scripts attached to the [latest GitHub release](https://github.com/xuckless/skink/releases/latest). Read them first if you like; the GitHub URLs work too.

## Check that it worked

```sh
skink --version
```

If your shell does not see `skink` yet, open a new terminal first so it picks up the new `PATH`.

## Which binaries exist

Prebuilt binaries cover:

- Linux x86_64 and aarch64 (static musl, so they run on any distribution)
- macOS Apple Silicon and Intel
- Windows x86_64

On any other CPU the installer stops and tells you to build from source with `cargo install`.

## Installer options

Set these as environment variables. On Linux and macOS, the flags go after `sh -s --`.

| Variable or flag | Effect |
|---|---|
| `SKINK_VERSION=v0.1.0` | Install a specific release instead of the latest |
| `SKINK_INSTALL_DIR=DIR` | Install somewhere else |
| `SKINK_NO_MODIFY_PATH=1` or `--no-modify-path` | Leave your shell startup files and `PATH` alone |
| `--uninstall` (Unix) / `SKINK_UNINSTALL=1` (PowerShell) | Remove the binary and the `PATH` entry the installer added |
| `SKINK_BASE_URL=URL` | Download from a mirror instead of GitHub |

For example, to install into `/opt/bin` without touching your shell files:

```sh
curl -fsSL https://skink.cc/install.sh \
  | SKINK_INSTALL_DIR=/opt/bin sh -s -- --no-modify-path
```

## Install by hand

1. Download `skink-<target>.tar.gz` (or `.zip` on Windows) and its `.sha256` from the [releases page](https://github.com/xuckless/skink/releases/latest).
2. Check it with `shasum -a 256 -c`.
3. Unpack it and put `skink` in a folder on your `PATH`.

**The binaries are not code-signed yet:**
The installers verify checksums, and on macOS they clear the quarantine flag for you. If you download an archive in a browser instead, macOS Gatekeeper may block it. Run `xattr -d com.apple.quarantine skink` to allow it. Windows SmartScreen may warn too: choose **More info**, then **Run anyway**.

## Upgrade

Skink updates itself:

```sh
skink --upgrade                      # install the latest release in place
skink --upgrade --check              # only report whether a newer release exists
skink --upgrade --version 0.1.0      # install that release (can downgrade)
```

`skink upgrade` works too. `:upgrade` does the same from inside the editor, in the background. The new version runs from the next start.

### Update checks

By default Skink checks GitHub at most once a day and says so in the status line. Change that with the `updates` setting in `settings.json`:

- `"notify"` (default): check and tell you
- `"auto"`: check and install, used from the next start
- `"off"`: never check

`SKINK_NO_UPDATE_CHECK=1` also turns the check off, and so does running in CI.

If you installed through cargo, Homebrew, scoop or winget, `skink --upgrade` prints that tool's command instead of overwriting its files.

## Uninstall

  **Linux / macOS**

    ```sh
    curl -fsSL https://skink.cc/install.sh | sh -s -- --uninstall
    ```
  
  **Windows**

    ```powershell
    $env:SKINK_UNINSTALL=1; irm https://skink.cc/install.ps1 | iex
    ```
  
  **From source (cargo)**

    ```sh
    cargo uninstall skink
    ```
  

Your settings stay in the config folder: `~/.config/skink`, or `%APPDATA%\skink` on Windows. Delete it by hand if you want them gone.

## Icons and fonts

Skink draws file and status icons with [Nerd Font](https://www.nerdfonts.com) glyphs. The font belongs to your terminal, not to Skink.

- Ghostty, Kitty and WezTerm already include the Nerd Font symbols.
- In other terminals, install a Nerd Font and select it in the terminal's settings.
- On Windows Terminal, CaskaydiaCove Nerd Font is a good pick.

### Icons show as boxes or question marks

Switch to plain text:

```sh
export SKINK_ICONS=ascii
```

Or set `"icons": "ascii"` in `settings.json` (see [Configuration](https://skink.cc/customize/configuration/)).

A terminal with truecolor gives the best colours.

Next: [Quick start](https://skink.cc/start/quick-start/).
