glu — the modern package manager for macOS

glu

2 min read Original article ↗

Built on Homebrew's package ecosystem

The modern
package manager
for macOS

Install command-line tools and their dependencies faster, with a simpler interface for you and your agent.

Install glu v0.1.1

curl -fsSL https://glu.run/install | bash

  • 2.3× faster than Homebrew

  • 8,000+ packages available

  • Concise output by default

  • JSON Schema and plan mode for agents

Installing node

Cold cache · including all dependencies

Median elapsed timeSeconds · lower is better

  1. glu8.88s — median of 76 validated successful installs
  2. Homebrew20.76s — median of 76 validated successful installs
  3. nanobrew23.11s — median of 76 validated successful installs

A simpler way to manage your packages

Commands follow modern package-manager conventions, with concise output by default.

Download and install packages in parallel

8,000+ packages available

Packages come from Homebrew’s prebuilt collection. Search for the tools you use.

Use the up and down arrows to choose a result, then Enter to open it. Escape closes the results.

  • One-shot server-side resolution

    Fetch the complete dependency graph and install metadata in one round trip. No brew update step or local index to refresh.

    Deep Dive: One-Shot Resolve

  • Built-in observability

    Every install records a local trace, showing where time goes without uploading data.

    Reference: Traces

  • Parallel, multipart downloads

    Fetch packages concurrently and split large downloads into chunks.

    Deep Dive: Orchestrator

  • Overlapping stages

    Download, extract, prepare, and install concurrently where dependencies allow.

    Deep Dive: Orchestrator

  • Coalesced postinstall work

    Rebuild shared caches once, after all contributing packages are ready.

    Deep Dive: Postinstall

  • Written in Rust

    Native performance, with explicit control over concurrency and memory.

Package correctness

Homebrew/opt/homebrew

glu/opt/glustore

Compare normalized results

Files
Contents, types, permissions

Links
Targets and prefix layout

Mach-O
Load commands and signatures

Commands
Package-specific probe output

Differential testing compares real installations, accounting for expected differences such as prefixes and generated cache files.

Upstream behavior, ported to Rust

Relocation, signing, linking, and postinstall behavior follow Homebrew’s implementation. Ported postinstall code records the original commit, file, and line.

Inspect the implementation

Verification through completion

Downloaded artifacts and reused cache entries are checksum-verified. Setup runs in sandboxed workers. Required transformations fail rather than being silently skipped.

Correctness and testing

Your next install can be faster

Install glu, then try a package you use.

curl -fsSL https://glu.run/install | bash