A Homebrew-compatible package manager in Rust - user-controlled, fast, and reproducible.
- Fast: Written in Rust for maximum performance
- Reproducible: Project lockfiles ensure consistent installs
- Multi-version: Install multiple versions of packages side-by-side
- Shim-based: Like mise, resolves versions based on project configuration
- Homebrew-compatible: Uses Homebrew's formula index and bottles
- Core principles, CLI behavior, and Homebrew integration:
docs/core-principles-homebrew.md - Parallel install pipeline plan:
docs/parallel-pipeline.md
Coldbrew is not published on crates.io yet.
- Download the appropriate archive from the GitHub Releases page: https://github.com/swiftlysingh/coldbrew/releases
- Extract the
crewbinary. - Move it to a directory on your
PATH(for example,/usr/local/binor~/.local/bin). - Run
crew --helpto verify it works.
Note: Linux release artifacts are not currently tested in CI. Please report any issues.
Install from source:
git clone https://github.com/swiftlysingh/coldbrew
cd coldbrew
cargo install --path .# Update the package index
crew update
# Search for packages
crew search jq
# Install a package
crew install jq
# List installed packages
crew list
# Show package info
crew info jqCreate a coldbrew.toml in your project:
[packages]
node = "22"
python = "3.12"
jq = "1.7"
[dev_packages]
rust = "1.75"Then run:
crew lock # Generate lockfile
crew install # Install from lockfileGlobal settings live in ~/.coldbrew/config.toml. Example:
[settings]
parallel_downloads = 8 # min(cpus * 2, 16)
parallel_extractions = 3 # min(cpus - 1, 4)
parallel_codesigning = 2 # min(cpus, 4)
parallel_installs = 3 # min(cpus - 1, 4)
per_bottle_progress = false # show per-bottle download bars| Command | Description |
|---|---|
update |
Update the package index |
search <query> |
Search for packages |
info <package> |
Show package details |
install <packages> |
Install packages |
uninstall <packages> |
Uninstall packages |
upgrade [packages] |
Upgrade packages |
list |
List installed packages |
which <binary> |
Show which package provides a binary |
pin <package> |
Pin a package version |
default <package@version> |
Set default version |
init |
Create coldbrew.toml |
lock |
Generate lockfile |
tap <user/repo> |
Add third-party repository |
space |
Show disk usage and cleanup candidates |
space clean [--all] [--dry-run] |
Interactive cleanup |
doctor |
Check for problems |
The repository includes a manual page at docs/crew.1.
Install it locally:
mkdir -p ~/.local/share/man/man1
cp docs/crew.1 ~/.local/share/man/man1/
man crewEnable the repository hooks (run once per clone):
git config core.hooksPath .githooksThe pre-commit hook runs cargo fmt and re-stages Rust files that were
already staged so formatting issues are fixed before you commit. If
cargo fmt is missing, install rustfmt with:
rustup component add rustfmtMIT