Built on Homebrew's package ecosystem
The modern
package managerfor 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
A simpler way to manage your packages
Commands follow modern package-manager conventions, with concise output by default.
Download and install packages in parallel
See the packages you added
See your packages and their dependencies
Know what you’re about to install
A structured plan for your agent
View a package’s dependency tree
Suggestions for a mistyped package name
View all dependencies with glu ls --all
Would install 12 packages:
Would download: 23.6 MB
{
"ok": true,
"command": "install",
"result": {
"mode": "plan",
"requested": [
"node"
],
"would_install": [
{
"package_key": "package:fmt",
"name": "fmt",
"version": "12.2.0",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": false,
"transitive": true,
"cached": false,
"download_bytes": 288291
},
{
"package_key": "package:ada-url",
"name": "ada-url",
"version": "4.0.0",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 340859
},
{
"package_key": "package:hdrhistogram_c",
"name": "hdrhistogram_c",
"version": "0.11.10",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 43561
},
{
"package_key": "package:libffi",
"name": "libffi",
"version": "3.8.0",
"exposure": {
"mode": "isolated",
"reason": "Provided by macOS"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 270967
},
{
"package_key": "package:libngtcp2",
"name": "libngtcp2",
"version": "1.25.0",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 428867
},
{
"package_key": "package:libuv",
"name": "libuv",
"version": "1.52.1",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 375994
},
{
"package_key": "package:simdutf",
"name": "simdutf",
"version": "9.1.1",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": false,
"transitive": true,
"cached": false,
"download_bytes": 394889
},
{
"package_key": "package:merve",
"name": "merve",
"version": "1.2.2_2",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 33424
},
{
"package_key": "package:nbytes",
"name": "nbytes",
"version": "0.1.4",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 13413
},
{
"package_key": "package:simdjson",
"name": "simdjson",
"version": "4.6.11",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 1451751
},
{
"package_key": "package:uvwasi",
"name": "uvwasi",
"version": "0.0.23",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 70145
},
{
"package_key": "package:node",
"name": "node",
"version": "26.8.2",
"exposure": {
"mode": "global"
},
"status": "would_install",
"installed": false,
"declared": false,
"deactivated": false,
"direct": true,
"transitive": false,
"cached": false,
"download_bytes": 19913400
}
],
"satisfied": [],
"would_promote": [],
"would_rename": [],
"would_remove": [],
"requires_confirmation": false,
"would_download_bytes": 23625561
}
}resolved from the registry — not installed
Error: package 'pyton@3.12' not found

8,000+ packages available
Packages come from Homebrew’s prebuilt collection. Search for the tools you use.
How it works
glu trace view
glu trace viewOne-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 ResolveBuilt-in observability
Every install records a local trace, showing where time goes without uploading data.
Reference: TracesParallel, multipart downloads
Fetch packages concurrently and split large downloads into chunks.
Deep Dive: OrchestratorOverlapping stages
Download, extract, prepare, and install concurrently where dependencies allow.
Deep Dive: OrchestratorCoalesced postinstall work
Rebuild shared caches once, after all contributing packages are ready.
Deep Dive: PostinstallWritten in Rust
Native performance, with explicit control over concurrency and memory.
Package correctness
/opt/homebrew/opt/glustoreCompare normalized results
- Files
- Contents, types, permissions
- Links
- Targets and prefix layout
- Mach-O
- Load commands and signatures
- Commands
- Package-specific probe output
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 implementationVerification 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