<!-- Sources: the install matrix and verification commands published on /downloads;
     FS-10 §1 (invocation & distribution) and §5 (licence resolution). No channel,
     platform, command, or artifact name on this page originates here. -->

Rendlio is one self-contained binary called `rendlio`. There is no runtime to provision, no service to register, no Office or LibreOffice on the host, and no network access at any point — installing it is just getting the binary onto the machine and putting a [licence file](/docs/licensing) next to it.

Three channels ship the same engine: a .NET global tool, an OCI container image, and per-platform archives. Same flags, same exit codes, same bytes out.

:::note[Pre-launch]
Rendlio is pre-launch. The first public binaries publish at the M2 launch — nothing below is downloadable today. These are the exact channels and commands that go live on release day, as written. Meanwhile you can [request a 30-day trial](/trial) to be notified, mint the licence file in advance, or follow the [changelog](/changelog).
:::

## Pick a channel

| Channel | Needs on the host | Best for |
|---|---|---|
| `Rendlio.Tool` (.NET global tool) | .NET 10 SDK | Developer machines and build agents that already have .NET |
| `ghcr.io/rendlio/rendlio` (container) | A container runtime | CI runners, container platforms, hosts with no .NET |
| Self-contained archive | Nothing | Air-gapped hosts, appliances, anywhere without a package feed |

## 1. .NET global tool

The quickest path when a .NET 10 SDK is already present. It puts the `rendlio` command on your `PATH`, and updates come through the same channel:

```bash
dotnet tool install -g Rendlio.Tool
dotnet tool update -g Rendlio.Tool
```

Confirm what you got — the version, the build's release date, and the schema versions it speaks:

```bash
rendlio version
```

## 2. Container image

For CI runners and container platforms: no .NET on the host, nothing else to provision. The same image runs on x64 and ARM64.

```bash
docker pull ghcr.io/rendlio/rendlio:latest
```

Mount a working directory and convert:

```bash
docker run --rm -v "$PWD:/work" -w /work ghcr.io/rendlio/rendlio \
  convert book.xlsm -o book.pdf --format pdfa --report report.json
```

Or pipe through stdin/stdout and mount nothing at all. Stdout carries only document bytes; every diagnostic goes to stderr, so piping is safe by design:

```bash
cat in.xlsx | docker run --rm -i ghcr.io/rendlio/rendlio convert - -o - > out.pdf
```

The container wraps the exact same binary as the global tool. Passing licences into it, setting hard memory and CPU limits, and gating pipelines on the exit code are covered on [Deployment](/docs/deployment).

## 3. Self-contained archives

One archive per platform, everything inside — no .NET install, no package manager. Unpack, drop `Rendlio.license` next to the binary (or in `~/.rendlio/`), convert.

| Platform | Runtime id | Archive |
|---|---|---|
| Windows x64 | `win-x64` | `rendlio-win-x64.zip` |
| Linux x64 | `linux-x64` | `rendlio-linux-x64.tar.gz` |
| Linux ARM64 | `linux-arm64` | `rendlio-linux-arm64.tar.gz` |
| macOS Apple Silicon | `osx-arm64` | `rendlio-osx-arm64.tar.gz` |

```bash
curl -LO https://github.com/rendlio/rendlio/releases/latest/download/rendlio-linux-x64.tar.gz
tar -xzf rendlio-linux-x64.tar.gz
./rendlio version
```

Deterministic output is byte-identical across all four platforms — the same workbook and the same options produce the same bytes wherever you run them.

## Verify the release before you run it

Every release is cosign-signed from the public build pipeline and ships a `SHA256SUMS` file plus a CycloneDX software bill of materials (`rendlio.sbom.json`). Verification is the point: signatures you never check are decoration.

Verify the container image (keyless, against the repository identity):

```bash
cosign verify ghcr.io/rendlio/rendlio:latest \
  --certificate-identity-regexp 'https://github.com/rendlio/rendlio/' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com
```

Verify an archive — each one publishes a matching `.sigstore.json` bundle in the same release:

```bash
cosign verify-blob rendlio-linux-x64.tar.gz \
  --bundle rendlio-linux-x64.tar.gz.sigstore.json \
  --certificate-identity-regexp 'https://github.com/rendlio/rendlio/' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com
```

Check the checksums, which cover every artifact in the release:

```bash
sha256sum -c SHA256SUMS --ignore-missing
```

The SBOM lists every component in the build, machine-readable — hand it to procurement as-is. All of it is linked from [Downloads](/downloads).

## Place your licence file

Without a licence, Rendlio still converts with full features: output carries a diagonal evaluation watermark and the run emits warning `W9001`, so watermarked runs exit 1 at best and never 0. To run watermark-free, put the licence where the engine looks. It resolves at most one source — first match wins, no merging:

1. `--license <path>` on the command line
2. `RENDLIO_LICENSE` — a file path **or** the licence text itself, inline
3. `Rendlio.license` in the current working directory
4. `~/.rendlio/Rendlio.license`
5. Nothing found ⇒ evaluation watermark mode + `W9001`

`--license community` asserts the Community tier when a community licence file is present; bare `community` without a minted file is invalid (exit 3) — the free tier still requires the self-serve-minted file.

Verification is a pure offline signature check against public keys embedded in the binary. No activation, no licence server, no phone-home — which is why the same file works unchanged on [air-gapped hosts](/docs/deployment#air-gapped-hosts). Check what the engine resolved:

```bash
rendlio license info
```

## Confirm the install works

```bash
rendlio convert book.xlsx -o book.pdf --report report.json
```

Exit code `0` means clean, `1` means rendered with warnings, `2` means the workbook contains something Rendlio does not render faithfully — and `report.json` names every one of them with a location. The full ladder is in the [CLI reference](/docs/cli#exit-codes).

## Next steps

- [Quickstart](/docs/quickstart) — first faithful PDF plus report, in five minutes
- [CLI reference](/docs/cli) — every command, flag, and environment variable
- [Deployment](/docs/deployment) — Docker, GitHub Actions, GitLab CI, air-gapped hosts, resource limits
- [Security model](/docs/security-model) — what the engine does with a file it cannot trust
- [Licensing guide](/docs/licensing) — which tier you are, and how the licence file works