- Seit Claude Code v2.1.181 ist das nach Rust portierte Bun integriert; dadurch ist der Start unter Linux 10 % schneller, die meisten Nutzer bemerken die Änderung jedoch kaum
- Untersucht man die Strings der ausführbaren Datei, lassen sich Bun v1.4.0, das noch kein offizielles Tag hat, sowie Pfade zu Rust-Quelldateien erkennen
- In
~/.local/bin/claude wurden 563 .rs-Dateinamen gefunden, darunter src/runtime/bake/dev_server/mod.rs
- Die integrierte Version lässt sich auch verifizieren, indem man per
BUN_OPTIONS eine TypeScript-Datei vorlädt und Bun.version ausgibt; sie ist 1.4.0
- Die Rust-Version wurde als Bun Canary verteilt und läuft über Claude Code bereits auf Millionen von Geräten in Produktion
In Claude Code integriertes, Rust-basiertes Bun
- Laut Rewriting Bun in Rust verwendet Claude Code seit der am 17. Juni veröffentlichten Version v2.1.181 den Rust-Port
- Der Start unter Linux wurde um 10 % schneller
- Andere Unterschiede bemerkten Nutzer kaum; Jarred Sumner bewertete das als „Boring is good“
- Über Claude Code läuft es bereits auf Millionen von Geräten in Produktion
- In den Strings der ausführbaren Claude-Datei lässt sich die integrierte Bun-Version finden
strings ~/.local/bin/claude | grep -m1 'Bun v1'
- In einer macOS-arm64-Umgebung wird
Bun v1.4.0 (macOS arm64) ausgegeben
- Da das neueste offizielle Release auf GitHub zu diesem Zeitpunkt Bun v1.3.14 vom 12. Mai war, enthält Claude Code damit eine noch nicht offiziell veröffentlichte v1.4.0-Preview
- Die Rust-Version wurde als Bun Canary veröffentlicht und kann mit
bun upgrade --canary installiert werden
Rust-Quellen und Versionsprüfung
- Extrahiert man die Rust-Quellpfade aus der ausführbaren Datei, lassen sich 563 Dateinamen finden
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
- Die Liste enthält unter anderem folgende Pfade
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
- Die von Ajan Raj geteilte Methode lädt per
BUN_OPTIONS eine TypeScript-Datei vor und gibt die in Claude Code integrierte Bun.version direkt aus
cat > /tmp/bun-version.ts <<'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
- Auch dieser Befehl gibt
1.4.0 aus
- In einem Commit vom 17. Mai wurde die
package.json-Version auf 1.4.0 geändert und seither beibehalten; sie ist bislang in keinem Tag-Release außer canary enthalten
1 Kommentare
Meinungen auf Hacker News
Es ist schwer nachzuvollziehen, warum ein TUI über JavaScript in React für das Terminal laufen muss. Dass Anthropic zur Verbesserung des TUI sogar die Runtime übernommen hat, lässt die Engineering-Qualität noch zweifelhafter erscheinen. Wenn ein Rewrite so einfach wäre, wäre es deutlich günstiger gewesen, Claude Code in eine native Sprache zu portieren.
Ein Rewrite ist selbst bei Bun nicht einfach; ein Nicht-UI-Entwicklungstool mit klaren API-Verträgen und Tests ist nach einem Rewrite leichter vertrauenswürdig als ein UI-Tool mit unklaren Funktionen und wenigen Tests.
Nutzerseitiger Code und schnell wechselnde UX-Schichten werden vermutlich in dynamische Systeme wandern, die schnelle Iteration ermöglichen, während Infrastrukturschichten in sichere Systemumgebungen wie Rust gehen. Java/C# liegen in der Mitte, aber künftig dürften TypeScript/Python für UX ausreichen und Rust für Systemarbeit besser geeignet sein, sodass ihre Position schwächer wird.
https://avi.press/posts/2026-07-10-after-7-years-in-producti...
https://github.com/openai/codex/discussions/1174
Wenn man Jarreds Originaltext liest, scheint der Grund für den Wechsel klar zu sein: Was in Zig Handarbeit war, wird in Rust automatisiert. Sowohl Menschen als auch Agents sind nichtdeterministisch; wenn man in Zig Speicherlebensdauern und explizites Freigeben manuell nachverfolgt, häufen sich über lange Zeit übersehene Bugs an. Rust eliminiert diese Fehlerklasse und ist damit aus Sicht des Engineering-Managements ein guter Kompromiss.
Besonders Compilerfehler sind deterministische Sicherheitsnetze, die Coding-Agents brauchen; wenn man Claude eine Möglichkeit gibt, Korrektheit zu testen, und das Ziel „mach es kompilierbar“, funktioniert das gut. Den allgemeinen Ansatz, probabilistische Ausgaben durch deterministische Tests in belastbare Garantien zu verwandeln, habe ich hier zusammengefasst: https://michael.roth.rocks/blog/verification-surface/
So kann Zig genauso robust sein wie Rust, aber wenn man ein Allokationsmuster wie in Managed Languages möchte, wie es LLMs bevorzugen, passt Zig nicht.
unsafeRust enthält, frage ich mich, ob man wirklich sagen kann, dass eine Fehlerklasse automatisch eliminiert wird: https://news.ycombinator.com/item?id=48967630unsafe, daher dürfte dieses Problem vermutlich nicht automatisch beseitigt werden.Unabhängig von Jarreds oder Simon Willisons Einschätzung sehe ich das Ganze ziemlich negativ. Das größere Problem als Anthropics Bun-Übernahme oder der AI-Rewrite ist die unreife Vorgehensweise: angefangen bei der Haltung „Das ist nur mein Branch, ihr überreagiert“ bis hin zum Mergen eines PRs mit über einer Million Zeilen in weniger als einem Monat.
Die Kommunikation war sehr schlecht, hat Vertrauen beschädigt und Spaltung gefördert; ich frage mich, ob es wirklich so schwer gewesen wäre, dem Ansatz zu folgen, den das TypeScript-Team bei 7.0 gewählt hat.
Das in Claude enthaltene Bun v1.4.0 scheint eine noch nicht veröffentlichte Preview-Version zu sein. Wenn das stimmt, wirkt es, als sei das FOSS-Projekt Bun stillschweigend zu etwas anderem geworden; gut, dass ich die Prüfung nur als TODO stehen ließ und es nicht eingeführt habe.
Ich kann kein Governance-Dokument für Bun finden und frage mich, ob es nun faktisch eine Struktur ist, in der Anthropic sowohl die Arbeit als auch die Merge-Entscheidungen bestimmt.
Ich verstehe nicht, warum man das so kompliziert um Bun herum gelöst hat. Wenn ein Agent Zig nach Rust portieren kann, hätte man Claude Code auch direkt von JavaScript nach Rust neu schreiben können, um die Runtime-Abhängigkeit loszuwerden und die Performance zu erhöhen.
Bun dürfte neben Claude Code auch externe sowie interne Nutzer bei Anthropic haben und verschafft ihnen ein JavaScript-Runtime- und Tool-Ökosystem, das Coding-Modelle bevorzugen könnten. Künftig könnte Anthropic sogar eine Cloud anbieten, die auf das Ausführen und Verwalten solcher Apps spezialisiert ist; allein durch den Zugang zur Entwickler-Community hätte das deutlich mehr Wirkung, als nur Claude Code nach Rust zu portieren.
Lässt man Spekulationen und Emotionen weg, interessiert vor allem die tatsächliche Ausführungsqualität. Man sollte nicht nur die Startgeschwindigkeit prüfen, sondern auch RAM- und CPU-Verbrauch sowie das Verhalten bei Endlosschleifen oder Deadlocks; wenn es gleich gut oder besser ist als vorher, wäre das ziemlich beeindruckend.
Als Entwickler gefällt mir die Möglichkeit nicht, dass AI Jobs übernimmt. Aber wenn jeder mit einfachen Anforderungen die gewünschte Software bauen kann, könnte das die Welt verbessern. Wenn einem Microsofts Datensammlung missfällt, lässt man sich von AI ein Betriebssystem bauen; wenn einen Googles Abhören stört, ein Mobiltelefon – eine solche technische Selbstversorgung könnte möglich werden, und dagegen wirkt die eigene Jobsicherheit nebensächlich.
Deshalb ist es umso wichtiger, die Technologie Open Source zu halten; andernfalls wiederholen wir nur die bestehenden Monopolstrukturen und verlieren zusätzlich Arbeitsplätze.
Kürzlich hatte ich bei der Nutzung von Claude Code in einem Kitty-Tab einen Segmentation Fault; danach reagierte der ganze Tab nicht mehr auf Eingaben. Es erscheint zwar ein Link zum Melden, aber man kann ihn nicht anklicken, und er ist codiert, sodass nicht erkennbar ist, welche Informationen gesendet werden.
Segmentation faultausgegeben wurde, war es wahrscheinlich kein Segmentation Fault, sondern ein Hänger. Bei einem echten Fehler kann man nach der Rückkehr zur Shellreseteingeben, auch wenn es nicht auf dem Bildschirm zu sehen ist, um den Tab wiederherzustellen.unsafeRust übertragen hat, bleibt der verursachende Code ebenfalls erhalten. Das wird nicht gelöst sein, bevor er zu idiomatischem, speichersicherem Rust refaktoriert wurde.Sie wirken wie extrem erfolgreiche, aber schlechte Ingenieure, die Probleme gut beschreiben können und ein unbegrenztes Token-Budget haben. Wenn sie die Token-Kosten selbst tragen müssten, hätten sie einen finanziellen Anreiz, die Software effizienter zu machen.
Die verborgene Realität von AI-Rechenzentren ist, dass die Effizienz von GPU-Clustern selbst bei nur 40–60 % einfach dadurch kompensiert wird, dass man mit Geld mehr Hardware kauft. Der Grund für die Angst vor chinesischen Wettbewerbern könnte auch sein, dass diese sich solche Verschwendung nicht leisten können.
Diese Arbeit ist Transpiling, und die Qualität ist auch nicht gut. Der erzeugte Code ist weit von idiomatischem Rust entfernt und kann durchaus als hässlich gelten.
Normalerweise fließen bei einem Rewrite die Lehren aus der bestehenden Codebasis ein; wenn Agenten Datei für Datei portieren, hat man diesen Vorteil nicht. In beiden Fällen entsteht eine unidiomatische Übersetzung, aber mit einem LLM kommen Nichtdeterminismus und enorme Kosten hinzu.
In letzter Zeit ist Claude Code deutlich instabiler als früher, und durch TUI-Renderingfehler wird der Gesprächsverlauf häufig beschädigt.
Wenn man es in den Hintergrund schickt,
resetausführt und es wieder in den Vordergrund holt, ist es behoben. Als ich Claude um eine Diagnose bat, sagte es, bei ihm gebe es solche Bugs nicht und ein anderes Programm sei schuld, obwohl nur tmux und Claude liefen. Falls kürzlich die Rust-Version ausgerollt wurde, passt das zeitlich ungefähr zum Qualitätsabfall.