
Open Source von Pineflight
Secret Desk
Ein lokales Portal für alle GitHub-Actions-Secrets und -Variablen deiner Repositories: Es zeigt, was wann abläuft, stellt neue Tokens bei den Anbietern aus, lässt jeden neuen Wert von einem Menschen prüfen und bestätigen und schreibt ihn erst dann direkt nach GitHub. Werte werden nie gespeichert.

Auf einen Blick
- 01
Ein Ort für alle Secrets und Variablen
Alle GitHub-Actions-Secrets und -Variablen aller Repositories in einer Übersicht, mit Stufe, Status, Ablaufdatum und Verantwortlichem.
- 02
Ausstellen und erneuern beim Anbieter
Für Stripe, Cloudflare, Supabase, Grafana und weitere erzeugt das Portal neue Tokens direkt beim Anbieter, prüft sie automatisch und schreibt sie nach deiner Bestätigung nach GitHub. Werte werden nie gespeichert.
- 03
Identitätsprüfungen im Portal
Fragt ein Anbieter während eines Laufs nach einem Bestätigungscode oder Passwort, beantwortest du das im Portal, statt ins Browserfenster zu wechseln.
- 04
Stufen vergleichen
Eine Matrix zeigt über alle Repositories, was in dev, staging und production fehlt, zu viel ist oder abweicht.
- 05
Integrations-API mit OpenAPI
Eine OpenAPI-3.1-Beschreibung für Werkzeuge wie Jira, Confluence und Azure DevOps, angebunden über einen Job im eigenen Netz. Sie lesen Metadaten und fordern Erneuerungen an, sehen aber nie einen Wert.
- 06Neu
Fertige Entwicklungsumgebung
Je Repository ein .env.local aus einer Vorlage, mit lokalen Adressen, Testschlüsseln und frisch erzeugten lokalen Secrets.
Lokale Entwicklung
Ein fertiges .env.local für jedes Repository
Neuer Rechner, neues Teammitglied, neues Repository: Statt Werte aus Chats und alten Dateien zusammenzusuchen, erzeugt Secret Desk die Entwicklungsdatei aus einer Vorlage des Teams. Ein Klick im Portal oder ein Befehl, und die lokale Umgebung startet.
- Lokale Adressen
- Die Vorlage trägt localhost-Adressen ein, etwa für die Website und den lokalen Supabase-Stack.
- Testschlüssel statt Live-Schlüssel
- Persönliche Entwicklungs-Tokens, etwa ein Schlüssel aus der Stripe-Sandbox, fragt das Portal beim Erzeugen ab.
- Lokale Secrets frisch erzeugt
- Zufallswerte entstehen beim Export und werden nirgends gespeichert.
- Staging und Live bleiben, wo sie sind
- Secret-Werte gibt es nur für Entwicklungsstufen. Secrets aus Staging oder Produktion landen nie auf einem Laptop.
- Sicher abgelegt
- Die Datei wird mit Modus 600 geschrieben. Das Portal zeigt nur Namen und warnt, wenn Git die Datei nicht ignoriert.
NEXT_PUBLIC_SITE_URL=http://localhost:3000# VorgabeNEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321# VorgabeSTRIPE_SECRET_KEY=rk_test_••••••••# TestschlüsselRATE_LIMIT_SECRET=3f9a••••••••c41e# lokal erzeugt
So funktioniert es
- 01
Jedes Projekt sammelt Tokens, API-Schlüssel und Webhook-Secrets an, und jedes läuft irgendwann ab. Secret Desk listet sie mit Verantwortlichem, Stufe und Ablaufdatum auf, damit nichts unbemerkt an einem Freitagabend ausläuft.
- 02
Muss eines erneuert werden, erzeugt das Portal den neuen Wert beim Anbieter: über dessen API oder, wo es keine gibt, indem ein sichtbarer Chrome das Formular durchläuft, während du dich selbst anmeldest. Danach prüft es den neuen Wert: Funktioniert er, stimmen die Berechtigungen, wann läuft er ab, sind die Ziele erreichbar. Ein Prüfbericht mit Belegbild geht an einen Menschen, der bestätigt oder ablehnt.
- 03
Erst nach dieser Bestätigung wird der Wert verschlüsselt in GitHub-Secrets und -Variablen geschrieben und der alte widerrufen. Ablehnen löscht den neuen Wert beim Anbieter wieder. Ein Wert liegt höchstens 15 Minuten im Speicher und wird nie gespeichert.
- 04
Drumherum: frei definierbare Stufen, eine Vergleichsmatrix für Secrets und Variablen über Stufen und Repositories, ein Dev-.env-Export mit Modus 600, eine Team-Datei ohne Werte und ein optionaler verschlüsselter Tresor für Integrations-Tokens, dessen Schlüssel im Schlüsselbund des Betriebssystems liegt. Statt ein Token einzufügen, kannst du auf eine Umgebungsvariable oder eine 1Password-Referenz verweisen.
Was Secret Desk macht
Ablauf im Blick
Jedes Secret und jede Variable steht mit Stufe und Status in einer Übersicht – mit Verantwortlichem, Beschreibung und Links. So läuft ein Token nicht mehr freitagabends unbemerkt ab.
Die Gesamtliste aller Einträge, in der Demo 8 Secrets und 4 Variablen. Oben Filter nach Art, Repository, Stufe, Status, Anbieter und fehlenden Parametern, dazu Gruppieren und Sortieren. In der Tabelle steht je Zeile der Name mit Beschreibung und Tags, der Zielwert oder Ablauf, die Ziele in GitHub und der Status: „OK“, „Abgelaufen“ (das Cloudflare-Token seit drei Tagen), „Ablauf unklar“ oder „Nicht verglichen“. Rechts je Zeile Symbole für Aktionen. Von hier aus geht es in die Detailansicht.

