
tracethat.dev
Kacper Pietrzak · Coding
Das Funktions-Tracing wird zum Ausgangspunkt für einen JavaScript-Debugger und einen Python-Debugger, die tracethat.dev bietet, einem Werkzeug für Debugging ohne Einrichtung: du umschließt Funktionen in JavaScript, Python oder Go, und das Tool streamt ihre Argumente, Rückgabewerte, Laufzeiten und Fehler an eine Live-Debug-Oberfläche.

Über tracethat.dev
About
Was ist tracethat.dev
tracethat.dev ist ein Open-Source-Tool für Remote-Debugging, das Kacper Pietrzak für Entwickler gebaut hat, die es leid sind, print-Anweisungen über den ganzen Code zu verteilen. Statt eine Wand aus Logs auszugeben und durch irrelevante Ausgaben zu scrollen, umschließt du eine Funktion, und das Tool sammelt die nützlichen Details von selbst ein. Es richtet sich an Teams und an Einzelentwickler, die Code debuggen, der irgendwo läuft, wo sich ein klassischer Debugger schlecht anhängen lässt, etwa auf einem entfernten Server, in einem Container oder in einem Hintergrundjob.
Die Idee dahinter ist einfach. Debuggen per print zwingt dich, vorab zu entscheiden, was protokolliert wird, und den Code jedes Mal neu zu starten, wenn du falsch geraten hast. tracethat.dev dreht das um. Der Reporter erfasst Argumente, Rückgabewerte, Laufzeit, Aufrufstack und jede geworfene Ausnahme, ein einziger Lauf reicht also meist, um das Problem zu finden.
Der Preis dafür ist die Reichweite. Der Go-Reporter kann wegen der Funktionsweise des Typsystems keine beliebigen Funktionen umschließen, Go-Nutzer protokollieren Ereignisse also von Hand. Ereignisse bleiben nur eine Zeit lang auf dem Server, das Tool ist also kein Langzeit-Logarchiv. Und du musst den Reporter selbst in deinen Code einbauen.
Erste Schritte
- Gehe auf tracethat.dev und starte eine neue Sitzung. Die Seite erzeugt ein Token, das zugleich als Raum-ID und als Verschlüsselungsschlüssel dient.
- Installiere den Reporter für deine Sprache:
npm install tracethat.dev,pip install tracethatodergo get github.com/pietrzakacper/tracethat.dev/reporters/golang/tt. - Registriere das Token in deiner App mit
registerToken("dein-token")(JavaScript) oderregister_token('dein-token')(Python). - Umschließe die Funktion, die du beobachten willst, oder protokolliere ein einzelnes Ereignis mit
tracethat.log, und führe dann deinen Code aus. - Sieh zu, wie die Ereignisse in Echtzeit im Browser eintreffen, und klappe sie auf, zu oder filtere sie, um dich aufs Wesentliche zu konzentrieren.
Produktinformationen
Ein kurzer Überblick über Preise, unterstützte Plattformen und die Leistung von tracethat.dev.
Am besten für
Die Nutzer, Aufgaben und Szenarien, für die dieses Tool am besten passt.
Nutzer
- Backend-Entwickler
- JavaScript- und TypeScript-Entwickler
- Python-Entwickler
Aufgaben
- Eine Funktion debuggen, die du lokal nicht reproduzierst
- Langsame Codepfade messen
- Stille Ausnahmen abfangen
Szenarien
- Ein Hintergrundjob auf einem Staging-Server wirft einen Fehler, den du auf deinem Laptop nicht reproduzierst; umschließt du den fehlschlagenden Schritt, gehen die echten Eingaben direkt in deinen Browser.
- Eine Web-App verhält sich nur in Produktion falsch; der Reporter per `script`-Tag fügt sich in dein HTML ein und streamt ohne Build-Schritt.
- Du debuggst zu zweit oder bittest einen Kollegen um Hilfe; teilst du das Sitzungs-Token, sehen beide denselben Stream live.
Wichtigste Funktionen
Funktions-Tracing in einer Zeile
Der zentrale Griff des Reporters ist das Umschließen einer Funktion, sodass jeder Aufruf als Tracing-Ereignis festgehalten wird. Damit verhält sich der Reporter zugleich wie ein JavaScript-Debugger für Browser und Node.js und wie ein Python-Debugger für Skripte, die keinen klassischen Debugger erreichen. In JavaScript schreibst du traceThat(hello)("world") und das Tool greift die Argumente, den Rückgabewert, die Dauer des Aufrufs, den Aufrufstack und jede geworfene Ausnahme ab. Python nutzt dieselbe Idee über einen @tracethat-Dekorator. Das alles bekommst du, ohne eine einzige print-Anweisung zu schreiben.
Live gestreamte Weboberfläche
Die Ereignisse warten nicht auf ein Neuladen. Der Webclient hält einen Socket zum Server und schiebt jedes neue Ereignis in deinen Raum, sobald es auftritt. Du kannst einen Aufruf aufklappen, um alle Details zu sehen, unwichtige zuklappen und nach bestimmten Werten filtern. Sie ist darauf ausgelegt, eine fokussierte Ereignisliste zu lesen statt einen Scroll-Puffer.
Token-basierte Verschlüsselung
Dein Token hat eine Doppelfunktion: Raumnummer und Verschlüsselungsschlüssel. Der Reporter verschlüsselt jedes Ereignis, bevor es deine App verlässt, und der Webclient kann die Ereignisse nur entschlüsseln, wenn du ihm dasselbe Token gibst. Der Raum wird über den SHA-256-Hash des Tokens bestimmt, der Server übergibt deiner Sitzung also nur die für sie bestimmten Ereignisse.
Reporter für mehrere Sprachen
Es gibt Reporter für JavaScript/TypeScript, Python und Go. Der JS-Reporter wird über npm installiert und lässt sich auch über ein einfaches script-Tag einbinden, was ohne Build-Pipeline hilfreich ist. Python kommt über PyPI. Go kommt direkt von GitHub. Alle sprechen mit demselben Server und derselben Oberfläche, ein gemischter Stack landet also an einem Ort.
Manuelles Protokollieren von Ereignissen
Wenn du nicht eine ganze Funktion umschließen willst, setzt du eine Markierung an einer einzelnen Stelle. tracethat.log('hello function started') hält ein Ereignis fest, und du kannst zusätzliche Daten mitgeben. Das ist die erste Wahl für Go, dessen Reporter keine Funktionen generisch umschließen kann, und für alle, die nur einen Prüfpunkt zwischen zwei Zeilen wollen.
In-Memory-Server mit automatischer Bereinigung
Der Server hält die Ereignisse im Speicher, statt sie auf dauerhaften Speicher zu schreiben, und löscht sie nach einer Weile. Das hält die Einrichtung schlank, und es bleibt kein Log zum Verwalten übrig. Es bedeutet zugleich, dass die Ereignisse fürs Live-Debugging gedacht sind, nicht zum Nachschauen, was letzte Woche passiert ist.
Vor- und Nachteile
Vorteile
- Keine Einrichtung außer dem Einbau des Reporters: du konfigurierst keinen Agenten, keinen Collector und keinen Speicher.
- Erfasste Daten sind breiter als `print`-Anweisungen und decken Argumente, Rückgabewerte, Laufzeiten, Aufrufstacks und Ausnahmen in einem Durchgang ab.
- Die Live-Oberfläche mit Filtern und Aufklappen/Zuklappen macht einen Lauf deutlich lesbarer als rohe Logs.
- Open Source unter der MIT-Lizenz, du kannst den Code lesen, selbst hosten oder beitragen.
- Läuft mit JavaScript, Python und Go, was zu Teams mit gemischtem Backend passt.
Nachteile
- Der Go-Reporter kann keine beliebigen Funktionen umschließen, Go-Nutzer protokollieren Ereignisse also von Hand, was mehr Handarbeit bedeutet als in JS oder Python.
- Ereignisse liegen im Speicher und werden nach einer Weile gelöscht, du kannst es also nicht als dauerhaftes Log für die Nachanalyse eines Vorfalls nutzen.
- Du musst trotzdem deinen Quellcode ändern, um den Reporter einzubauen, es ist also nicht berührungsfrei für Apps, die du nicht bearbeiten kannst.
- Es ist ein kleines Projekt mit einem einzigen Maintainer und bescheidener Nutzerbasis, die Community-Unterstützung ist also dünner als bei einer großen kommerziellen Plattform, und Sonderfälle musst du womöglich selbst lösen.
Häufige Fragen
Es ist ein Remote-Debugging-Tool, um zu sehen, was eine laufende App tatsächlich tut. Du umschließt Funktionen, und das Tool streamt ihre Argumente, Rückgabewerte, Laufzeiten und Fehler in eine Browser-Oberfläche, so lässt sich Code debuggen, der mit einem normalen Debugger schwer erreichbar ist.
Ähnliche Inhalte
Entdecke passende Tools, Skills und Artikel zu tracethat.dev.
Alternativen zu tracethat.dev

Udon
Udon · Coding · ProduktivitätUdon macht aus einem Apple-Silicon-Mac einen Heimserver, den Sie im Browser steuern, mit Containern, Dateifreigaben und einem optionalen KI-Systemadministrator.

offstage
offstage cloud · Coding · Produktivitätoffstage gibt KI-Agenten und CI-Jobs einen echten Mac: ein frisches macOS-27-Konto auf Apple Silicon, per API gesteuert und sekundengenau abgerechnet.
BotBus
Chengdu Tuyang Tusen Technology Co., Ltd. · Coding · ProduktivitätMit BotBus lassen sich KI-Agenten vom Smartphone steuern, auch wenn der Rechner im Büro steht: Befehle freigeben, Aufgaben starten, Ergebnisse lesen.
