Auf GitHub liegen Millionen offener Programme. Wer dort etwas Bestimmtes sucht – ein Sicherungswerkzeug, einen PDF-Editor, eine Bildbearbeitung –, bekommt über die Website zwar Treffer, muss die Sortierung aber jedes Mal von Hand umstellen und kann Ergebnisse nicht ohne Weiteres mitnehmen.
Sternsucher nimmt diese Arbeit ab: Suchbegriff eingeben, gegebenenfalls Sprache und Mindestanzahl an Sternen festlegen – und die Trefferliste erscheint bereits nach Sternen sortiert. Ein Doppelklick öffnet das Projekt im Browser, und die ganze Liste lässt sich als Tabelle oder als HTML-Seite speichern.
Sternsucher_v1.8.exeDas ist die fertig gebaute Programmdatei. Sie enthält alles, was das Programm zum Laufen braucht – die Python-Laufzeitumgebung und die gesamte Qt-Oberflächenbibliothek sind bereits eingepackt. Deshalb gilt:
pip install, keine Versionskonflikte.Sternsucher lässt
sich auf einen USB-Stick kopieren und läuft dort genauso. Die
Einstellungen landen in der Datei sternsucher.json
neben der EXE, nicht irgendwo im Benutzerprofil – es
bleibt also nichts auf einem fremden Rechner zurück.
Wichtig: Weiterzugeben oder zu verschieben ist immer der
gesamte Ordner Sternsucher, nicht nur die
EXE-Datei allein. Neben der EXE liegt ein Unterordner
_internal mit den Programmbibliotheken; ohne ihn startet
die EXE nicht. (Das ist die Bauform „onedir". Eine Einzeldatei wäre zwar
bequemer zu verschicken, müsste aber bei jedem Start die komplette
Qt-Bibliothek in einen temporären Ordner auspacken – der Start
dauert dann spürbar länger.)
| Datei | Wofür | Voraussetzung |
|---|---|---|
Sternsucher_v1.8.exe |
Normaler Gebrauch. Empfohlen. | keine |
sternsucher_v1_8.pyw |
Start aus dem Quellcode ohne Konsolenfenster. | Python + PyQt6 |
start_sternsucher_v1_8.bat |
Start aus dem Quellcode mit Konsolenfenster – zeigt Fehlermeldungen an und installiert PyQt6 bei Bedarf nach. Für die Fehlersuche. | Python |
build_sternsucher_v1_8.bat |
Baut die EXE neu. Nur nötig, wenn am Quellcode etwas geändert wurde. | Python + PyInstaller |
test_sternsucher_v1_8.bat |
Selbsttest. Prüft die Programmlogik und – falls PyQt6 vorhanden ist – auch den Aufbau der Oberfläche. Es erscheint dabei kein Fenster. | Python |
pdf editor, backup oder
markdown editor. Englische Begriffe führen meist zu
deutlich mehr Treffern, weil die allermeisten Projektbeschreibungen
auf Englisch verfasst sind.Die Maus kurz über einem Projektnamen stehen zu lassen, blendet einen Hinweis mit voller Beschreibung, den GitHub-Themen und – bei eingeschalteten ähnlichen Begriffen – dem Suchbegriff ein, über den das Projekt gefunden wurde.
Ganz unten gibt es genau eine Zeile: links stehen die Meldungen des Programms (Trefferzahl, verwendete Suchbegriffe, verbleibendes Kontingent, Fehler), rechts der Fortschrittsbalken und die Knöpfe CSV speichern, HTML speichern und Handbuch. Ist eine Meldung zu lang für die Zeile, zeigt sie vollständig, wer die Maus kurz darüber stehen lässt.
| Taste | Wirkung |
|---|---|
| Eingabe | Suche starten |
| F1 | Dieses Handbuch öffnen |
| Strg+E | Als CSV speichern |
| Strg+H | Als HTML speichern |
| Strg+Q | Programm beenden |
| Filter | Bedeutung |
|---|---|
| Sprache | Programmiersprache, in der das Projekt überwiegend geschrieben ist. Die Liste ist frei beschreibbar – auch nicht aufgeführte Sprachen lassen sich eintippen. |
| mind. Sterne | Blendet alles unterhalb dieser Sternzahl aus. 50 ist eine brauchbare Voreinstellung: darunter liegen überwiegend private Übungsprojekte. Bei sehr speziellen Themen lohnt es, den Wert auf 0 zu setzen. |
| aktiv | Wann zuletzt etwas am Projekt geändert wurde. Der wichtigste Filter überhaupt – siehe Abschnitt 10. |
| Thema | Ein GitHub-Schlagwort („topic"), das Projekte selbst vergeben, etwa
cli, self-hosted oder
machine-learning. Trifft genauer als ein Suchbegriff,
setzt aber voraus, dass das Projekt das Schlagwort gesetzt hat. |
| sortieren nach | Womit GitHub die Treffer ordnet, bevor sie übertragen werden. Nicht zu verwechseln mit dem Klick auf einen Spaltenkopf: der sortiert nur die bereits geladene Liste um. |
| max. Treffer | Wie viele Ergebnisse geholt werden. Je 100 Treffer wird eine Anfrage an GitHub gestellt – 500 Treffer verbrauchen also fünf von zehn Anfragen der Minute (siehe Abschnitt 6). Jeder mitgesuchte ähnliche Begriff kostet eine weitere Anfrage (Abschnitt 5). |
| nur mit Lizenz | Nur Projekte mit hinterlegter Lizenz. Ohne Lizenz ist eine Nutzung streng genommen urheberrechtlich ungeklärt – für den dienstlichen Einsatz ein sinnvoller Filter. |
| archivierte ausblenden | Archivierte Projekte hat der Autor ausdrücklich stillgelegt: keine Fehlerbehebung mehr, keine Sicherheitsaktualisierungen. Voreingestellt ausgeblendet. |
| auch ähnliche Begriffe | Sucht zusätzlich nach verwandten englischen Stichwörtern – jeder davon als eigene Suche, siehe Abschnitt 5. Voreingestellt an. |
| nur im Projektnamen suchen | Sucht den Begriff nur im Namen, nicht in der Beschreibung. Liefert wenige, dafür sehr genaue Treffer. |
Die zuletzt benutzten Filter werden beim Beenden gemerkt und stehen beim nächsten Start wieder da.
Projektbeschreibungen auf GitHub sind fast ausnahmslos englisch. Wer
Bildbearbeitung eingibt, findet deshalb so gut wie nichts –
image editor dagegen hunderte Projekte. Genau diese Lücke
schließt das Häkchen auch ähnliche Begriffe.
bildbearbeitung.bildbearbeitung · "image editor" ·
"photo editor" · "image processing"(bildbearbeitung OR "image editor" …)). Diese Abfrage
lieferte in der Praxis null Treffer. Getrennte Suchen
sind gewöhnliche GitHub-Syntax und funktionieren verlässlich.bildbearbeitung mit drei hinterlegten
Stichwörtern sind es vier Anfragen statt einer – von zehn pro
Minute ohne Token. Zwei solche Suchen kurz hintereinander können das
Minutenkontingent also schon ausschöpfen (Abschnitt 6).
Nach jeder Suche nennt die Statuszeile die Trefferzahl je Begriff („87 Treffer aus 4 Suchen (bildbearbeitung 0 · image editor 1.234 · …)"). So ist sofort erkennbar, welcher Begriff überhaupt etwas gebracht hat. Findet die Suche gar nichts, stehen die tatsächlich gesendeten Abfragen in der Statuszeile. Die vollständigen Abfragen stehen außerdem im Kopf jeder gespeicherten HTML-Seite, und die CSV-Datei hat eine Spalte Gefunden über.
Scheitert eine einzelne Suche (etwa weil GitHub einen Begriff ablehnt), macht das Programm mit den übrigen weiter und meldet den Fehler. Ist das Kontingent erschöpft, stellt es keine weiteren Anfragen mehr; was bis dahin geladen war, bleibt in der Tabelle stehen.
Das Suchfeld schlägt beim Tippen die bekannten Begriffe vor. Seit Version 1.8 erscheinen dabei auch die englischen Entsprechungen, jeweils mit dem deutschen Begriff dahinter:
bildbearbeitung image editor · bildbearbeitung photo editor · bildbearbeitung
Wer bild eintippt, sieht also sofort, dass sich
image editor anbietet. Beim Auswählen wird nur der Teil vor dem
Punkt eingesetzt – im Suchfeld steht dann image editor,
ohne den deutschen Zusatz.
Die Liste liegt als sternsucher_synonyme.json neben dem
Programm und lässt sich mit jedem Texteditor erweitern. Aufbau:
{
"bildbearbeitung": ["image editor", "photo editor"],
"mein begriff": ["englisches stichwort", "noch eines"]
}
Nach dem Bearbeiten das Programm neu starten – die Datei wird
beim Start eingelesen. Höchstens fünf Stichwörter je Begriff werden
mitgesucht. Das hat zwei Gründe: Jedes weitere Stichwort holt
erfahrungsgemäß Projekte herein, die mit dem ursprünglichen Anliegen
wenig zu tun haben – und jedes kostet eine eigene Anfrage.
Stichwörter aus mehreren Wörtern (image editor) werden als
Wortfolge gesucht, also in Anführungszeichen.
Diese Grenzen setzt GitHub, nicht das Programm. Sie sind unveränderlich:
| Grenze | Wert | Bedeutung im Alltag |
|---|---|---|
| Anfragen ohne Token | 10 pro Minute | Rund zehn Suchen zu je 100 Treffern pro Minute – ohne ähnliche Begriffe. Mit ähnlichen Begriffen kostet eine Suche mehrere Anfragen (Abschnitt 5); dann reicht es für zwei bis drei Suchen pro Minute. |
| Anfragen mit Token | 30 pro Minute | Siehe Abschnitt 7. |
| Treffer je Suche | höchstens 1.000 | Auch wenn GitHub 40.000 Treffer meldet, lassen sich nur die ersten 1.000 abrufen. Die Statusleiste weist darauf hin. Abhilfe: enger filtern, nicht mehr Treffer anfordern. |
| Treffer je Abruf | 100 | Deshalb kosten 500 Treffer fünf Anfragen. |
Ist das Kontingent erschöpft, meldet das Programm das im Klartext und nennt die Wartezeit. Es hilft dann nur warten – oder ein Token hinterlegen.
Wer trotzdem eins hinterlegen will:
sternsucher.json neben dem Programm – dort
lediglich unkenntlich gemacht (Base64), nicht
verschlüsselt. Wer Zugriff auf die Datei hat, kann es auslesen.
Genau deshalb: nur ein Token ohne Berechtigungen verwenden. Auf einem
fremden oder geteilten Rechner den Haken besser nicht setzen.
Die Spalte Download führt direkt dorthin, wo ein Projekt seine fertigen Programme ablegt. Ein Doppelklick auf den blauen Eintrag Releases öffnet die Releases-Seite des Projekts im Browser.
| Weg | Was dort liegt | Wann sinnvoll |
|---|---|---|
| Releases (Doppelklick auf die Spalte) |
Fertige, vom Autor gebaute Programme: .exe,
.msi, .zip, Installationspakete. Meist mit
Versionsnummer und Änderungsnotizen. |
Der Normalfall. Wer ein Programm benutzen und nicht selbst bauen will, sucht hier. |
| Quellcode als ZIP (Rechtsklick → Menü) |
Der komplette Quelltext des Hauptzweigs als ZIP-Datei. Gibt es bei jedem Projekt. | Wenn es keine Releases gibt, wenn der Quelltext interessiert, oder wenn das Programm ohnehin selbst gebaut werden muss. |
In der CSV- und der HTML-Ausgabe sind beide Adressen als eigene Spalten enthalten, in der HTML-Ausgabe direkt anklickbar.
Strg+E oder der Knopf CSV speichern. Die Datei verwendet Semikolon als Trennzeichen und UTF-8 mit Kennung, damit Excel die Umlaute auf Anhieb richtig anzeigt und die Spalten korrekt trennt – ein Doppelklick auf die Datei genügt, der Importassistent ist nicht nötig.
Strg+H oder HTML speichern. Erzeugt eine eigenständige Seite mit klickbaren Links, die sich in jedem Browser öffnen und per E-Mail weitergeben lässt. Die verwendete Suchabfrage – bei ähnlichen Begriffen alle getrennten Abfragen – steht im Kopf der Seite, sodass später nachvollziehbar bleibt, wonach gesucht wurde.
Ein Stern auf GitHub ist ein Lesezeichen. Jemand hat das Projekt einmal interessant gefunden. Daraus folgt:
| Sterne zeigen | Sterne zeigen NICHT |
|---|---|
| dass viele Menschen das Projekt bemerkt haben | ob es heute noch funktioniert |
| eine gewisse Verbreitung | ob es gepflegt wird |
| dass es vermutlich schon länger existiert | ob es sicher ist |
| ob die Qualität stimmt |
Sterne werden fast nie wieder entfernt. Ein Projekt, das 2019 aufgegeben wurde, behält seine 20.000 Sterne für immer – und steht damit dauerhaft über einem aktiv gepflegten Projekt mit 300 Sternen, das die bessere Wahl wäre.
| Datei | Inhalt |
|---|---|
Sternsucher_v1.8.exe |
Das fertige Programm (nach dem Bauen im Ordner dist\Sternsucher). |
sternsucher_v1_8.py |
Quellcode der Oberfläche. |
sternsucher_kern_v1_8.py |
Quellcode der Programmlogik: Suchabfragen, Auswertung, Speichern. Bewusst von der Oberfläche getrennt, damit sich die Logik ohne installiertes Qt vollständig prüfen lässt. |
sternsucher_v1_8.pyw |
Startet den Quellcode ohne Konsolenfenster. |
test_sternsucher_v1_8.py |
Selbsttest (134 Prüfungen ohne PyQt6, 147 mit PyQt6). |
sternsucher_v1_8.spec |
Bauanweisung für PyInstaller. |
sternsucher.ico |
Das Programmsymbol. Wird beim Bauen in die EXE eingebettet und zusätzlich mitgepackt, damit das laufende Programm es als Fenstersymbol verwenden kann. |
icon\mache_icon.py |
Erzeugt das Symbol neu – als .ico mit allen
Größen und als PNG von 64 bis 1024 Pixeln. Braucht das Paket
Pillow (py -m pip install Pillow). |
sternsucher_synonyme.json |
Die Liste der ähnlichen Begriffe. Kann mit jedem Texteditor erweitert werden – siehe Abschnitt 5. |
sternsucher.json |
Entsteht beim ersten Start: zuletzt benutzte Filter, bei Bedarf das Token. Kann jederzeit gelöscht werden – dann gelten wieder die Voreinstellungen. |
Sternsucher_Handbuch.html |
Diese Datei. Muss neben der EXE liegen, damit F1 funktioniert. |
Internetverbindung prüfen. In Firmennetzen blockiert häufig eine Firewall
oder ein Proxy den Zugriff auf api.github.com – die
Website github.com im Browser zu erreichen bedeutet nicht zwingend, dass
auch die Schnittstelle erreichbar ist.
Die angegebene Zeit abwarten. Tritt es häufig auf: weniger Treffer je Suche anfordern, ein Token hinterlegen (Abschnitt 7) oder für schnelle Folgesuchen auch ähnliche Begriffe abschalten – jeder ähnliche Begriff kostet eine eigene Anfrage.
Meist ein zu allgemeiner Suchbegriff. Begriff genauer fassen oder einen Filter ergänzen.
Zuerst in der Statuszeile nachsehen, welche Abfrage tatsächlich gesendet wurde – sie steht dort bei null Treffern ausdrücklich. Dann der Reihe nach: auch ähnliche Begriffe einschalten – englischen Begriff probieren – mind. Sterne auf 0 setzen – aktiv auf „egal" stellen – nur im Projektnamen suchen abwählen.
Wurde der gesamte Ordner kopiert, einschließlich
_internal? Manche Virenscanner sperren frisch gebaute
PyInstaller-Programme vorsorglich – im Zweifel den Ordner in der
Ausnahmeliste eintragen.
test_sternsucher_v1_8.bat starten. Der Selbsttest prüft die
Programmlogik durch und meldet, wo es klemmt. Alternativ das Programm
über start_sternsucher_v1_8.bat starten – dort bleibt
ein Konsolenfenster offen, in dem Fehlermeldungen sichtbar werden.
| Version | Datum | Änderungen |
|---|---|---|
| 1.8 | 15.09.2026 | Fehlerbehebung: ähnliche Begriffe fanden nichts.
Mit eingeschaltetem Häkchen lieferte etwa bildbearbeitung
eine leere Liste. Die Begriffe steckten in einer einzigen Abfrage mit
„OR", die GitHub nicht wie gedacht verarbeitete. Jetzt wird jeder
Begriff getrennt gesucht, die Ergebnisse werden
zusammengeführt, Doppelte entfernt und nach Sternen geordnet
(Abschnitt 5). Jeder ähnliche Begriff kostet eine Anfrage; reicht das
Minutenkontingent nicht, werden Begriffe weggelassen und genannt.Außerdem: Bei null Treffern zeigt die Statuszeile die tatsächlich gesendete Abfrage. Unten gibt es nur noch eine Infozeile, die Knöpfe sitzen rechts darin. Die Eingabehilfe schlägt auch englische Begriffe vor (image editor · bildbearbeitung) und ist schmaler, sodass sie die Filter nicht mehr verdeckt. Das Feld Thema wird nicht mehr unnötig breit gezogen. CSV-Ausgabe mit neuer Spalte Gefunden über. |
| 1.7 | 14.09.2026 | Nachbesserung zu 1.6, ohne Änderung am Programm selbst: zwei fehlerhafte Prüfungen berichtigt. Sie liefen in einer Lage, die es beim Benutzer gar nicht gibt (Synonymliste nicht auffindbar), und benutzten eine unvollständig nachgebaute Hilfsklasse. Zusätzlich prüft der Selbsttest jetzt schon ohne installiertes PyQt6, ob die Oberfläche und ihre Hilfsklassen zusammenpassen. |
| 1.6 | 14.09.2026 | Neu: ähnliche Begriffe mitsuchen (Abschnitt 5).
Ein Häkchen bei den Filtern, voreingestellt an, erweitert die Suche
um verwandte englische Stichwörter – „Bildbearbeitung" findet
damit auch image editor. Die Liste liegt als bearbeitbare
Datei neben dem Programm. Das Suchfeld schlägt die bekannten
Begriffe beim Tippen vor. Außerdem: Nach dem Bauen werden die EXE-Reste im Zwischenordner build entfernt. Sie hießen genauso wie
das fertige Programm, ließen sich anklicken und scheiterten mit
„Failed to load Python DLL" – eine unnötige Stolperfalle. |
| 1.5 | 14.09.2026 | Programmsymbol. Ein Lupenglas, das einen Ausschnitt
Sternenhimmel zeigt – viele kleine Funkeln, einer davon groß
und golden hervorgehoben. Es erscheint an der EXE im Explorer, in
der Taskleiste, im Startmenü, links oben in der Titelzeile und beim
Fensterwechsel mit Alt+Tab. Das Symbol ist nicht gezeichnet, sondern
berechnet: icon\mache_icon.py erzeugt es aus
geometrischen Grundformen und lässt sich jederzeit erneut aufrufen,
auch für andere Größen. Für kleine Darstellungen (16 bis 24 Pixel)
wird eine kräftigere Fassung gezeichnet, weil feine Linien dort zu
Matsch würden. |
| 1.4 | 13.09.2026 | Fehlerbehebung: In 1.3 zeigte die Spalte Download „1", „2", „3" statt Releases. Ursache war die in 1.3 eingebaute Sortierhilfe: der Sortierwert lag in einem Datenfeld, das Qt mit dem angezeigten Text verknüpft, und überschrieb ihn dadurch. Sortierwert und Anzeige sind jetzt getrennt; eine zusätzliche Prüfung stellt sicher, dass der Text auch nach dem Sortieren stehen bleibt. |
| 1.3 | 13.09.2026 | Nachbesserung zu 1.2, ohne Änderung an der Bedienung. Die in 1.2 neu eingebauten Verhaltensweisen waren nicht durch Prüfungen abgesichert – das ist nachgeholt (71 statt 67 Prüfungen, dazu acht weitere, die nur mit installiertem PyQt6 laufen). Außerdem werden die Download-Adressen jetzt unmittelbar am Tabelleneintrag geführt statt über den Projektnamen nachgeschlagen, und ein Klick auf den Spaltenkopf Download stellt die von GitHub gelieferte Reihenfolge wieder her, statt die Liste willkürlich zu mischen. |
| 1.2 | 13.09.2026 | Neu: Spalte Download mit Verweis auf die
Releases-Seite; im Rechtsklick-Menü zusätzlich der Quellcode als ZIP.
Beide Adressen stehen auch in der CSV- und HTML-Ausgabe. Fehlerbehebungen: (1) Scheiterte ein Abruf beim Blättern, wurden bisher alle bereits geladenen Treffer verworfen – bei 1.000 angeforderten Treffern ein realistischer Fall, weil das genau zehn Anfragen sind. Jetzt bleibt erhalten, was geladen wurde, und der Grund des Abbruchs wird gemeldet. (2) Der Fehlercode 403 wurde ausnahmslos als „Kontingent erschöpft" gedeutet; GitHub verwendet ihn auch für andere Ursachen. Jetzt wird anhand des verbleibenden Kontingents unterschieden. (3) Nach einem Abbruch meldete die Statusleiste irreführend „Keine Treffer". (4) Beendete Suchvorgänge werden jetzt freigegeben statt sich über die Sitzung anzusammeln. |
| 1.1 | 13.09.2026 | Fehlerbehebung: Die Trefferliste stand nach jeder
Suche auf dem Kopf – das Projekt mit den wenigsten
Sternen stand oben, und die laufende Nummer lief rückwärts. Ursache:
Qt sortiert eine Tabelle in dem Moment, in dem die Sortierung
eingeschaltet wird, nach dem gerade eingestellten Sortieranzeiger –
und der steht von Haus aus auf der ersten Spalte (#) absteigend. Der
Anzeiger wird jetzt vorher ausdrücklich auf aufsteigend gestellt,
sodass die von GitHub gelieferte Reihenfolge erhalten bleibt. Zwei
neue Prüfungen verhindern einen Rückfall. |
| 1.0 | 13.09.2026 | Erste Fassung. Suche nach Begriff, Sprache, Thema, Mindest-Sternen und letzter Aktivität; Sortierung nach Sternen, Forks, letzter Aktualisierung oder offenen Meldungen; Trefferliste mit Spaltensortierung; Öffnen im Browser; Speichern als CSV und HTML; optionales Zugriffstoken; Anzeige des verbleibenden Anfragekontingents. |