Neue Tokens per API
Wo ein Anbieter eine API hat, stellt das Portal den neuen Wert selbst aus. Das Kopieren und Einfügen von Hand entfällt.
Die Seite „Integrationen“ zeigt, womit das Portal arbeiten darf. Darunter steht der Hinweis, dass Zugangsdaten im Speicher bleiben oder, wenn du es willst, verschlüsselt im lokalen Tresor liegen. Die Anbieter sind nach Kategorie gruppiert: Code und CI (GitHub), Hosting und Edge (Cloudflare), Datenbank (Supabase), Zahlungen (Stripe), E-Mail (Resend). Jede Karte zeigt den Verbindungsstatus „Verbunden“, eine Kurzbeschreibung und, wo vorhanden, bis wann das hinterlegte Secret gültig ist. Oben rechts „Integration hinzufügen“, daneben „Alle aufklappen“.

Prüfen, bestätigen, dann schreiben
Der neue Wert wird geprüft und in einem Prüfbericht zusammengefasst. Ein Mensch bestätigt jeden Punkt. Erst danach wird er nach GitHub geschrieben.
Die Prüfansicht für einen neu erzeugten Wert. Links der Prüfbeleg: Secret, Stufe, Anbieter, Ziel-Repository und ein Fingerabdruck, mit dem sich der Wert später vergleichen lässt, ohne ihn zu verraten. Darunter die automatischen Prüfungen mit „OK“, etwa plausible Länge und „Ziel erreichbar mit Schreibrecht“. Rechts die Checkliste, die ein Mensch selbst abhakt (gleicher Wert in allen Zielen, alle Verbraucher nach dem Schreiben neu ausgerollt), ein Notizfeld und zwei Knöpfe: „Bestätigen und nach GitHub schreiben“ wird erst nach dem Abhaken aktiv, „Ablehnen und neuen Wert löschen“ räumt beim Anbieter auf. Oben rechts läuft ein Zähler mit der Zeit, die der Wert noch im Speicher liegt (hier 14:52).

