Skip to content
Get started

Quickstart

Install what you need, then pick the situation you are actually in and follow it end to end.

Four hands-on labs. Each starts where you are, ends with a site somebody else can read, and says what every command does before you run it.

First, the two things they all need.

Before you start

Zellij asks for very little, and it is worth being precise about what — "install the prerequisites" is where most tools lose people.

Needed for
A container runtimecheck, dev, build, imageDocker Desktop, Colima, Podman or Rancher Desktop
curl and tarThe installerAlready on macOS, Linux and Windows 10+

And what you do not need:

  • Node.js, npm, a lockfile. The engine is a Next.js application and it runs inside the container. Nothing is installed on your machine.
  • docker-compose. One container at a time; nothing to compose.
  • gh, the GitHub CLI. zel never calls it.
  • A container runtime at all, if you only want to write and convert. new, explain, list, context, detect and convert are native code with the content model compiled in.

Installing a container runtime

Colima is the smaller of the two options and has no licence conditions. It needs Homebrew, which is worth having anyway:

terminal
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install colima docker

Then start it — with resources, not the defaults:

terminal
colima start --cpu 8 --memory 24 --mount-type virtiofs --disk 80

Docker Desktop works equally well if you have it already, or if your organisation requires it. Nothing here needs one over the other.

Start the image downloading now

The base image is about 237 MB, and the first command that needs it will wait for it. Start it in the background while you do everything else:

terminal
docker pull ghcr.io/mylife-inc/zellij-base:latest &

It is a public image — no login, no account. By the time you have installed zel and written a page, it will be there.

Install zel

zel is the Zellij CLI: a single native binary, with no runtime of its own.

terminal
curl -fsSL https://raw.githubusercontent.com/mylife-inc/releases/main/zellij/install.sh | sh

Works on Apple Silicon and Intel Macs, and on Linux x86-64 and arm64 — the script reads uname and fetches the matching build. Five binaries are published; it picks yours.

Pin a version, or install somewhere else:

terminal
ZEL_VERSION=v0.1.0 ZEL_INSTALL_DIR=/usr/local/bin \
  curl -fsSL https://raw.githubusercontent.com/mylife-inc/releases/main/zellij/install.sh | sh

It installs to ~/.local/bin by default, and says so if that is not on your PATH.

Check it

terminal
zel --version
zel doctor
zel            0.1.0  (aarch64-apple-darwin)

Container runtime
  ✓ docker     28.0.4 via unix:///Users/you/.colima/default/docker.sock
  · engine     ghcr.io/mylife-inc/zellij-base:latest  (local)

Content
  · none here — `zel new docs` writes one

Two ticks and you are ready. If the runtime line is missing, doctor names what is installed and what to do — see zel doctor.

If the engine line says not pulled, your docker pull has not finished. That is fine; the first build waits for it.


Pick your lab

Which one is yours

If…Go to
There is no documentation yet, and no repository to put it inLab 1
There is documentation, in some other tool or noneLab 2
You are starting a codebase and want the docs to ship with itLab 3
The codebase exists and the docs need to catch upLab 4

Labs 1 and 2 are about writing, and end with a published site. Labs 3 and 4 are about shipping from a repository, and assume you have content already — from one of the first two, or the sample the scaffold writes.

One optional tool, for publishing

Until zel deploy lands, uploading a built site to Netlify uses Netlify's own tool. It is the only thing in these labs that needs npm:

terminal
npm install -g netlify-cli
netlify login

Labs 3 and 4 do not need it at all — they publish container images, which zel does on its own.

After a lab