Skip to main content
A bundle is one version of the client, unpacked into one file per module. Everything else in cellar reads from these.

Download

This pulls a few hundred megabytes and takes a few minutes. Each version uses about 1.3 GB on disk. Versions live in ~/.cellar unless CELLAR_HOME says otherwise. --rev latest looks up the version WhatsApp Web is currently serving. For the other products you have to name a revision, because there is no equivalent way to discover it and guessing would give you a confidently wrong number. Supported platforms are whatsapp, messenger, facebook and instagram.
Old versions stay available after WhatsApp rolls forward. The live code URLs stop working almost immediately, but Meta keeps a per-version archive, which is what makes comparing releases possible at all. Downloading is the only thing cellar uses the network for.

Import

If you already have an archive, index it without downloading. Both a .zip and a directory of already-extracted files work.
The revision number is required, because it is the version’s identity and cannot be recovered from the files themselves.

List and inspect

Check the diagnostics after a download. parse failures 0 is what a clean unpack looks like. A non-zero count means modules really are missing from your copy, so an empty search result would be cellar’s fault rather than WhatsApp’s.

Naming versions

Anywhere a version is expected, all of these work:

Re-index and remove

reindex re-reads a version you already downloaded, which is useful after upgrading cellar. It needs the raw files, so add --keep-chunks when downloading if you want that option later.
Removal needs --yes, since it deletes a directory that took minutes to build.

Where things are stored

The modules directory is meant to be used directly. Grep it, open it in your editor, point a script at it.
About a quarter of modules ship with two slightly different definitions in the same release. Both are written out, the extra one as ~alt-<hash>.js. One of them appearing or disappearing between releases is itself worth noticing, so comparisons take every definition into account.