senn-techsenn-tech
KI & Entwicklung
KI & Entwicklung2026-10-11· Von Franz Senn

REA: 83.000 GitHub-Sterne in 44 Stunden, nachgemessen

Am 9. Oktober 2026 zählte github.com/morluto/rea 36.003 Sterne, gemessen um 13:10 UTC. Zwei Tage später, am 11. Oktober um 09:41 UTC, standen dort 83.089. Das sind 47.086 Sterne in 44,5 Stunden, im Schnitt 1.058 pro Stunde. Wir haben das Werkzeug selbst gelesen und die Kurve nachgemessen. Dabei kommen zwei Ergebnisse heraus, die man auseinanderhalten muss: Das Tool ist real, MIT-lizenziert und handwerklich gut. Die Popularität ist es nicht.

Was REA auf den Tisch legt

REA steht für Reverse Engineer Anything und kommt als MCP-Server, als CLI namens rea und als Skill-Pack. Ein Agent bekommt damit Werkzeuge, um fremde Software zu verstehen: ein natives Binary, eine Electron-Anwendung, eine Android-APK, eine Firmware, ein Netzwerk-Mitschnitt, ein Prozesslauf. Die Liste der unterstützten Agent-Clients steht im Code in der Datei SupportedClients.ts und nennt Claude Code, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, GitHub Copilot CLI, VS Code und Grok. Das Paket verlangt Node ^22.19.0, ^24.11.0 oder >=26.0.0.

ZielVoraussetzung, die REA selbst nennt
Natives BinaryHopper, Ghidra oder IDA
Electron und JavaScriptkeine Engine
Android-APKHeadless JADX und ein vollständiges JDK auf Linux, macOS oder Windows x64
FirmwareBinwalk oder Unblob auf Linux
Prozessverhaltennatives PTY auf Linux oder macOS
NetzwerkverkehrHAR-Datei, für native Captures mitmdump auf Linux

Die native Spur hängt also an proprietären Disassemblern, die Analyse von JavaScript und Electron nicht. Für uns ist das die interessantere Hälfte, denn sie läuft ohne Zusatzausrüstung auf einem Linux-Host.

Die Kurve, nachgemessen

Der tragfähige Weg führt über die Gabelungen. GET /repos/OWNER/REPO/forks?sort=newest&per_page=100 liefert 100 Gabelungen mit Zeitstempel pro Anfrage, und die GitHub-API drosselt unangemeldet bei 60 Anfragen pro Stunde. Die Zeitspanne innerhalb einer Seite ist die aktuelle Rate, die Seitenzahl zusammen mit dem Datum ist die Kurve. Wir haben elf Seiten gezogen.

Seite der ListeZeitraum ihrer 100 EinträgeGabelungen pro Stunde
116,4 Minuten367
2019,3 Minuten310
5516,6 Minuten362
11032,3 Minuten186
14055,4 Minuten108
165186 Minuten32
166 bis 17986 Tage insgesamtrund 16 pro Tag
Gabelungen pro Stunde, abgeleitet aus der GabelungslisteSeite 165, 07.10.32Seite 140, 09.10.108Seite 110, 09.10.186Seite 55, 10.10.362Seite 20, 11.10.310Seite 1, 11.10.3670400
Eigene Messung am 11.10.2026 gegen 09:41 UTC. Je Anfrage der Gabelungsliste mit sort=newest werden 100 Einträge zurückgegeben. Die Spanne zwischen erstem und letztem Zeitstempel einer Seite ergibt die Rate. Umrechnung: 100 durch diese Spanne in Stunden. (Quelle: Eigene Messung über die GitHub-API)

Die Grundlinie des Repos steht auf den hinteren Seiten. Seite 166 bis 179 enthalten alles vor dem 7. Oktober: rund 1.390 Gabelungen in 86 Tagen, also etwa 16 pro Tag. Die Seiten 1 bis 165 enthalten 16.500 Gabelungen in 3,69 Tagen, also rund 4.470 pro Tag. Das ist das 280-Fache der eigenen Grundlinie.

Ein echter Anstoß aus einer weltweiten Leserschaft folgt den Wachstunden und ebbt nach ein, zwei Tagen ab. Um 03:00, 06:00 und 09:00 UTC zeigen unsere Messwerte 310, 302 und 367 Gabelungen pro Stunde. Drei Tage flach durch die Nacht ist eine Maschine.

Die Begleitgrößen laufen nicht mit. 83.089 Sterne stehen 269 Beobachtern gegenüber, das sind 0,32 Prozent, und 82 Beitragenden, das sind 0,10 Prozent. Zum Einordnen: Ein Repository, das viele Leute sich nur vorgemerkt haben, landet bei etwa zwei Prozent Beobachtern. Von den letzten 100 Ereignissen des Repos waren 77 WatchEvents, und diese 100 Ereignisse passten in 2 Minuten 57 Sekunden. Bei Hacker News finden sich vier Beiträge auf die Repo-URL mit 4, 3, 2 und 1 Punkt und zwei Kommentaren insgesamt. Von den 83.000 Sternen ist dort oben keiner entstanden.

