Install, update, run as a service, and uninstall β all Linux distributions.
install.sh is the preferred path on every Linux distro. Pipe it from curl, or clone and run it locally β both do the same thing.
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/master/install.sh | bashgit clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
./install.sh- Detects your distribution and architecture
- Asks whether you want a prebuilt binary or to build from source (the default is interactive β non-interactive shells default to prebuilt when available)
- Places the binary at
~/.cargo/bin/zeroclaw - Runs
zeroclaw onboardto complete first-time setup
Flags:
./install.sh --prebuilt # always prebuilt, skip the prompt
./install.sh --source # always build from source
./install.sh --minimal # kernel only (~6.6 MB)
./install.sh --source --features agent-runtime,channel-discord # custom features
./install.sh --skip-onboard # install only; run `zeroclaw onboard` later
./install.sh --list-features # print available features and exit
./install.sh --help # full flag referencebrew install zeroclaw
zeroclaw onboardHomebrew-on-Linux installs follow Homebrew's service path convention β your workspace lives under $HOMEBREW_PREFIX/var/zeroclaw/ instead of ~/.zeroclaw/. See Service management for why this matters.
The core binary is statically linked where possible. Some features require system libraries:
| Feature | Package (Debian/Ubuntu) | Package (Arch) | Package (Fedora) |
|---|---|---|---|
Docs translation (cargo mdbook sync) |
gettext |
gettext |
gettext |
| Hardware (GPIO / I2C / SPI) | libgpiod-dev |
libgpiod |
libgpiod-devel |
| Browser tool (playwright) | libnss3, libatk1.0-0, libcups2 (see playwright --help) |
nss, atk, cups |
nss, atk, cups |
| Audio (TTS, voice channels) | libasound2-dev |
alsa-lib |
alsa-lib-devel |
Most deployments don't need any of these.
Systemd is the default. OpenRC is detected and supported as a fallback.
zeroclaw service install
zeroclaw service start
zeroclaw service statusLogs go to the systemd journal by default:
journalctl --user -u zeroclaw -fFull details: Service management.
On a Raspberry Pi or similar SBC, build with the hardware feature:
./install.sh --source --features hardwareThe stock systemd unit includes SupplementaryGroups=gpio spi i2c so the service user can access hardware without running as root. Verify your user is in those groups:
getent group gpio spi i2c
sudo usermod -aG gpio,spi,i2c $USER
# re-login for group changes to take effectRe-run the installer β it detects the existing install and upgrades in place:
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/master/install.sh | bash -s -- --skip-onboardOr from a clone:
cd /path/to/zeroclaw
git pull
./install.sh --skip-onboardIf installed via Homebrew instead:
brew update && brew upgrade zeroclawAfter updating, restart the service:
zeroclaw service restartStop and remove the service:
zeroclaw service stop
zeroclaw service uninstallRemove the binary:
# cargo install / bootstrap
rm ~/.cargo/bin/zeroclaw
# Homebrew
brew uninstall zeroclawRemove config and workspace (optional β this deletes conversation history):
rm -rf ~/.zeroclaw ~/.config/zeroclaw- Service management β systemd unit details, logs, auto-start
- Quick start β once installed, getting talking
- Operations β Overview β running in production