Werte werden nie gespeichert
Ein Wert liegt höchstens 15 Minuten im Arbeitsspeicher und wird nur an zwei Stellen weitergegeben: an die API des Anbieters und verschlüsselt an GitHub.
Weitere Ansichten
Detailansicht eines Secrets mit Verlauf und Zielen
Die Seite zu einem einzelnen Secret, hier das abgelaufene Cloudflare-Token. Oben der Status und drei Wege weiter: „Neuen Wert erzeugen“ (automatisch über die API des Anbieters), „Wert einfügen“ und „Nur Plan zeigen“. Darunter Karten mit Beschreibung, Verantwortlichem und Link zum Dashboard des Anbieters, den Parametern, den Fakten (Dienst, Anbieter, Ablaufdatum, zuletzt erneuert, zuletzt bestätigt) und den Zielen in GitHub. Ganz unten der Verlauf aller Prüfungen.

Vergleich: Live-Matrix der Namen gegen die Stufen
Die Vergleichsmatrix. Oben wählst du die Stufen, die verglichen werden (hier production und staging), und kannst Stufen-Wörter wie STAGING oder PRODUCTION aus den Namen herausnehmen, damit zusammengehörige Zeilen zusammenfallen. Darunter eine Karte je Stufe mit den Zählern erwartet, vorhanden, fehlt, unerwartet und Fehler (staging: 7 erwartet, 5 vorhanden, 1 fehlt). Der Knopf „Alles nach GitHub schreiben“ gleicht Lücken aus. Weiter unten je Repository eine Tabelle: Zeilen sind Namen, Spalten sind Stufen, jede Zelle zeigt „OK“ oder „Fehler“.

Variablen: Soll-Wert gegen GitHub
Dieselbe Liste, gefiltert auf Variablen. Anders als Secrets haben Variablen einen Soll-Wert, den das Portal speichert und mit GitHub vergleicht. In der Demo stehen dort vier Einträge, etwa eine Projekt-ID mit dem Wert proj_demo_123 und zwei Website-Adressen für Staging. Die Spalte „Status“ zeigt, ob der Wert schon mit GitHub verglichen wurde; je Zeile gibt es Aktionssymbole zum Abgleichen, Hochladen, Herunterladen und Löschen.

Anbieterauswahl mit Logos, nach Kategorien gruppiert
Der Auswahldialog „Integration hinzufügen“, hier weiter unten gescrollt. Jeder Anbieter hat eine eigene Karte mit Logo, Kurzbeschreibung und Status („Verbunden“ oder „Nicht eingerichtet“). Zu sehen sind die Kategorien Beobachtbarkeit (Grafana Cloud), KI (Anthropic, OpenAI), Daten-APIs (VesselAPI), Druck und Versand (Peecho) und Sonstiges (ein von Hand angelegter Beispielanbieter). Ganz unten führt „Eigenen Anbieter hinzufügen“ zu einem Formular für Dienste, die noch fehlen.

Einstellungen: frei konfigurierbare Stufen
Die Einstellungen, hier der Reiter „Stufen“ (daneben „Richtlinie & Agenten“, „Speicher & Automatisierung“, „Sprache“ und „Entwickler“). Stufen sind frei benennbar; wie sie sich verhalten, hängt von ihrer Art ab: Lokal (dev), Test (Sandbox), Live (Produktion) oder Geteilt. Die Tabelle zeigt je Stufe die zugeordnete GitHub-Environment, wie viele Secrets und Variablen darauf liegen und Pfeile zum Umsortieren, Stift und Papierkorb. Neue Stufen legst du mit „Stufe hinzufügen“ an.

