setup.sh installs them interactively if missing.
Quick install (recommended)
setup.sh runs eleven validation checks and offers to fix each failure interactively:
Bash version
macOS ships bash 3.2; ZO scripts are 3.2-compatible (see PR-010 for why).
uv
Astral’s package manager. Installed via
curl -LsSf https://astral.sh/uv/install.sh | sh if missing.Claude CLI
Installed via
curl -fsSL claude.ai/install.sh | bash if missing. The CLI handles auth on first launch.tmux
Required for the conversational
init/draft/build flow. Optional if you only use --no-tmux headless mode.Git state
Confirms you’re inside a git repo (ZO uses git for worktree detection and commit conventions).
Project deps via uv sync
Resolves and installs
pyproject.toml dependencies — pydantic, fastembed, click, rich, pyyaml.zo on PATH
Symlinks
.venv/bin/zo into ~/.local/bin/zo so the CLI is callable from any shell (handles conda/pyenv/system-Python users — see PR-012).Manual install
If you prefer to install dependencies yourself:- macOS (Homebrew)
- Linux (apt)
Optional: GPU support
ZO’s Docker scaffold is platform-aware:- Linux + NVIDIA GPU + NVIDIA Container Toolkit → emits a GPU compose template with
deploy.resources.reservations.devices: capabilities: [gpu]. - macOS → emits a CPU compose template (Docker Desktop on Mac has no GPU passthrough; for hardware acceleration, run training natively with
uv run python -m src.engineering.trainerto use Apple Silicon MPS). - Linux without GPU → CPU compose.
zo init time via zo.environment.detect_environment(). Override with --gpu-host or --base-image if needed.
Verifying the install
After installation, run the test suite to confirm everything wires up:Next
Quickstart
Five minutes from zero to a real ML run.
Concepts
Mental model: plan, oracle, agents, gates, memory.