Deutsch · English
Desktop-Tool zum Analysieren deiner GitHub-Follower/Following-Beziehungen – mit moderner Flet-Oberfläche im GitHub-Look, sortierbarer Ergebnistabelle, CSV-Export und optionalem Entfolgen: alle Nutzer, die dir nicht zurückfolgen, auf einen Klick – oder gezielt einzelne ausgewählte Nutzer.
- Moderne GUI (Flet, GitHub-Look, Dark Mode als Standard, Light Mode umschaltbar)
- Zweisprachig (Deutsch/Englisch): folgt automatisch der Systemsprache, umstellbar über das Sprachmenü unten links (Auto/DE/EN) – der Wechsel wirkt sofort, ohne Neustart
- HiDPI-tauglich: Display-Skalierung wird automatisch erkannt,
Zoom (100–200 %) per Dropdown einstellbar – Zoom und Theme werden lokal
gespeichert (
~/.config/github-follower-checker/, keine Zugangsdaten) - Sortierbare Ergebnistabelle mit fünf Ansichten:
- Folgen nicht zurück
- Fans (folgen dir, du folgst ihnen nicht)
- Follower
- Following
- Verlauf (wer dir wann gefolgt/entfolgt ist)
- Klick auf eine Spaltenüberschrift sortiert auf-/absteigend
- Suchfeld zum Filtern der Tabelle nach Nutzernamen
- CSV-Export der aktuellen (gefilterten) Ansicht
- Profil-Panel: Bei Auswahl eines Nutzers erscheinen Avatar, Name, Bio und Follower-Zahlen direkt unter der Tabelle
- Sichere Token-Eingabe
- Maskiertes Eingabefeld, per Auge-Symbol kurzzeitig einblendbar
- Token wird standardmäßig nicht gespeichert und nicht geloggt – es bleibt nur im Arbeitsspeicher
- Optional: „Token merken" legt das Token verschlüsselt im
System-Schlüsselbund ab (
keyring), niemals in einer Datei
- Reaktionsfähige Oberfläche
- Alle API-Abfragen laufen in einem Hintergrund-Thread
- Ladeindikator und Live-Status während der Analyse
- Fortschrittsbalken beim Entfolgen
- Verständliche Fehlermeldungen
- GitHub-Rate-Limit wird erkannt und mit Uhrzeit der Freigabe angezeigt
- Verbleibendes API-Kontingent wird in der Sidebar angezeigt
- Klare Hinweise bei ungültigem Token oder Netzwerkproblemen
- Entfolgen mit Sicherheitsabfrage und Statusanzeige pro Nutzer
- „Alle Nicht-Folgenden": entfolgt allen Nutzern, die dir nicht zurückfolgen
- „Auswahl entfolgen": entfolgt nur den in der Tabelle markierten Nutzern – in jeder Ansicht per Checkbox in der Zeile auswählbar
- „↩ Rückgängig": folgt den gerade entfolgten Nutzern mit einem Klick wieder
- „➕ Fans zurückfolgen": folgt allen Fans mit einem Klick zurück (betrifft nur Nutzer, die dir bereits folgen)
- Whitelist: Nutzer über das ⋯-Menü der Zeile schützen (🛡) – „Alle Nicht-Folgenden" überspringt sie dann
- ⋯-Menü pro Zeile: Profil im Browser öffnen, folgen (z. B. Fans zurückfolgen), entfolgen oder schützen – ein Klick auf den Nutzernamen öffnet direkt das Profil im Browser
- Verlauf: Die Sidebar zeigt nach jeder Analyse, wer dir seit dem letzten Lauf neu folgt oder entfolgt ist, plus ein Mini-Diagramm des Follower-Trends; der Tab „Verlauf" listet alle Ereignisse (lokal gespeichert, nur Nutzernamen)
- Fenstergröße wird gemerkt
Am einfachsten: Fertige Programme (ohne Python) gibt es auf der Releases-Seite. Eine Installation ist nicht nötig – die Datei enthält alles und läuft direkt.
Linux (…-linux-x86_64.tar.gz):
tar xzf GitHubFollowerChecker-*-linux-x86_64.tar.gz
./GitHubFollowerCheckerWindows (…-windows-x86_64.exe): Datei doppelklicken. Beim ersten Start
zeigt SmartScreen eine Warnung (die Binary ist nicht signiert) –
„Weitere Informationen" → „Trotzdem ausführen".
macOS (…-macos-arm64.zip): entpacken, GitHubFollowerChecker.app nach
/Programme ziehen. Beim ersten Start per Rechtsklick → Öffnen starten,
da die App nicht notarisiert ist.
Aus dem Quellcode (Python 3.10+):
git clone https://github.com/0xGI0/GitHub-Follower-Checker.git
cd GitHub-Follower-Checker
pip install -r requirements.txtEs wird ausschließlich die offizielle GitHub REST API v3 verwendet.
Jedes Release enthält die SHA-256-Prüfsummen aller Dateien – in den
Release-Notes (Abschnitt „Checksums") und als Asset SHA256SUMS.txt.
So berechnest du den Hash deiner heruntergeladenen Datei:
Windows (PowerShell):
Get-FileHash .\GitHubFollowerChecker-v2.0.0-windows-x86_64.exe -Algorithm SHA256Windows (CMD):
certutil -hashfile GitHubFollowerChecker-v2.0.0-windows-x86_64.exe SHA256macOS/Linux:
shasum -a 256 GitHubFollowerChecker-v2.0.0-linux-x86_64.tar.gzStimmt der angezeigte Wert mit dem in den Release-Notes überein, ist die Datei unverändert und intakt.
Releases nach v2.0.0 tragen zusätzlich eine GitHub Artifact Attestation: Mit dem GitHub CLI lässt sich beweisen, dass die Datei wirklich per GitHub Actions aus diesem Repository und Commit gebaut wurde (Sigstore):
gh attestation verify <Datei> --owner 0xGI0PGP-Signatur: Sofern .asc-Dateien am Release hängen, sind die Dateien
zusätzlich mit dem PGP-Schlüssel des Autors signiert. Einmalig den
öffentlichen Schlüssel importieren:
curl -O https://tertlidis.com/pgp.asc
gpg --import pgp.ascDann die Signatur prüfen:
gpg --verify <Datei>.asc <Datei>Erwartet wird „Good signature from Georgios Tertlidis" (bei deutscher Locale: „Korrekte Signatur von …"). Der Schlüssel-Fingerprint zum Gegenprüfen:
D251 773E 1DF7 0C1D 0476 1CB0 F92A F40D 80E8 5351
Die gpg-Warnung „Dieser Schlüssel trägt keine vertrauenswürdige Signatur" ist dabei normal – sie bedeutet nur, dass der Key in deinem Schlüsselbund noch nicht als vertrauenswürdig markiert ist. Genau dafür ist der Fingerprint-Vergleich da.
- Öffne auf GitHub:
Settings→Developer settings→Personal access tokens→Tokens (classic) - Klicke „Generate new token (classic)"
- Vergib einen Namen, z. B.
GitHub Follower Checker - Wähle mindestens diesen Scope:
user:follow(für Analyse und Entfolgen)
- Token generieren und sicher speichern (wird nur einmal vollständig angezeigt)
python GitHubFollowerCheckerGUI.pyFehlende Pakete installiert das Skript beim ersten Start automatisch – dadurch funktioniert auch der Start per Doppelklick (Windows, Mac, Linux).
So funktioniert's:
- GitHub-Username eintragen
- Personal Access Token einfügen (maskiert, wird nirgends gespeichert)
- „Analyse starten" klicken – der Fortschritt wird live angezeigt
- Ergebnisse in der Tabelle prüfen, bei Bedarf sortieren, filtern oder als CSV exportieren – das ⋯-Menü an jeder Zeile öffnet das Aktionsmenü, ein Klick auf den Nutzernamen öffnet das GitHub-Profil im Browser
- Optional entfolgen – zwei Wege, jeweils mit Bestätigungsdialog und Status pro Nutzer:
- „Alle Nicht-Folgenden" entfolgt allen Nutzern aus der Ansicht „Folgen nicht zurück" (🛡-geschützte Nutzer werden übersprungen)
- „Auswahl entfolgen" entfolgt nur den markierten Nutzern – einfach in einer beliebigen Ansicht die Checkbox der gewünschten Zeilen aktivieren
- Versehentlich entfolgt? „↩ Rückgängig" folgt dem letzten Schwung wieder
Für Terminal und Skripte – das Token kommt per --token, aus der
Umgebungsvariable GITHUB_TOKEN oder wird sicher abgefragt (nie im Code):
python GitHubFollowerCheckerCLI.py DEIN_USERNAME # nur analysieren
python GitHubFollowerCheckerCLI.py DEIN_USERNAME --json # maschinenlesbar
python GitHubFollowerCheckerCLI.py DEIN_USERNAME --unfollow # entfolgen (mit Rückfrage)
python GitHubFollowerCheckerCLI.py DEIN_USERNAME --unfollow --yes --quiet # für SkripteDie CLI beachtet die 🛡-Whitelist der GUI, pausiert zwischen Requests und
kennt außerdem --version und --quiet.
- Kein Token committen! Die GUI speichert das Token standardmäßig nicht – optional legt „Token merken" es im System-Schlüsselbund ab (nie in einer Datei); abschalten löscht es wieder.
- Nutze wenn möglich einen separaten Token nur für dieses Tool.
- Exportierte CSV-Dateien enthalten Nutzernamen –
.gitignoreschließt*.csvbereits aus. - Der Analyse-Verlauf (
~/.config/github-follower-checker/history.json) und die Whitelist enthalten nur Nutzernamen, niemals Token oder andere Zugangsdaten. - Das Tool respektiert GitHub-Rate-Limits durch Pausen zwischen Requests und zeigt bei Erreichen des Limits an, ab wann es weitergeht.
- Signierte Releases: SHA-256-Prüfsummen (
SHA256SUMS.txt) · Build-Provenance-Attestation (Sigstore) · PGP-Signaturen (.asc) – Prüfanleitung oben unter „Download überprüfen" - CodeQL: statische Analyse von Python-Code und Actions-Workflows bei jedem Push und wöchentlich
- Secret Scanning mit Push Protection: blockiert versehentlich committete Zugangsdaten
- Bandit + pip-audit im CI: Security-Linting des Codes und CVE-Abgleich der Abhängigkeiten bei jedem Push
- Dependabot: automatische Updates für Abhängigkeiten und Actions
- SBOM je Release (nach v2.0.0): CycloneDX-Stückliste aller
Abhängigkeiten mit exakten Versionen (
sbom-<version>.cdx.json) - OpenSSF Scorecard: wöchentliche automatische Bewertung der Supply-Chain-Praxis (Badge oben)
- Sicherheitslücke melden: vertraulich über SECURITY.md
| Problem | Ursache / Lösung |
|---|---|
| „Token ungültig oder abgelaufen" | Token prüfen, ggf. neu erstellen; Scope user:follow erforderlich |
| „GitHub-Rate-Limit erreicht" | Warten bis zur angezeigten Uhrzeit, dann erneut versuchen |
| „GitHub-API-Fehler (HTTP 404)" | Username prüfen – existiert der Account? |
| „Keine Verbindung zur GitHub-API" | Internetverbindung / Firewall prüfen |
| GUI startet nicht | pip install -r requirements.txt ausführen und im Terminal starten |
GUI startet unter Linux nicht (Fehler wegen libmpv) |
Flet benötigt auf manchen Distributionen libmpv: Fedora sudo dnf install mpv-libs, Debian/Ubuntu sudo apt install libmpv2 |
pip install -e ".[dev]"
ruff check . # Lint
mypy gfc_core.py gfc_controller.py GitHubFollowerCheckerGUI.py GitHubFollowerCheckerCLI.py # Typen
pytest # Tests (laufen komplett headless, kein Display/Xvfb nötig)Ein Git-Tag v* löst den Release-Workflow aus, der Windows-, Linux- und
macOS-Binaries baut und ans GitHub-Release anhängt; dabei werden automatisch
SHA256SUMS.txt (aus den veröffentlichten Assets) erzeugt und alle
Artefakte per Build-Provenance attestiert. Einziger manueller Schritt pro
Release: Der Owner lädt die veröffentlichten Assets herunter, signiert sie
lokal (gpg --detach-sign --armor <Datei>) und hängt die .asc-Dateien
mit ans Release – private Schlüssel bleiben ausschließlich lokal, niemals
im Repo oder in Actions. Der Workflow „PyPI"
(manuell auslösbar) veröffentlicht das Paket per Trusted Publishing –
dafür einmalig auf pypi.org einen Trusted Publisher für dieses Repo
anlegen (Workflow publish-pypi.yml, Environment pypi). Änderungen
stehen im CHANGELOG.
Bei jedem Push laufen Lint, Syntax-Check und Tests automatisch per GitHub Actions (siehe CI-Badge oben).
Dieses Projekt steht unter der MIT-Lizenz.
Dieses Tool wird „wie besehen" bereitgestellt. Nutze es auf eigene Verantwortung. Der Autor übernimmt keine Haftung für Verlust von Followern, mögliche Verstöße gegen GitHubs Terms of Service oder andere unerwünschte Folgen.
Empfehlung: Teste das Tool zunächst mit einem Account, der wenige Follower hat.
Erstellt mit ❤️ für die GitHub Community