Das npm-Paket erzählt dieselbe Geschichte in einer anderen Einheit. 31 Versionen, die erste am 12. Juli 2026, dann eine Lücke von zweieinhalb Monaten, dann 11 Veröffentlichungen in acht Tagen mit drei Major-Releases in vier Tagen.

Der Abgleich mit der Registry-Realität fällt knapp aus. Das offizielle MCP-Dateisystem-Paket @modelcontextprotocol/server-filesystem hat einen Bruchteil dieser Sterne und in der vergangenen Woche 447.296 Downloads geholt, REA 73.651. zod steht bei 44.000 Sternen und 341.697.718 Downloads in derselben Woche, playwright bei 97.000 Sternen und 112.438.501. Sterne messen Aufmerksamkeit, Downloads messen Benutzung. Für das Zeitfenster 3. bis 9. Oktober meldet die Registry 39.279 Downloads, die rollende Woche jetzt 73.651. Um 12:45 UTC zeigte der Badge-Dienst für das Repo rund 90.000 Sterne, gerundet, gegen 83.089 um 09:41 UTC. Das sind rund 2.300 Sterne pro Stunde. Die Kurve läuft nicht aus, sie zieht an. Auf der Autorseite: Das Konto morluto hatte am 9. Oktober 162 öffentliche Repositorien und am 11. Oktober 252. Die 15 neuesten davon sind ausnahmslos Gabelungen, mehrere mit rea im Namen, allesamt awesome-Listen, die das eigene Projekt führen sollen. Die Repo-Themen behaupten außerdem eine Integration mit einem Agenten-Werkzeug namens dsh. Dieses Wort kommt im Quelltext der Version 6.1.0 und im ausgelieferten npm-Paket 6.4.0 null Mal vor. Ein Thema ist dort Katalogwerbung.

Die Prüfung in zehn Anfragen

  1. GET /repos/{owner}/{repo} für Sterne, Gabelungen, Beobachter, Anlagetage und Lizenz.
  2. GET /repos/{owner}/{repo}/contributors?per_page=1, die Link-Header nennt die Anzahl der Beitragenden.
  3. GET /repos/{owner}/{repo}/events?per_page=100 für die Mischung der Ereignistypen und deren Zeitspanne.
  4. GET /repos/{owner}/{repo}/forks?sort=newest auf der ersten und einer tiefen Seite für Grundlinie und Gegenwert.
  5. Die Suche bei Hacker News nach der Repo-URL, plus registry-Downloads und Aufmerksamkeitsverlauf des Autorenkontos.
GrößeMesswert bei REAkritisch ab
Beobachter zu Sternen0,32 Prozentunter 1 Prozent
Beitragende zu Sternen0,10 Prozentunter 0,2 Prozent
Gabelungen pro Tag zu Grundlinie280-Fachesmehr als 20-Faches
Tag-Nacht-Verteilungflach über drei Tagekein Rückgang zwischen 02:00 und 07:00 UTC
HN-Beiträge auf die Repo-URLvier Beiträge, höchstens vier Punktefünfstellige Sterne ohne Diskussion
Die Prüfung in fünf AnfragenStammSterne, Gabeln, Beobachter,LizenzBeitragendeLink-Header der AnfrageEreignisseTypmischung und ZeitspanneGabelkurveerste Seite gegen Seite 166UmgebungHN, npm, Kontoaltern
Unsere Messreihenfolge vom 11.10.2026; die Gabelkurve entscheidet, weil nur sie sich ohne Anmelde-Token lückenlos zurückverfolgen lässt. (Quelle: Eigene Messung über die GitHub-API)

| Kontoaltern des Autoren | 2020 gegründet, Originalsubstanz ab 2026 | mehrere hundert Repos innerhalb von Tagen |

Zwei Fallen bei diesem Verfahren

Der Befund, den wir beinahe gemeldet hätten, war keiner. Die Gabelungsliste liefert unangemeldet bei allen Seiten denselben Wert user: null, auch auf der Seite mit den organischen Einträgen aus dem Juli. Hätten wir das als gelöschte Wegwerf-Konten gelesen, wäre eine Erfundenheit auf eine Erfundenheit gesetzt. Der zweite Fehler steckt in der Kontrolle: Unser Vergleichsrepo sollte die Null widerlegen und lieferte null Zeilen zurück. Eine Kontrolle, die nichts zurückgibt, beweist gar nichts. Erst wenn sie Zeilen liefert, sagt ihr Ergebnis etwas.

Bei den Konten der Ereignis-Absender hat sich unsere Einordnung aus dem ersten Prüflauf geschärft. Am 9. Oktober hießen die neuesten Gabelnden so wie Wegwerf-Konten. Am 11. Oktober waren acht stichprobenartig geprüfte Absender Konten von 2011 bis 2024 mit bürgerlichen Namen. Das entlastet nicht, es verschiebt den Mechanismus: Eingekaufte Beteiligung über ältere Konten ist die teurere und persistentere Variante.

Getrennt nach Evidenz

