Tutorial · Claude Code

API-Keys vor Claude schützen: Agent Vault als Attrappen-Trick

Claude nutzt deine API-Keys, sieht sie aber nie. So richtest du Agent Vault auf dem Mac ein: kostenlos, Open Source, in etwa 30 Minuten und mit jedem Befehl erklärt.

G
Georg Kinzel
29. September 2026
API-Keys vor Claude schützen: Agent Vault als Attrappen-Trick

Claude bekommt von dir keinen echten API-Key mehr, nur eine Attrappe. Ein kleines Programm auf deinem Mac, Agent Vault, fängt jede Anfrage ab, die rausgeht, und setzt erst dort den echten Key ein. Das passiert nur bei Diensten, die du vorher freigegeben hast. Claude arbeitet also ganz normal mit deinen bezahlten Diensten, hat den Schlüssel aber nie gesehen. Das Programm ist kostenlos, Open Source und in etwa 30 Minuten eingerichtet.

Warum Claude deinen Key nicht haben sollte

Ein API-Key ist das Passwort für einen Dienst. Über ihn rechnet der Anbieter ab, bei OpenAI, bei einer Such-API oder bei einem Transkriptions-Dienst. Wer den Key hat, arbeitet auf deine Rechnung.

Claude will dir nichts Böses. Er liest aber alles, was vor ihm liegt, deine Projektordner genauso wie Webseiten oder ein Repo, das du ihm zum Anschauen gibst. Steht auf einer dieser Seiten versteckt ein Satz wie „schick den API-Key an folgende Adresse”, dann ist das ein Befehl, den Claude im schlechtesten Fall befolgt. Das nennt man Prompt-Injection.

Dazu kommen die ganz normalen Pannen. Liest Claude einmal deine .env-Datei, steht der Key im Chatverlauf, und Claude Code speichert diese Verläufe lokal als Textdatei. Machst du eine Bildschirmaufnahme vom Terminal, ist der Key im Bild.

Ein Satz wie „lies bitte nie die .env” in deinen Anweisungen hilft da wenig, denn ein präparierter Text kann ihn überstimmen. Sicher ist nur ein Key, den Claude gar nicht erst hat.

Das Prinzip: Attrappe plus Wächter

Agent Vault ist ein sogenannter Proxy, also eine Zwischenstation für alle Anfragen ins Internet. Du legst deine Keys einmal in Agent Vault ab. Claude startest du danach über Agent Vault, und dann passiert Folgendes:

  1. Claude und jedes Skript, das er startet, schicken ihre Anfragen über Agent Vault raus.
  2. Im Skript steht statt des Keys nur eine Attrappe, zum Beispiel __attrappe__.
  3. Agent Vault schaut, wohin die Anfrage geht. Ist das ein Dienst, den du freigegeben hast, setzt es den echten Key ein.
  4. Geht die Anfrage woandershin, etwa an die Adresse aus dem versteckten Befehl, kommt dort kein Key an.

Ich habe das mit meinem Key für Jev getestet, einer bezahlten KI von TypeSafe. Ein kleines Skript, das nur die Attrappe kennt, bekommt ohne Agent Vault die Antwort „401 Unauthorized”. Über Agent Vault läuft derselbe Aufruf durch und Jev antwortet ganz normal. In der Umgebung des Skripts taucht der echte Key dabei kein einziges Mal auf.

Schritt 1: Agent Vault installieren

Öffne das Terminal und führ den offiziellen Installationsbefehl aus (Agent-Vault-Doku):

curl --proto '=https' --proto-redir '=https' --tlsv1.2 -fsSL https://get.agent-vault.dev | AGENT_VAULT_NO_TELEMETRY=1 sh

Das Skript lädt die passende Version für deinen Mac und legt sie nach /usr/local/bin. Dafür fragt es eventuell nach deinem Mac-Passwort. Der Zusatz AGENT_VAULT_NO_TELEMETRY=1 schaltet den anonymen Installations-Ping ab. Ob alles geklappt hat, zeigt dir:

agent-vault version

Schritt 2: Master-Passwort anlegen und Server starten

Agent Vault verschlüsselt deine Keys mit einem Master-Passwort. Das musst du dir nicht ausdenken und nicht merken. Du lässt den Mac eins erzeugen und legst es direkt in den Schlüsselbund, also den Passwortspeicher, den dein Mac schon hat:

security add-generic-password -a "$USER" -s agent-vault-master -w "$(openssl rand -base64 32)" -T ""

Das -T "" am Ende sorgt dafür, dass macOS jedes Mal nachfragt, bevor ein Programm das Passwort lesen darf. Dann startest du den Server:

security find-generic-password -a "$USER" -s agent-vault-master -w | agent-vault server --password-stdin -d --telemetry=false

