Chromebrew

Chromebrew (https://chromebrew.github.io) is the package manager for ChromeOS, installing into /usr/local as the regular user.

Parsing notes, verified against the chromebrew master source (bin/crew, commands/list.rb, commands/search.rb, lib/const.rb):

  • crew must NOT run as root: bin/crew hard-aborts when Process.uid is zero, so no operation is marked sudo.

  • Output is colorized through HighLine (.lightgreen and friends) and crew does not honor the NO_COLOR environment variable: every operation passes its --no-color flag, which sits after the subcommand in crew’s docopt grammar.

  • crew list installed is name-only; the --verbose form adds the version column but injects a “Package”/“Version” header row and a “=======” separator. The installed regex requires a digit-led version so both decorations fall through.

  • No outdated: crew list states are available/compatible/incompatible/ essential/installed only, and crew upgrade computes AND applies upgrades, so there is no non-mutating upgradable listing. No cleanup either: CREW_DOCOPT has no clean verb.

  • Home page: https://chromebrew.github.io

  • Source: meta_package_manager/managers/chromebrew.toml

Platforms

  • 🐧 Linux (ChromeOS only)

Operations

Operation

Supported

Notes

installed

outdated

search

exact and extended search backfilled by mpm

install

upgrade

upgrade_all

remove

sync

cleanup

Ecosystem

  • Accepted purl types: pkg:chromebrew

Usage

$ mpm --chromebrew installed
$ mpm --chromebrew search "query"
$ mpm --chromebrew upgrade --all
$ mpm install pkg:chromebrew/hello
$ mpm --dry-run --chromebrew upgrade --all

Every example above accepts --dry-run, which simulates the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Deselect the manager for a single run with --no-chromebrew, disable it from your configuration, or tune its invocation attributes with per-manager overrides.

Command line

  • CLI names, in lookup order: crew

The version is probed by running:

$ crew version
1.75.0

and extracted with:

r"^(?P<version>[\d.]+)$"

Privilege escalation

mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.

None of its operations needs root.

See privilege escalation for the full policy.

Cooldown

State of Chromebrew’s release-age gating, from the cooldown support table:

  • Status: ❌ None (Chrome OS)

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.

Reference traces

Raw native outputs captured in the bundled definition: the reference mpm’s parsers were written against. If you know Chromebrew well and a transcript below looks wrong, or a newer release changed its output format, report it.

$ crew list --verbose --no-color installed
Package        Version
=======
less           643
nano           8.2
$ crew search --no-color {query}
less: GNU less is a paginator
lesspipe: Filters for less