🤖+🧑 Secret Management für Mensch & KI

Ein Vault.
Mensch & KI.

Secretariat ist der erste Secret-Manager, der für die Zusammenarbeit von Menschen und KI-Agenten gebaut wurde. Ein gemeinsamer Vault — API-Keys, Tokens, Zertifikate. Nie wieder Secrets im Chat, in Prompts oder im Terminal-History.

Das Problem

Deine API-Keys liegen überall — auch im Klartext-Chat

Du gibst einen Key an deinen KI-Assistenten weiter. Er speichert ihn im Prompt-Kontext. Nächste Woche taucht der Key in einem Export auf. Oder in einer Log-Datei. Vielleicht im Chat-Verlauf, den ein Prompt-Injection-Angriff ausliest.

DU "Setze den DeepSeek API-Key sk-abc123... in der Config"
AGENT "Ok, hab ich in die config.yml geschrieben"
SECRETARIAT "Warum sagst du ihm nicht einfach sec get /deepseek/api-key?"
⚠️
Secrets im Chat
Jeder API-Key, den du dem Chat übergibst, lebt im Prompt-Kontext und in der History. Ein Einfallstor.
📁
Secrets in Dateien
Das .env von Projekt A, die Config von Projekt B — Keys verteilt auf der ganzen Platte.
🔄
Secrets rotieren
Key geändert? Viel Spaß beim Suchen aller Stellen, wo er noch im Klartext liegt.
Die Lösung

Ein Vault. Zwei Clients. Null Secrets im Chat.

Secretariat ist ein Daemon auf deiner Maschine. Der Vault liegt lokal, verschlüsselt mit AES-256-GCM. Sowohl du (via sec) als auch dein KI-Assistent (via sec get im Terminal) greifen auf denselben Secret-Store zu. Der Key verlässt den Vault nie — nur du und dein Agent sehen ihn kurz im stdout.

DU "Erstelle einen neuen Blog-Artikel über MotoGP mit DeepSeek"
AGENT Ich hole den API-Key aus dem gemeinsamen Vault...
TERMINAL $ sec get /deepseek/api-key
AGENT Key geladen (flüchtig im RAM). Erstelle den Artikel...
→ Der Key erscheint nirgendwo im Chat, in keiner Datei, in keinem Prompt-Export
🤖
Agent ruft ab
sec get /openai/api-key im Terminal-Tool. Output flüchtig im RAM des Agenten.
🧑
Mensch setzt
sec set /stripe/secret "sk_live_...". Ein Befehl, ein Vault.
🔐
Vault lokal
Nichts in der Cloud. AES-256-GCM. Daemon auf deiner Maschine, per Passwort geschützt.
📋
Nie im Chat
Das Secret erscheint in keiner Chat-Nachricht. Kein Prompt-Export enthält Keys.
Features — V1

Was Secretariat heute kann

Schlank, schnell, robust. Geschrieben in Rust. Keine Cloud, keine DB-Setups. Einfach brew install secretariat und los.

🤝
Mensch + KI
Ein Vault für dich und deine Agenten. sec get /key im Terminal-Tool — das Secret erscheint nur im stdout, nie im Chat oder in Dateien.
🛡️
AES-256-GCM Vault
Lokaler SQLCipher-Vault. Master-Key per Passwort geschützt. Argon2id Key-Derivation.
CLI + Daemon
sec set, sec get, sec list — alles aus dem Terminal. Daemon läuft im Hintergrund, startet via LaunchAgent automatisch.
🔗
Unix Socket + TCP
Lokal via Unix Socket, Netzwerk via TCP. Auth-Token-geschützt. Bereit für Multi-Device-Setups.
🧑‍💻
Headless-fähig
Funktioniert auf Servern und headless Mac Minis. --password Flag oder SECRETARIAT_INIT_PASSWORD Env-Var für Non-Interactive-Betrieb.
🦀
Rust-Kern
Schnell, speichersicher, kein GC. Daemon (secd) + CLI (sec) in einem Build.
Quick Start

In 60 Sekunden zum eigenen Vault

macOS? brew install secretariat — dann los:

1
Installieren
brew install moinsen-dev/tap/secretariat oder cargo build --release
2
Vault initialisieren
sec init --password "dein-passwort" — legt verschlüsselten Vault an. Headless-fähig.
3
Daemon starten
brew services start secretariat — läuft automatisch ab jetzt.
4
Erstes Secret
sec set /deepseek/api-key sk-... — und sec get von Mensch & KI nutzbar.
# Mensch setzt ein Secret
$ sec set /openai/api-key sk-proj-xxx
✓ Secret gespeichert
# KI-Agent liest es aus (via Terminal-Tool — nie im Chat)
$ sec get /openai/api-key
sk-proj-xxx
# Rotation = ein Befehl
$ sec set /openai/api-key sk-proj-neu
✓ Secret aktualisiert
$ sec list
/openai/api-key
/deepseek/api-key
/stripe/secret

Bereit für Mensch-KI-Secret-Management?

Keine Cloud. Keine Prompts mit Schlüsseln. Ein Vault für dich und deine Agenten.

📦 GitHub Release

Rust-Quellcode offen auf GitHub — Contributions willkommen!