Report a Bug β’ Request a Feature β’ Request an Enhancement
Code of Conduct β’ Release Guidelines
Table of Contents
Zoi is a universal package manager and environment setup tool, designed to simplify package management and environment configuration across multiple operating systems.
- Cross-Platform: Works seamlessly on Linux, macOS, and Windows.
- Dynamic Package Definitions: Define packages with dynamic Lua scripts (
.pkg.lua) for maximum flexibility. - Universal Package Support: Install from binaries, compressed archives, source, or installer scripts.
- Extensive Dependency Management: Integrates with over 40 package managers (
apt,brew,cargo,npm,pip, etc.). - Rich Dependencies: Define runtime and build dependencies with required, optional, and selectable options.
- Project Environments: Manage project-specific commands and environments with
zoi.yaml. - Repository-Based: Use official, community, or your own private/public Git-based repositories.
- Secure & Verifiable: Verifies package integrity and authenticity with checksums and GPG signatures. Manage keys with
zoi pgp. - Versatile Package Types: Supports standard packages, collections, services, configs, app templates, extensions, libraries, and inline scripts.
- Local Package Development: A dedicated
zoi packagecommand set (meta,build,install) to streamline creating and testing packages locally. - Advanced CLI Tools:
zoi man: Read package manuals in the terminal.zoi why: Understand why a package is installed.zoi rollback: Revert a package to its previous version.zoi pin: Pin a package to a specific version.zoi exec: Run a package without installing it.
- Library Support: Use as a Rust library and get compiler/linker flags via
zoi pkg-config.
Getting started with Zoi is simple. Just follow these three steps:
-
Install Zoi: Choose one of the installation methods below.
-
Sync Repositories: Before you can install packages, you need to sync the package repositories.
zoi sync
-
Install a Package: Now you can install any package you want. For example, to install
hello:zoi install hello
You can install Zoi using a package manager, an installer script, or by building it from source.
Install zoi-bin (Pre-compiled binary) or zoi (built from source) from the AUR using your favorite helper (e.g. yay, paru):
yay -S zoi-binOr manually without any helpers:
git clone https://aur.archlinux.org/zoi-bin.git
cd zoi-bin
makepkg -siInstall Zoi using Homebrew:
brew install Zillowe/tap/zoiInstall Zoi using Scoop:
scoop bucket add zillowe https://github.com/Zillowe/scoop.git
scoop install zoiYou can install zoi directly from crates.io using cargo:
cargo install zoi-rsYou can install @zillowe/zoi from npm also.
npx @zillowe/zoi
bunx @zillowe/zoi
pnpm dlx @zillowe/zoi
yarn dlx @zillowe/zoiYou can also use our installer scripts for a quick setup.
Linux / macOS :
curl -fsSL https://zillowe.pages.dev/scripts/zoi/install.sh | bashWindows:
powershell -c "irm zillowe.pages.dev/scripts/zoi/install.ps1|iex"If you prefer, you can build Zoi from source. You'll need Rust installed.
Build the release binary:
# For Linux/macOS
./build/build-release.sh
# For Windows
./build/build-release.ps1Install it locally:
./configure
make
sudo make install
# Install CLI completions (bash, zsh, fish, elvish, powershell)
make install-completionWhat platforms we currently support.
| OS | Arch | Zoi Binary | Packages Support |
|---|---|---|---|
| Linux | amd64 | βοΈ | βοΈ |
| Linux | arm64 | βοΈ | βοΈ |
| macOS | arm64 | βοΈ | βοΈ |
| macOS | amd64 | βοΈ | βοΈ |
| Windows | amd64 | βοΈ | βοΈ |
| Windows | arm64 | β | βοΈ |
| FreeBSD | amd64 | β | βοΈ |
| FreeBSD | arm64 | β | βοΈ |
| OpenBSD | amd64 | β | βοΈ |
| OpenBSD | arm64 | β | βοΈ |
We're planning to add support for more platforms.
What dependency installation we support.
| Manager | Ecosystem / OS | Example |
|---|---|---|
zoi |
Zoi | zoi:my-other-package |
native |
System's native package manager | native:openssl |
script |
Script execution | script:website.com/install |
apt, apt-get |
Debian, Ubuntu, etc. | apt:libssl-dev |
pacman |
Arch Linux | pacman:base-devel |
yay, paru |
Arch Linux (AUR) | yay:google-chrome |
aur |
Arch Linux (AUR) | aur:visual-studio-code-bin |
brew |
macOS (Homebrew) | brew:node |
scoop |
Windows | scoop:git |
snap |
Linux (Snapcraft) | snap:node |
flatpak |
Linux (Flathub) | flatpak:org.gimp.GIMP |
pkg |
FreeBSD | pkg:git |
pkg_add |
OpenBSD | pkg_add:git |
cargo |
Rust | cargo:ripgrep |
cargo-binstall |
Rust (pre-compiled binaries) | cargo-binstall:ripgrep |
go |
Go | go:golang.org/x/tools/cmd/goimports |
npm |
Node.js | npm:typescript |
bun |
Bun | bun:elysia |
deno |
Deno | deno:npm-chalk or deno:jsr-@std/bytes (the - instead of : is important) |
jsr |
JavaScript Registry | jsr:@std/http |
pip |
Python | pip:requests |
nix |
NixOS / Nix | nix:nixpkgs.hello |
And many more.
For more dependencies and information please visit the Dependencies Page on Docs.
Some of the package manager are OS specific, so when a dependency is in that package manager it only installs it for that OS.
But some other package managers like npm, it installs the dependency if the package manager is available.
Here are some common commands to get you started.
-
Install a package:
zoi install <package_name>
-
Uninstall a package:
zoi uninstall <package_name>
-
Install from a specific repository:
zoi install @<repo_name>/<package_name>
-
List all available packages from active repos:
zoi list --all
-
List packages from a specific repo:
zoi list --all --repo <repo_name>
-
Search for a package:
zoi search <term>
-
Search for a package from a specific repo:
zoi search <term> @<repo_name>
-
Add a new repository:
# Interactively zoi repo add # By name zoi repo add <repo_name> # From a git repo zoi repo add https://github.com/<user_name>/<repo_name>.git
-
Update Zoi to the latest version:
zoi upgrade
For more detailed information, please refer to the Docs.
We welcome contributions from the community! If you'd like to contribute, please read our Contributing Guidelines for more information.
New features, enhancements and bug reports are welcome.
Zoi is hosted on multiple forges. The primary locations and mirrors are:
-
Zoi Source Code (this repo)
-
Packages Database (
Zoi-Pkgs)
- Core: Essential packages, libraries and very common/maintained packages.
- Main: Packages that don't fit in Core but are essential for most people.
- Extra: Packages that are new, not very common or maintained, not preferable.
- Community: User submitted packages that are new, can be upgraded to a higher repo.
- Test: Testing repo for new Zoi features and for new packages before release.
- Archive: Archived packages that are no longer maintained.
For details and CLI usage examples, see the docs page: Repositories.
Zoi has an online package registry, the Nel Registry, where you can browse, search, and view packages available in the official Zoi repositories.
Zoi is licensed under the Apache 2.0 License.
Zoi is developed by Zusty < Zillowe Foundation
Part of the Zillowe Development Suite (ZDS)
