Post

Convergence Boy
Convergence Boy@vicnaum·
I reverse-engineered @claudeai Code's binary to add a feature I always wanted: When context fills up - instead of nuking everything with /compact - I can now surgically strip tool calls/results and thinking blocks while keeping all actual messages intact.
English
81
89
1.6K
197.8K
Convergence Boy
Convergence Boy@vicnaum·
The problem was: when you're deep in a session, context is 96% full, and your options are: - /compact: summarizes everything, loses detail, costs an API call - /clear: nuclear option, start over I wanted to strip the heavy garbage and leave only user/agent messages instead.
English
0
0
0
8.6K
Convergence Boy
Convergence Boy@vicnaum·
So I cracked open the binary. Claude Code is a Bun-compiled executable: ~183MB. All JS is embedded in a __BUN Mach-O section - 4,945 modules, fully minified. Even with `--bytecode`, Bun always stores the full JS source alongside. The bytecode is just a startup optimization.
Convergence Boy tweet media
English
0
0
0
8.4K
Convergence Boy
Convergence Boy@vicnaum·
What I found inside: Claude already HAS a microcompact() system. It runs before every API call, strips old tool results, saves them to disk, replaces images with placeholders. But it doesn't touch everything and leaves many of the thinking intact...
English
0
0
0
7.1K
Convergence Boy
Convergence Boy@vicnaum·
It has limitations: - 20K token minimum savings - only kicks in near context limits - keeps last 3 tool results - never removes tool_use blocks. Even after it runs, tons of tool artifacts remain in context. That's by design, but it's not enough when you're running out of space.
English
0
0
0
7.1K
Convergence Boy
Convergence Boy@vicnaum·
There's also a thinking cleanup before every API call: - filterOrphanedThinking(): removes messages that are ONLY thinking - removeTrailingThinking(): strips thinking from end of last message But thinking blocks inside messages with tool_use? Those survive. They pile up.
English
0
0
0
7K
Convergence Boy
Convergence Boy@vicnaum·
So I built two new commands: /microcompact: strips ALL tool calls + results + media. No thresholds, no "keep last 3". Picker lets you choose how far back to strip. /clear-thinking: strips ALL thinking blocks backward from selected message. Both instant with no LLM calls.
Convergence Boy tweet media
English
0
0
0
7K
Convergence Boy
Convergence Boy@vicnaum·
The meta part: I reverse-engineered Claude Code using Claude Code :) 48 sessions over several days. Built 20 tools: binary extraction, module splitting, vendor fingerprinting, AI renaming (23,105 identifiers via Gemini for ~$2), and a full round-trip pipeline.
Convergence Boy tweet media
English
5
2
52
7.2K
Convergence Boy
Convergence Boy@vicnaum·
I also built bun-demincer - a generic toolkit for cracking open ANY Bun-compiled binary. Extract embedded JS, split into modules, identify npm packages (fingerprint DB is 1,668 packages rn), deobfuscate, organize into directories and reassemble it back! github.com/vicnaum/bun-de…
English
2
47
229
47K
Glenn 'devalias' Grant
Glenn 'devalias' Grant@_devalias·
@vicnaum Oh, you’re already using wakaru in it too; even closer to my interests! ;) Did you see the wakaru v1 rust rewrite that just dropped recently? Massive speedups and memory usage improvements; and we’re still in very early stages of benchmarking/optimising/etc. cc // @pionxzh
English
4
0
0
33
Paylaş