Este documento também está disponível em português.
A searchable archive of Meta's shipped client source. Download a WhatsApp Web revision, diff it against another, read any module, and trace what depends on what.
WhatsApp Web ships as tens of thousands of minified JavaScript chunks. Each chunk
packs many __d("ModuleName", [deps], factory, id) definitions onto a single line.
cellar downloads a client revision, parses it with the oxc AST,
and writes one file per module, named after the module. The result is a directory
that grep -r, your editor, and your coding agent all work on directly.
- Download and manage source bundles for any past client revision.
- Diff two revisions through a named filter, in JSON, NDJSON, Markdown or text.
- Search modules by name, source text, or exported symbol.
- Print any module's source, dependencies, dependents and exports.
- Build dependency and dependent graphs, as JSON, DOT or Mermaid.
- Serve all of the above to a coding agent over MCP.
- Supports
whatsapp,messenger,facebookandinstagram.
- A recent stable Rust toolchain (1.95 or newer).
just, which runs the install and CI recipes.- Around 1.3 GB of disk per indexed revision.
Install just first:
brew install just # macOS
cargo install just # anywhere Rust worksOther options, including Debian, Fedora, Arch, Nix, Scoop and a prebuilt binary,
are in just's install guide.
Then build cellar:
git clone https://github.com/polymorfa/cellar
cd cellar
just installThat puts cellar at ~/.cargo/bin/cellar. Make sure ~/.cargo/bin is on your
PATH.
Full documentation, including a worked example that uncovers an unannounced feature in four commands, is at cellar.mintlify.site.
| Page | What it covers |
|---|---|
| AI assistants | MCP setup for Claude Code and Codex, and the sixteen tools |
| A real example | Finding passkey device linking before it shipped |
| Managing versions | Download, import, inspect and remove releases |
| Finding code | Search by name, source or exported symbol |
| Comparing releases | Diffs as text, JSON, NDJSON or Markdown |
| Graphs | Dependency graphs as Mermaid, Graphviz or JSON |
| Filters | Cutting 187,000 modules down to what matters |
Every command also links to its own page from --help.
| Crate | Role |
|---|---|
cellar-core |
Store layout, index model, filter engine, diff, graphs. No I/O beyond the filesystem. |
cellar-index |
oxc bundle parsing into a module index. |
cellar-fetch |
Revision discovery, download and unpacking. The only crate that reaches the network. |
cellar |
CLI and MCP server, both built on one shared operations layer. |
just ci # fmt-check, clippy, tests, skill checkNo test may reach the network. CI enforces this.
- wa-spec by vini, which extracts WhatsApp Web protocol bindings from the same bundles daily.
- whatspec by João Lucas, which extracts a typed protocol IR from the same bundles and shaped the design here.
- ProtoCocktail's
wa-diff-analyzer, my earlier attempt at this problem, whose module filter ruleset is ported here as thedefaultfilter. - WARDEN, my own reverse-engineering project, which inspired this one.
- meta-code-verify, Meta's
own source-integrity extension, which documents the
btarchiveendpoint.
If you'd like business to enterprise-level support from Rajeh, you can book a video chat. Book a 1 hour time slot by contacting him on Discord or pre-ordering here. The earlier you pre-order the better, as his time slots usually fill up very quickly.
If you are a business, we encourage you to contribute back to the development costs of the project. You can do so by booking meetings or sponsoring below. All support is welcome from businesses of all sizes.
If you'd like to financially support this project, you can do so here.
Caution
This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or its affiliates. The official WhatsApp website can be found at whatsapp.com. "WhatsApp" as well as related names, marks, emblems and images are registered trademarks of their respective owners.
cellar reads publicly served client bundles for interoperability research. The
maintainers do not condone the use of this project in practices that violate the
Terms of Service of WhatsApp, and call upon the personal responsibility of its
users to use it fairly.
Copyright (c) 2026 Rajeh Taher
Licensed under the MIT License. See LICENSE for the full text.