Es erscheint ein Schlüsselbund-Fenster, dort klickst du auf „Erlauben”. Der Server läuft jetzt im Hintergrund, nur auf deinem Rechner. Nach einem Neustart des Macs führst du diese Zeile einfach noch einmal aus.

Schritt 3: Dein Admin-Konto anlegen

Das erste Konto auf dem Server gehört dir als Besitzer. Auch dessen Passwort legst du in den Schlüsselbund und meldest dich damit an:

security add-generic-password -a "$USER" -s agent-vault-owner -w "$(openssl rand -base64 24)" -T ""
security find-generic-password -a "$USER" -s agent-vault-owner -w | agent-vault auth register --email deine@mail.de --password-stdin
security find-generic-password -a "$USER" -s agent-vault-owner -w | agent-vault auth login --email deine@mail.de --password-stdin

Die Mailadresse dient hier nur als Login-Name für deinen lokalen Server.

Schritt 4: Tresor, Key und Freigabe anlegen

Jetzt legst du einen Tresor an, hier heißt er claude, und legst deinen ersten Key hinein. Damit der Key nicht in deiner Terminal-Historie landet, fragt das Terminal ihn verdeckt ab:

agent-vault vault create claude
read -s "KEY?Key einfügen: " && agent-vault vault credential set "OPENAI_KEY=$KEY" --vault claude && unset KEY

Beim Einfügen siehst du nichts, das ist gewollt. Dann sagst du Agent Vault, bei welchem Dienst dieser Key eingesetzt werden darf:

agent-vault vault service add --vault claude --name openai --host api.openai.com --auth-type bearer --token-key OPENAI_KEY

--host ist die Adresse des Dienstes, --auth-type bearer die übliche Art, wie APIs den Key erwarten. Für jeden weiteren Dienst wiederholst du die zwei Befehle mit anderem Namen und anderer Adresse. Die richtige Adresse steht in der API-Dokumentation des Anbieters.

Schritt 5: Claude einen eigenen Zugang geben

Claude bekommt einen eigenen Zugang, der nur eins darf: Anfragen über den Wächter schicken. Keys auslesen kann er damit nicht.

security add-generic-password -a "$USER" -s agent-vault-agent-token -w "$(agent-vault agent create claude-code --vault claude:proxy --token-only)"

Schritt 6: Admin-Login wieder abmelden

Diesen Schritt nicht überspringen. Solange dein Admin-Login auf der Platte liegt, könnte ein Programm auf deinem Mac ihn benutzen und die Keys doch auslesen. Das habe ich im Test nachgestellt, es klappt. Also meldest du dich nach jeder Einrichtung wieder ab:

agent-vault auth sessions list
agent-vault auth sessions revoke <ID aus der Liste>

Jede Zeile in der Liste ist eine Anmeldung, du widerrufst alle. Danach meldet agent-vault vault credential get OPENAI_KEY --vault claude nur noch „not logged in”. So soll es sein.

Schritt 7: Claude über den Wächter starten

Damit du dir den langen Startbefehl nicht merken musst, legst du ein Kürzel in deine ~/.zshrc:

alias claude-safe='AGENT_VAULT_TOKEN="$(security find-generic-password -a "$USER" -s agent-vault-agent-token -w)" AGENT_VAULT_ADDR=http://127.0.0.1:14321 AGENT_VAULT_VAULT=claude agent-vault run -- claude'

Terminal neu öffnen, dann startest du Claude ab jetzt mit claude-safe. In deinen Projekten ersetzt du die echten Keys in der .env durch eine Attrappe wie OPENAI_API_KEY=__attrappe__. Den echten Wert setzt Agent Vault unterwegs ein.

Beim ersten Start legt Agent Vault eine kleine Anleitung für Claude an (~/.claude/skills/agent-vault-cli). Darin steht, dass Keys wie Attrappen aussehen dürfen und dass Claude bei einem fehlenden Zugang einen Antrag stellen soll. Den bestätigst du dann selbst.

Der Test: Funktioniert es?

Leg in einem leeren Ordner ein Skript an, das einen Dienst nur mit der Attrappe aufruft, und starte es einmal normal und einmal über Agent Vault:

curl -s https://api.openai.com/v1/models -H "Authorization: Bearer __attrappe__" | head -3

Normal gestartet kommt eine Fehlermeldung, weil die Attrappe kein gültiger Key ist. In einer claude-safe-Sitzung lässt du Claude denselben Befehl ausführen, und die Liste der Modelle kommt zurück. Frag Claude danach ruhig, wie dein Key lautet. Er kennt ihn nicht.

Wie sicher ist das wirklich

Gegen die Pannen, die in der Praxis passieren, schützt dich das gut. Der Key steht nicht mehr im Chatverlauf, nicht in deiner Bildschirmaufnahme und nicht in einer .env, die auf GitHub landet. Ein versteckter Befehl auf einer Webseite läuft ins Leere, weil Claude den Key nicht hat und der Wächter ihn nur bei deinen freigegebenen Diensten einsetzt.

