- Rust 94.7%
- Shell 2.5%
- Lua 1%
- PowerShell 1%
- Just 0.3%
- Other 0.4%
Advanced Package Manager & Environment Orchestrator
AUR Version Homebrew Version Scoop Version
Crates.io Version
Report a Bug • Request a Feature • Request an Enhancement
Code of Conduct • Packaging • Release Guidelines
Table of Contents
Zoi is an advanced package manager and environment orchestrator, designed to simplify package management and environment configuration across multiple operating systems.
Features
- Cross-Platform: Works seamlessly on Linux, macOS, and Windows.
- Dynamic Package Definitions: Define packages with dynamic Lua scripts (
.pkg.lua) for maximum flexibility. - Extensive Dependency Management: Integrates with over 40 system and language package managers (
apt,brew,cargo,npm,pip,go,bun, etc.). - Project Environments: Manage project-specific commands and environments using a local
zoi.yamlor azoi.luafile. - Repository-Based: Use official, community, or your own private/public Git-based repositories. Manage multiple registries.
- Secure & Verifiable: Verifies package integrity with checksums and authenticity with GPG signatures. Supports Git commit signature verification for entire registries (Chain of Trust) and includes a built-in PGP keyring for out-of-the-box security.
- Decentralized Security Advisories: Automated vulnerability tracking via
.sec.yamlfiles co-located with packages. Zoi proactively warns you during installation or upgrades if a package has known security issues. - Compliance & Audit Logging: Maintain a persistent, tamper-evident audit log of all package operations (install, uninstall, upgrade), viewable via the
zoi historycommand. - Advanced Dependencies: Supports virtual packages (
provides) and package replacement (replaces). - Versatile Package Types: Supports different types of packages:
Package: A standard software package.Collection: A meta-package that groups other packages together.App: A template for bootstrapping new projects (zoi create).Extension: A package to extend Zoi's own functionality or configuration.
- Local Package Development: A dedicated
zoi packagecommand set (build,install) to streamline creating and testing packages locally. - Advanced CLI Tools:
zoi search: Interactive TUI mode with result sorting and rich metadata.zoi audit: Scan installed packages for known security vulnerabilities.zoi doctor: Proactive system health checks, including orphaned package detection and broken symlink scanning.zoi man: Read package manuals in the terminal.zoi rollback: Revert a package to its previous version or rollback the entire last transaction.
- Zoi Mini: A lightweight, zero-sync version for quick, one-off installations via
zm.shorzm.ps1. Supportsinstall,update,uninstall, andlistcommands. - Library Support: Core functionality is available as a Rust library to be integrated into other applications.
Special Thanks
Thanks you all for helping with developing Zoi.
- GitLab: For offering their Ultimate plan for OSS projects.
- Cloudflare: For offering their Pro plan through Project Alexandria.
Getting Started
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 @zillowe/hello
Zoi Mini
Zoi Mini is a lightweight, zero-sync version of Zoi that allows you to install packages from the official Zoidberg registry without installing the full Zoi suite. It's designed for quick, one-off installations and supports basic management commands: install, update, uninstall, and list.
Quick Start (Zero-Install)
You can install any package from the Zoidberg registry using a single command:
Linux / macOS :
curl -fsSL https://zillowe.pages.dev/zm.sh | sh -s -- i @zillowe/hello
Windows (amd64):
powershell -c "irm zillowe.pages.dev/zm.ps1 | iex" -args "i @zillowe/hello"
This will download the zoi-mini binary to a temporary location, resolve the package metadata dynamically, and perform the installation.
Installation
You can install Zoi using a package manager, an installer script, or by building it from source.
Scripts
You can also use our installer scripts for a quick setup.
Linux / macOS :
curl -fsSL https://zillowe.pages.dev/scripts/zoi/install.sh | bash
Or if you want a truly safe way to run this script use ZSM.
curl -fsSL https://zillowe.pages.dev/scripts/zoi/install.zsm | zsm
Windows:
powershell -c "irm zillowe.pages.dev/scripts/zoi/install.ps1|iex"
Package Managers
Linux
Install Zoi on Linux distros.
Arch Linux (AUR)
Install zoi-bin (Pre-compiled binary) or zoi (built from source) from the AUR using your favorite helper (e.g. yay, paru):
paru -S zoi-bin
Or manually without any helpers:
git clone https://aur.archlinux.org/zoi-bin.git
cd zoi-bin
makepkg -si
Debian / Ubuntu (.deb)
Download the .deb package for your architecture from the latest release and install it using apt or dpkg:
# Using apt (recommended, handles dependencies)
sudo apt install ./zoi-*.deb
# Using dpkg
sudo dpkg -i zoi-*.deb
Fedora / RHEL (.rpm)
Download the .rpm package for your architecture from the latest release and install it using dnf or rpm:
# Using dnf (recommended)
sudo dnf install ./zoi-*.rpm
# Using rpm
sudo rpm -i zoi-*.rpm
Fedora (COPR)
Install zoi from Fedora COPR (Supports Fedora 43, 44, Rawhide, CentOS Stream 9/10, EPEL 9, and openSUSE Tumbleweed):
sudo dnf copr enable zillowez/zoi
sudo dnf install zoi
Fedora (Terra)
Install zoi-rs on Fedora from Terra repo (not maintained by us so updates can be late, uses Crates.io version):
# add terra repo
dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release
# install Zoi
sudo dnf install zoi-rs
More information and instructions for using Terra are available here.
macOS
Install Zoi on macOS.
Homebrew
Install Zoi using Homebrew (Also supports linux):
brew install zillowe/tap/zoi
Windows
Install Zoi on Windows.
Scoop
Install Zoi using Scoop:
scoop bucket add zillowe https://github.com/zillowe/scoop.git
scoop install zoi
Crates.io
You can install zoi directly from crates.io using cargo:
cargo install zoi-rs
NPM
You can install @zillowe/zoi from npm also.
npx @zillowe/zoi
bunx @zillowe/zoi
pnpm dlx @zillowe/zoi
yarn dlx @zillowe/zoi
Build from Source
If you prefer, you can build Zoi from source. You'll need Rust installed.
Build the release binary:
# For Linux/macOS
./scripts/build-release.sh
# For Windows
./scripts/build-release.ps1
Install it locally:
./configure
just build
sudo just install
Zoi integrates with over 40 system and language package managers (apt, brew, cargo, npm, pip, go, bun, and many more). See the full list on the Dependencies docs.
Usage
Here are some common commands to get you started.
-
Install a package:
zoi install <package_name> -
Uninstall a package:
zoi uninstall <package_name> -
Update packages:
# Update all installed packages zoi update --all # Update specific packages zoi update <package1> <package2> -
Search for a package:
# Standard search zoi search <term> # Interactive TUI mode zoi search <term> -i -
View operation history:
zoi history -
Show package details:
zoi show <package_name> -
Run a project command:
# Run a command defined in zoi.yaml zoi run <command_alias> -
Run a command without installing the package:
zoi exec <package_name> -- <command> -
Enter a shell with a package:
zoi shell -p <package_name> -
Add a new repository:
# Interactively zoi repo add # By name from the default registry zoi repo add <repo_name> # From a git repo URL 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.
Packaging Status
Contributing
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.
Repositories & Mirrors
Zoi is hosted on multiple forges. The primary locations and mirrors are:
-
Zoi Source Code (this repo)
-
Packages Database (Zoidberg)
Repository tiers
Repository tiers for Zoidberg, Zoi's official packages repo.
- 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.
- Zillowe: Zillowe's own official packages.
For details and CLI usage examples, see the docs page: Repositories.
License
Zoi is licensed under the Apache 2.0 License.
Zoi is developed by Zusty < Zillowe Foundation
Part of the Zillowe Development Suite (ZDS)