- Codebuff ist ein CLI-Tool, das die Codebase liest und Dateien ändern oder erstellen kann, wenn man im Terminal Aufgaben in natürlicher Sprache eingibt. Nach der Installation mit
npm i -g codebuffist es ohne Login-Gate sofort nutzbar - Es reduziert den Eingabefluss auf einen Schritt: Nutzer geben nur die gewünschte Aufgabe ein, und Codebuff nutzt dabei u. a. Testläufe, Type-Checker und Paketinstallationen zur Umsetzung der Anfrage
- Intern erstellt es mit tree-sitter eine Codebase-Map, indem es Symbole wie Funktions- und Klassennamen in 11 Sprachen parst, und kombiniert Prompt-Caching mit Claude Haiku 3.5 sowie Aufrufe von Claude/OpenAI
- Der Agent legt relevante Dateien in den Kontext und verarbeitet anschließend Tool-Aufrufe in Form von XML-Tags, etwa
edit_file, Terminalbefehle und Anfragen zum Lesen weiterer Dateien - Alle Accounts erhalten Credits im Wert von bis zu 20 US-Dollar; mehr Credits gibt es im monatlichen 99-US-Dollar-Plan. Wegen großer Kontexte und teurer LLM-Aufrufe sei Codebuff jedoch teurer als Konkurrenzprodukte
Codeänderungen per natürlicher Sprache im Terminal
- Codebuff ist ein CLI-Tool, das wie ein „Cursor Composer im Terminal“ funktioniert
- Man gibt die gewünschte Änderung in natürlicher Sprache ein und drückt Enter; anschließend analysiert es die Codebase und ändert Dateien
- Sowohl das Ändern bestehender Quelldateien als auch das Erstellen neuer Dateien ist möglich
- Es kann Tests, Type-Checker und Paketinstallationen ausführen, um die Anfrage abzuschließen
- Installation und Start erfolgen mit
npm i -g codebuff- Ohne Login-Gate sofort nutzbar
- Alle Accounts erhalten Credits im Wert von bis zu 20 US-Dollar
- Demovideo: YouTube
Von frühen Experimenten zum Produkt
- Die ursprüngliche Idee entstand bei einem Hackathon beim Testen von Sonnet 3.5
- Das erste Skript holte den Codebase-Kontext auf einmal, in einem zweiten Schritt wurden Dateien neu geschrieben
- Dieser zweistufige Prozess ist auch heute noch in Codebuff vorhanden
- Die frühe Demo erzeugte keinen nützlichen Code
- Beim Übergeben von Codebase-spezifischem Wissen an das Modell entstand die Idee zu knowledge.md
- Um auf dem Server des vorherigen Startups einen Endpoint anzulegen, mussten drei bestimmte Dateien geändert werden, was das Modell jedoch nicht wusste
- Nachdem eine Codebase-Anleitung wie für einen neuen Mitarbeiter als Markdown-Datei geschrieben und in den System-Prompt von Sonnet 3.5 eingefügt wurde, verbesserte sich die Codequalität deutlich
- Codebuff nutzt weiterhin eine Datei
knowledge.md, die bei jeder Anfrage automatisch gelesen wird
- Kurz vor dem YC-Interview war die Zuverlässigkeit der Dateibearbeitung der größte Engpass
- Mit mehreren Prompt-Strategien wurde versucht, Strings in der Originaldatei zu ersetzen, doch das funktionierte nicht zuverlässig
- Am Tag vor dem Interview wurde GPT-4o fine-getuned, um von Claude skizzierte Änderungen in einen Git-Patch umzuwandeln
- Am nächsten Tag funktionierte es und wurde kurz vor dem YC-Interview in Produktion ausgerollt
Codebase-Map und Ablauf der Agent-Ausführung
- Beim Start durchsucht es Quelldateien im aktuellen Verzeichnis und in Unterverzeichnissen und erstellt eine Codebase-Map
- Mit tree-sitter werden Funktions- und Klassennamen oder entsprechende Symbole in 11 Sprachen geparst
- Dateibaum und Symbolinformationen werden gemeinsam verwendet
- Eine Anfrage an Claude Haiku 3.5 cached den Codebase-Kontext und senkt die Antwortlatenz auf Nutzereingaben
- Wenn der Nutzer eine Nachricht sendet, wählt Claude zuerst relevante Dateien aus
- Die ausgewählten Dateien werden in den Kontext geladen, danach antwortet der Agent
- Tool-Aufrufe werden als XML-Tags geschrieben und geparst
- Ein Beispiel ist ein Tag zur Dateibearbeitung in der Form
<edit_file path="src/app.ts">…</edit_file> - Über andere Tags sind auch das Ausführen von Terminalbefehlen oder Anfragen zum Lesen weiterer Dateien möglich
Serveraufbau und Infrastruktur
- Der Server leitet Nachrichten an Anthropic oder OpenAI weiter und speichert keinen Zustand
- Für den Datentransfer zwischen Client und Server werden WebSockets verwendet
- In den ersten drei Monaten wurden Anfragen ohne Authentifizierung oder Datenbank über kostenlose Installation und eigene API-Keys verarbeitet
- Später kamen die für den Produktbetrieb nötigen Komponenten hinzu
- Postgres + Drizzle-Datenbank
- Bun-Server
- Render-Hosting
- Auth.js-Authentifizierung
- NextJS-Website
- Stripe-Zahlungen
- BetterStack-Logging
- Retool-Dashboard
Preise, Anwendungsfälle und SDK
- Die Preisgestaltung besteht aus einem begrenzten kostenlosen Nutzungskontingent und einem kostenpflichtigen Plan für 99 US-Dollar pro Monat
- Der kostenpflichtige Plan bietet mehr Credits
- Wegen größerer Kontexte und teurer LLM-Aufrufe sei Codebuff teurer als Konkurrenzprodukte
- Zu den realen Anwendungsfällen gehören das Erstellen von Flutter-Apps, das Schreiben von Unit-Tests, iterative Änderungen und die Automatisierung wiederkehrender Aufgaben
- Ein Nutzer erstellte zwei Flutter-Apps parallel, verursachte dabei 500 US-Dollar an Kosten und stellte die Apps über lange Gespräche mit Codebuff fertig, ohne den erzeugten Code selbst anzusehen
- Mehrere Nutzer bauten an einem Wochenende echte Apps für Teams oder den persönlichen Gebrauch
- Häufige allgemeine Einsatzzwecke sind das Schreiben von Unit-Tests, Schleifen zur Codeanpassung bis Tests bestehen, das Einrichten von OAuth-Flows und API-Scaffolding
- Für Nutzer, die Codebuff in eigenen Systemen verwenden möchten, gibt es außerdem ein Alpha-SDK
- Apps können dieselbe Natural-Language-Schnittstelle aufrufen und Codeänderungen erhalten
- Link zur Early-Access-Anmeldung: Retool-Formular
1 Kommentare
Hacker-News-Kommentare
Glückwunsch zum Launch von Codebuff, aber es wirkt Aider sehr ähnlich. Aider ist Open Source, und wenn man darum bittet, Dateien hinzuzufügen, muss man es nur genehmigen. Aider kann auch Befehle ausführen. Ich frage mich, was der Unterschied ist.
Demos gelten immer nur für einfache Projekte, und es gibt zu wenige Beispiele für reale komplexe Projekte. Ich brauche Hilfe dabei, die schwierigen Teile eines PR zu lösen. Viele Tools helfen beim Einstieg, reichen aber bei der Problemlösung nicht aus.
Ich möchte keine 20 $ dafür bezahlen, meinen SSH-Schlüssel und meine Zwischenablage an mehrere Dritte zu senden. Ich würde lieber Software kaufen, die Inline-Shell-Support ohne Netzwerkaufrufe bietet. Das ist meine allgemeine Meinung zu solchen Produkten.
Codebuff war früher als manicode bekannt und ist nützlich für komplexe Refactoring-Aufgaben. Ich habe es in einem Rust-Projekt verwendet, um Dateien in Modulverzeichnisse aufzuteilen, und es konnte Tests ausführen und Compilerfehler prüfen. Dafür wurden etwa 100 Credits verbraucht.
Ich frage mich, ob der Code über den Server übertragen wird. Es scheint besser zu sein, das als lokalen Service umzusetzen. Ich frage mich, ob das LLM Befehle erhalten kann, die zum Verlust von Dateien führen könnten, und wie das verhindert werden soll.
Es ist riskant und sicherheitsanfällig, wenn ein LLM Befehle ohne menschliche Prüfung ausführt.
Es gibt bereits AIDE, Continue, Cody, Aider und Cursor. Ich frage mich, warum man dieses Tool verwenden sollte.
Ich habe dieses Tool ausprobiert, und in mancher Hinsicht ist es besser als CoPilot und Cursor. Besonders bei CoPilot fühlt es sich nicht so an, als würde es mit dem Editor „konkurrieren“. Ich habe Sicherheitsbedenken und frage mich, wie sensible Dateien behandelt werden.
Ich frage mich, ob es in Bezug auf die Codequalität besser ist als Cursor. Ich nutze Cursor und spare damit Zeit beim Kopieren von Dateien. Ich programmiere aber immer noch über die chatGPT-/claude-Oberfläche.
GPT-4o wurde feinabgestimmt, um Claudes Änderungsskizzen in Git-Patches umzuwandeln. Die Trainingsdaten wurden spät in der Nacht erzeugt, und der Fine-Tuning-Job lief während des Schlafens. Ich frage mich, wie genau der vollständige Inhalt der Trainingsdaten aussah und wie die Änderungsskizzen und Git-Patches funktioniert haben.