PrüfungErgebnis
LizenzMIT, LICENSE-Datei und API-Eintrag stimmen überein. Gemessen.
Ausgeliefertes Paket 6.4.0kein install-Hook, keine Telemetrie, ausgehende Adressen nur hopperapp.com und Spezifikationen. prepare und prepack existieren und laufen bei Installation aus Git oder lokalem Pfad.
Wachstumszahleneigene Messungen vom 9. und 11. Oktober, oben mit Zeitstempel.
Anbieter- und DrittangabenSternenhistorien-Dienste melden 53.800 Sterne allein in dieser Woche, ein Verzeichnis 7.744 an einem Tag. Das sind Aufzeichnungen über die Kurve, keine Urteile über die Qualität.
Unabhängische Nutzungnicht gefunden. Kein Bericht, der eine mit dem Werkzeug erzielte Analyse an einem eigenen Binary belegt, kein Blogbeitrag vor Oktober, keine nennenswerte Diskussion.
Eigener Einlauftestnicht gefahren. Die Vertrauensprüfung war zuvor durchgefallen.

Wo wir es eingesetzt hätten

Drei Kandidaten aus unserem Betrieb standen zur Wahl: der Host unseres Transport-Frontends, der Host mit dem ERP-Build und die Pilotmaschine für das Mailarchiv. Auf dem Frontend-Host laufen Node 22.22 und ein unterstützter Client, die technischen Voraussetzungen wären erfüllt. Unsere eigene MCP-Strecke betreiben wir seit Sommer selbst, die Lehren daraus stehen in drei Lektionen für einen produktionsreifen MCP-Server. Dort stehen ausschließlich Programme, deren Quelltext wir selbst schreiben. Auf dem ERP-Host fehlen npm und npx, der dokumentierte Installationsweg läuft dort schlicht nicht, und die schwarze Kiste dort ist Java-Bytecode: Dafür sind javap und ein Dekompilierer wie Vineflower das Standardwerkzeug, offline und ohne neues Einfallstor. Die Archiv-Pilotmaschine enthält unsere eigene Software.

Die beiden echten schwarzen Kisten im Haus sind ein proprietäres Java-ERP und ein kommerzielles Mailarchiv. Deren Zerlegen ist keine Werkzeugfrage. In der EU greift die Interoperabilitätsausnahme des Artikels 6 der Richtlinie 2009/24/EG: erlaubt sind Vervielfältigung und Übersetzung des Codes nur, wenn die Information sonst nicht verfügbar ist, nur durch jemanden mit Nutzungsrecht, nur an den dafür nötigen Teilen und nur zum Zweck Interoperabilität. Vertragliche Verbote dürfen diese Ausnahme nach Artikel 8 nicht aushöhlen, die Lizenzbedingungen tun es in der Praxis trotzdem, und in den USA steht die Umgehung technischer Schutzmaßnahmen unter Abschnitt 1201 des Copyright Act. Diese Entscheidung fällt unser Rechtsteam, kein Setup-Befehl. Dazu kommt die Lieferkette: Die Anleitung lautet npx rea-agents@latest, und das Setup schreibt die Konfigurationsdateien anderer Agenten um. Auf einem Host mit Produktivsystem hängt diese Entscheidung an einem Team, das nachweislich seine eigene Reichweite produziert.

Was wir mitnehmen

Drei Ideen, ohne Code: Jede Aussage eines Agenten trägt Beleg, Grenze und Herkunft mit. Eine Registrierung in einer Fremd-Konfiguration läuft plan-first, mit Sicherung und Diagnose vor dem Schreiben. Ein Skill beschreibt die Fähigkeiten der angepinnten Version, damit die Anleitung zur installierten Fassung passt.

Weiterführende Quellen

Fragen?
Ist REA Schadsoftware?+

Nein, und genau darum geht es in dem Beitrag. Wir haben das ausgelieferte npm-Paket 6.4.0 statisch gelesen: kein Install-Hook, keine Telemetrie-Endpunkte, ausgehende Adressen nur auf hopperapp.com und auf Spezifikationsseiten. Der Code ist MIT-lizenziert, real und ordentlich gebaut. Der Befund betrifft die Popularitätsnachweise, nicht die Binärdateien.

Wie prüfe ich die Popularität eines Repos ohne Sternenhistorie?+

Über die Gabelungsliste. GET /repos/OWNER/REPO/forks?sort=newest&per_page=100 liefert 100 Gabelungen mit Zeitstempel pro Anfrage. Die Zeitspanne innerhalb einer Seite ergibt die aktuelle Rate, die Seitenzahl zusammen mit dem Datum ergibt die Kurve. Bei 83.000 Sternen wäre die Sternzeitstempel-API erst nach 830 Anfragen fertig, die Gabelungsliste braucht elf.

Woran erkenne ich eine maschinell erzeugte Kurve?+

An drei Dingen gleichzeitig: einer Grundlinienvergleichung von mehr als dem Zwanzigfachen, einer Rate ohne nächtliches Tal über mehrere Tage, und Begleitgrößen, die nicht mitlaufen. REA hatte 83.089 Sterne bei 269 Beobachtern und 82 Beitragenden, dazu vier Hacker-News-Beiträge mit maximal vier Punkten.