Repositories: Ordner auf diesem Rechner verknüpfen
Alle Repositories aus dem Bestand und aus GitHub in einer Tabelle, mit der Zahl der Secrets und Variablen je Repository. In der Spalte „Verknüpfter Ordner“ steht, welcher Ordner auf diesem Rechner dazugehört (in der Demo noch keiner, daher „Nicht verknüpft“); „Verknüpfen“ legt die Zuordnung an, und je Repository erzeugt „.env exportieren“ die Entwicklungsdatei. Oben „Lokal suchen“ findet Ordner automatisch, „Mit GitHub abgleichen“ liest die Repositories nach.

Angebundene Integrationen
Womit Secret Desk heute spricht. Manche Endpunkte sind gegen die echten Dienste geprüft, andere bisher nur gegen Mocks: Die Dokumentation nennt den Stand je Anbieter.
Per API
Das Portal erzeugt, prüft und widerruft diese Werte selbst, mit einem Token, das du einmal verbindest.
Schreibt Secrets, Variablen und Environment-Secrets verschlüsselt. Liest, welche Namen existieren.
API-Tokens, Access-Service-Tokens und R2-Zugangsdaten.
Site Keys und Secrets für den Bot-Schutz.
API-Schlüssel, der Service-Role-Schlüssel und das Datenbankpasswort.
Webhook-Secrets, je Konto und im Test- oder Live-Modus.
API-Schlüssel zum E-Mail-Versand.
Service-Account-Tokens und Access-Policy-Tokens.
Service-Account-Schlüssel je Projekt, über einen Organisations-Admin-Schlüssel.
Liest Projekt- und App-IDs für Variablenquellen.
Lokal erzeugt
Zufallswerte (Hex, Base64, UUID) und VAPID-Schlüsselpaare für Web-Push.
Per Browser
Für Anbieter ohne Schlüssel-API durchläuft ein sichtbarer Chrome das Formular nach einem YAML-Rezept. Anmeldung, 2FA und CAPTCHA bleiben bei dir.
Fine-grained Personal Access Tokens.
Access Tokens.
Eingeschränkte Schlüssel für ein Konto und einen Modus.
API-Schlüssel und der Organisations-Admin-Schlüssel.
API-Schlüssel je Workspace und der optionale Admin-Schlüssel.
Access Policies mit Token.
API-Schlüssel.
Secret-API-Schlüssel mit je einer Zugriffsstufe pro Bereich.
Liest Merchant-Key und Secret, erzeugt nichts.
Für KI-Agenten
Ein MCP-Server mit 24 Werkzeugen, ein Skill und eine HTTP-Agent-API mit OpenAPI-Beschreibung. Agenten pflegen Metadaten, fragen den Status ab und fordern Erneuerungen an. Sie sehen nie einen Wert und bestätigen nie.
Vollständige Liste und Stand
Die Eckdaten
- Lizenz
- MIT, frei nutzbar und veränderbar
- Betrieb
- Lokal auf Ihrem Rechner, nichts läuft in einer fremden Cloud
- Systeme
- macOS, Linux und Windows
- Oberfläche
- Deutsch und Englisch
- Lokale Umgebung
- Je Repository erzeugt das Portal das .env.local aus einer Vorlage: lokale Adressen, Testschlüssel und lokal erzeugte Secrets, Modus 600. Secrets aus Staging oder Produktion werden nie exportiert.
- Team
- Die Konfiguration liegt in einer Team-Datei ohne Werte. Sie lässt sich teilen, damit alle im Team dieselbe Einrichtung nutzen.
- KI-Agenten
- MCP-Server, Skill und HTTP-API: KI-Agenten sind schneller angebunden. Sie sehen nie einen Wert.
Ehrlicher Stand
Secret Desk ist eine frühe Version (0.1.0). Mehrere Anbieter-Schnittstellen sind bisher nur gegen Nachbildungen getestet, und die Praxis-Tests liefen bisher auf macOS. Die Projektseite auf GitHub nennt die Grenzen genau.
Selbst ausprobieren
Der Quellcode, die Dokumentation und eine Demo ohne Konten liegen auf GitHub.
Secret Desk auf GitHub