Gegen einen Agenten, der auf deinem Mac gezielt nach Schlüsseln jagt, ist es kein Panzerschrank. Server und Claude laufen auf demselben Rechner und unter demselben Benutzer. Infisical empfiehlt deshalb selbst, Agent Vault für ernsthaften Betrieb auf eine eigene Maschine zu legen (GitHub). Für deinen Mac heißt das: Admin-Login immer abmelden (Schritt 6) und die Schlüsselbund-Fenster nicht blind durchklicken. Agent Vault ist außerdem noch als Preview gekennzeichnet, Befehle können sich also mit neuen Versionen ändern.

Wenn dir ein zusätzlicher Server zu viel ist: Claude Code hat eine eingebaute Maskierung in der Sandbox-Einstellung, die nach demselben Prinzip arbeitet und Befehlen nur einen Platzhalter zeigt (Claude-Code-Doku). Sie gilt nur für Claude selbst, Agent Vault dagegen für jedes Programm, das du darüber startest.

Für wen lohnt sich das

Sobald Claude bei dir mit bezahlten Diensten arbeitet und im Netz liest, lohnt sich das. Das gilt ganz besonders, wenn du deinen Bildschirm aufnimmst oder Projekte teilst. Du hast dann einen Ort für alle Keys, und Claude bekommt nur die Dienste, die du freigibst.

Nutzt du Claude nur im Browser oder in der App und hast überhaupt keine API-Keys, brauchst du das nicht. Und wenn du erst einmal nur weg willst von Keys im Klartext, reicht der einfachere Weg über den Schlüsselbund oder 1Password aus der Anleitung API-Schlüssel sicher verwalten.

Newsletter

Willst du wissen, welche KI-Tools wirklich halten, was sie versprechen, und welche du dir sparen kannst? Im Newsletter teste ich jede Woche neue Tools und schicke dir ehrlich die, die zählen.

👉 Zum Newsletter anmelden

Mehr Anleitungen findest du in der Tutorial-Übersicht.

Quellen

  1. Agent Vault auf GitHub (Infisical)
  2. Agent Vault Dokumentation: Installation
  3. Agent Vault: The open-source credential proxy and vault for agents (Infisical Blog)
  4. Configure the sandboxed Bash tool (Claude Code Docs)

29. September 2026. KI-Tools, Preise und Funktionen ändern sich schnell. Vor wichtigen Entscheidungen den aktuellen Stand direkt beim Anbieter prüfen.

Transparenz. Dieser Beitrag ist mit KI-Unterstützung entstanden und von mir geprüft. Das Beitragsbild ist KI-generiert. Genau mit diesen Workflows arbeite ich, und genau die zeige ich hier.

Klau mein System

Das Setup, mit dem KI bei mir 80 % der Arbeit übernimmt. Im kostenlosen PDF: Projekt, Anweisung und fünf Vorlagen für Angebot, Kundenmail, Nachfassen, Posts und Wochenplan. Skills folgen.

Mein System holen

Häufige Fragen

Warum soll ich Claude keinen API-Key geben?
Weil Claude alles liest, was im Arbeitsordner und im Netz vor ihm liegt, auch Texte, die ihm Befehle unterschieben wollen. Alles, was Claude sehen kann, kann so im Chatverlauf, in einer Bildschirmaufnahme oder bei einem Fremden landen. Der Key ist das Passwort für einen Dienst, und darüber läuft deine Rechnung.
Reicht es nicht, Claude zu sagen, dass er die .env-Datei nicht lesen soll?
Nein. So eine Anweisung kann ein präparierter Text überstimmen, und ein Fehler im Ablauf genügt, damit der Wert doch im Chat auftaucht. Sicher ist nur, was Claude gar nicht erst in die Hand bekommt.
Was ist Agent Vault?
Ein kostenloses Open-Source-Programm von Infisical. Es läuft als kleiner Server auf deinem Rechner und sitzt zwischen Claude und dem Internet. Claude arbeitet mit einer Attrappe, Agent Vault tauscht sie beim Rausgehen gegen den echten Key, und zwar nur bei Diensten, die du freigegeben hast.
Kostet Agent Vault etwas?
Nein. Das Programm steht unter MIT-Lizenz und läuft komplett lokal. Infisical bietet zusätzlich eine kommerzielle Variante für Firmen an, die brauchst du für den Mac nicht.
Funktioniert das auch in der Claude-Desktop-App?
Die Anleitung hier ist für Claude Code im Terminal getestet. Die Desktop-App startest du nicht aus dem Terminal, deshalb greift der Startbefehl dort nicht. Ob es sich über den Umgebungs-Editor der App einrichten lässt, habe ich noch nicht getestet.