Inside the Code Split: A Chunk Census of Claude Desktop 1.19367.0
What each of the 44 satellite chunks in Claude Desktop's new code-split build is scoped to, with the strings that prove it.
The artifact
- Report PDF The full census, chunk by chunk (110 KB)
- Raw chunk data (JSON) Per-chunk structured verdicts with the evidence strings (65 KB)
- Require-graph manifest (JSON) Which chunk requires which, computed from the minified bytes (14 KB)
- LaTeX source The document source the PDF is built from (38 KB)
First published in claude-desktop-debian: canonical copy on GitHub.
Summary
Before release 1.19367.0, every line of Claude Desktop's Electron main process shipped as a single minified 15 MB file. In 1.19367.0 that file became a 700-byte stub whose only real job is one require() call, a 7.7 MB core chunk that holds the always-running app, and 44 content-hashed satellite chunks totaling about 1.95 MB that load lazily, each the first time its feature is touched.
claude-desktop-debian repackages Anthropic's official Linux .deb into the formats Anthropic does not serve. Its four Linux-specific patches anchored on the old single-file path, so the split broke the build (fixed in PR #793). Repairing it meant mapping the new layout anyway, and the map turned out to be interesting on its own: the chunk boundaries are a de facto feature inventory of Claude Desktop, drawn by the bundler along the exact seams where the app defers work until a feature is used.
The census answer in one paragraph: 37 of the 44 satellites are first-party feature code. The biggest cluster is the agent-session platform behind Claude Code Desktop and Cowork (worktree management, terminals, remote SSH targets, session secrets, usage probes). A second cluster is enterprise sign-in. A third is the extension system. Five chunks carry vendored open-source libraries, two are tiny shared helpers, and the tail holds the Bluetooth bridge behind Anthropic's Claude Desktop Buddy desk gadget and an Imagine visualization MCP server that still appears to ship dark behind feature flags.
By the numbers
- 1 stub, 1 core chunk (7.7 MB), 44 satellite chunks (~1.95 MB)
- 37 of 44 satellites are first-party feature code
- 44 per-chunk verdicts, every claim backed by a literal string in the file
- Raw data ships next to the report: nobody has to trust the prose
Method
Everything was measured against the official artifact, not the repackage: the SHA-256-pinned claude-desktop_1.19367.0_amd64.deb from Anthropic's APT pool. The app.asar archive was extracted with @electron/asar, all 44 satellites were run through prettier for readability, and the require graph between chunks was computed deterministically with grep over the minified bytes.
Each satellite then got its own analysis pass: 44 parallel model-assisted reviews, each reading one beautified chunk plus its position in the require graph and returning a structured verdict on what the chunk is, what runtime path loads it, and the literal strings that prove it (log prefixes, IPC channel names, endpoint URLs, store filenames). The evidence rule was strict: a claim counts only if the string is actually in the file. Thin verdicts were re-verified by hand against the beautified source.
One caveat applies globally: what triggers loading a chunk is inferred from the require graph and the chunk's own strings, not from tracing a live process, so trigger descriptions are confident but not instrumented.