allow
Werkzeuge, die Sie vorab erlaubt haben
Eine Regel wie Bash(git commit:*) lässt diesen Befehl ohne Nachfrage durch. Die Regel gilt für den Befehl, nicht für das, was der Befehl beim Ausführen öffnet.
Claude Code
Das Berechtigungssystem entscheidet, welche Werkzeuge Claude Code ausführen darf. Worauf diese Werkzeuge zugreifen können, sagt es nicht, und zugreifen können sie auf jedes Geheimnis auf Ihrem Rechner. Sallyport legt die Schlüssel dorthin, wo der Agent sie nicht lesen kann.
Claude Code fragt nach, bevor es ein Werkzeug ausführt, das Sie nicht erlaubt haben. Die Regeln stehen in der settings.json als allow-, ask- und deny-Listen, und es lohnt sich, sie sauber einzurichten.
allow
Eine Regel wie Bash(git commit:*) lässt diesen Befehl ohne Nachfrage durch. Die Regel gilt für den Befehl, nicht für das, was der Befehl beim Ausführen öffnet.
ask
Der Normalfall. Claude Code zeigt Ihnen den Werkzeugaufruf und wartet. Sie prüfen eine einzelne Aktion, im Moment, mit dem Kontext, den Sie um 2 Uhr nachts gerade haben.
deny
Eine deny-Regel hält das Read-Werkzeug von ./.env fern. Sie hält keinen erlaubten Shell-Befehl von derselben Datei fern, und über die Prozesse, die Ihre Abhängigkeiten starten, hat sie nichts zu sagen.
bypass
Der Schalter --dangerously-skip-permissions lässt die Frage komplett weg. Dazu unten ein eigener Abschnitt.
Jede dieser Regeln betrifft die Werkzeuge des Agenten. Keine davon betrifft die Datei, die ein Werkzeug liest. Ihre API-Token liegen in .env, Ihr SSH-Schlüssel in ~/.ssh, und beide sind für jeden Prozess lesbar, der unter Ihrem Konto läuft, mit oder ohne Nachfrage.
Es gibt gute Gründe dafür: lange Refactorings und Läufe über Nacht, bei denen ein Bestätigungsdialog bedeutet, dass die Arbeit bis zum Morgen stillsteht. Es lohnt sich zu wissen, was Sie dafür eingetauscht haben.
Claude Code konnte Ihre Dateien schon vorher lesen, Ihre Shell benutzen und ins Netz greifen. Der Schalter entfernt die Pause, in der Sie es bemerkt hätten.
Die Nachfrage war eine Gelegenheit, den Agenten beim Öffnen von .env zu erwischen. Eine Schranke um die Datei selbst war sie nie. Jeder Prozess unter Ihrem Konto kann sie lesen, auch die Abhängigkeit, die npm installiert hat, während Sie die Nachfrage lasen.
Eine Prompt Injection in einer abgerufenen Seite, ein vergiftetes README in einer transitiven Abhängigkeit, und diese Anweisungen landen in einer Sitzung, die Ihre Zugangsdaten hält und keine Nachfragen mehr kennt.
Der YOLO-Modus kostet Sie die Chance, es zu bemerken. Er hat die Schlüssel nicht in Reichweite gebracht; in Reichweite waren sie auch im Normalbetrieb.
Security Review
Claude Code liest ein Diff und markiert darin Schwachstellen, und das sollten Sie nutzen. Diese Arbeit betrifft den Code, den Sie ausliefern. Über das, worauf der Agent selbst während seiner Laufzeit zugreifen kann, sagt sie nichts, und darum geht es auf dieser Seite. Das sind getrennte Probleme, und das eine zu lösen hilft dem anderen nicht.
Sallyport hält die Zugangsdaten und führt den Aufruf aus. Claude Code bittet um eine Aktion und bekommt ein Ergebnis zurück. Kein Schlüssel gelangt in seine Umgebung, also gibt es nichts, was eine übersprungene Nachfrage, eine vergiftete Abhängigkeit oder eine eingeschleuste Anweisung heraustragen könnte.
01
http.request an api.stripe.com, oder ssh.exec auf prod-03. Das kommt über MCP an, so wie Claude Code jedes andere Werkzeug aufruft.
02
Ein gesperrter Tresor verweigert alles. Ein Schlüssel mit Freigabe pro Aufruf zeigt jedes Mal eine Karte. Sonst eine Karte pro Agentenlauf, mit der Signaturberechtigung des Aufrufers.
03
Die Zugangsdaten werden in der App angehängt, während der Ausführung. Sie gelangen nicht in die Umgebung des Agenten, und eine Weiterleitung auf einen anderen Host nimmt sie nicht mit.
04
Verschlüsselt und per Hash verkettet, während die Aktion passiert. Sie können herausfinden, was gelaufen ist, ohne sich auf die Darstellung des Agenten zu verlassen.
Danach können Sie Claude Code fahren, wie es Ihnen passt, mit oder ohne Nachfragen. Die Entscheidung, auf die es ankam, liegt nicht mehr beim Agenten.
Sallyport läuft in der Menüleiste und hält den Tresor im eigenen Prozess. Es gibt keinen Daemon und kein Konto.
Das Onboarding legt den Tresor an und aktiviert sein Touch-ID-Gate.
brew install --cask olegsotnikov/tap/sallyportClaude Code bekommt damit http.request, ssh.exec und jeden vorgelagerten MCP-Server, den Sie über Sallyport leiten.
claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcpLegen Sie die Zugangsdaten in den Tresor, binden Sie sie an ihren Host, und entfernen Sie sie aus .env. Markieren Sie die heiklen für Freigabe pro Aufruf.
stripe → api.stripe.com · Freigabe pro AufrufEtwa zwei Minuten. Die Nachfragen, die bleiben, sind die von Sallyport, und sie drehen sich um Aktionen auf echter Infrastruktur statt darum, welches Werkzeug laufen darf.
Kostenloser Download. Apple Silicon, macOS 14 oder neuer. Kein Konto, niemals.
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon