
Sandbox- und MCP-Proxy, der KI-Coding-Agenten daran hindert, SSH-Schlüssel, AWS-Anmeldedaten und .env-Dateien zu lesen, mit Deny-by-Default-Richtlinie und manipulationssicheren Audit-Logs.
Die Sandbox von Claude Code erlaubt einem Agenten standardmäßig, deine SSH-Schlüssel und AWS-Anmeldedaten zu lesen. Aegis nicht.
Zwei Ebenen, beide auf echter Hardware verifiziert.
Kernel-Sandbox — die eigene Shell des Agenten kann einen gesperrten Pfad nicht erreichen:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
MCP-Proxy — dasselbe Tool, dieselbe Datei, mit und ohne Aegis davor:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
Jede Zeile wird durch einen Test gestützt, der gegen dieses Release ausgeführt wurde; wo etwas noch nicht getestet ist, wird dies angegeben.
aegis workspace add / remove / list — ändert, in welchen Ordnern der Agent arbeiten darf, ohne policy.json zu bearbeiten. Hinzufügen erfordert immer --confirm-grant; Entfernen nie. add lehnt Ihr Home-Verzeichnis ab, alles, was Aegis' eigene Dateien enthält, einen Pfad mit .., einen Ordner, der nicht existiert, einen Symlink, der sich innerhalb eines Workspace befindet, und einen Workspace innerhalb oder um einen anderen herum. Jede Änderung wird im Audit-Log festgehalten und erzeugt das Sandbox-Profil neu. Eine bereits laufende Sitzung behält die Workspaces, mit denen sie gestartet wurde — einschließlich eines gerade entfernten — gemessen an einer laufenden sandboxed Sitzung.aegis policy set-folder in einen neuen Workspace verwandelt werden, wodurch überall dorthin gewährt wurde, wohin der Link zeigte; und ein innerhalb eines anderen erstellter Workspace konnte später gegen einen Symlink ausgetauscht und beim nächsten Start verfolgt werden. Beide wurden auf 0.8.1 reproduziert und sind nun permanente Regressionstests, die nachweislich dort fehlschlagen.policy.json werden abgelehnt. Ein relativer Pfad wurde gegen den Ordner aufgelöst, von dem aus Aegis gestartet wurde, sodass aegis run und der Launch-Wrapper aus einer Policy unterschiedliche Sandboxes durchsetzen konnten (gemessen: unterschiedliche Profil-Digests). Pfade müssen absolut sein oder mit ~/ beginnen.aegis doctor keine Abweichung mehr zwischen einer Bearbeitung und dem nächsten Start meldet.aegis run und aegis doctor geben den echten Claude-Code-Pfad aus — gelesen aus dem Wrapper, den Aegis geschrieben hat — und /login, um außerhalb der Sandbox auszuführen. Nicht behoben: Ein widerrufenes oder abgelaufenes Token wird weiterhin als angemeldet gelesen, bis die erste Nachricht fehlschlägt (Claude Codes Status meldet keinen Ablauf), und die Anmeldung kann weiterhin nicht innerhalb der Sandbox erfolgen; dafür bräuchte es einen Credential-Broker, den es noch nicht gibt.aegis init schützt einen neuen Benutzer, der sich noch nicht angemeldet hat. Gefunden beim Durchgehen der Anleitung in einer sauberen Umgebung: In 0.8.1 blieb ein Claude Code, das sich nie angemeldet hatte, standardmäßig ungewrappt, hinter einer Frage, die die Dokumentation nie erwähnte, sodass claude außerhalb der Sandbox blieb. Jetzt wird es, sobald Sie der Sandboxing zustimmen, gewrappt, mit einer deutlichen Warnung, sich einmal außerhalb der Sandbox anzumelden (der echte Claude-Code-Pfad, dann /login); die abschließenden Schritte von aegis init stellen das an die erste Stelle, und aegis doctor schlägt fehl, bis Sie es tun. Derselbe Lauf hat auch den Eröffnungs- und Schlusstext von init korrigiert, aegis init, aegis run und aegis doctor eine einheitliche Anmeldeanweisung gegeben und verhindert, dass eine No-op-Änderung nothing to change (nothing to change) ausgibt.Noch nicht in 0.9.0 getestet: Linux; andere Clients als Claude Code; der /login-Ablauf von Anfang bis Ende; eine neu gebaute Desktop-App.
Sitzt zwischen Ihrem KI-Coding-Agenten und Ihrer Maschine:
cat .env kann sie nicht umgehenaegis doctor, und mit Checkpoints
von außerhalb der Sandbox unter einem Schlüssel, den die Sandbox weder lesen noch schreiben kannNeu hier? docs/getting-started.md ist der schrittweise Weg, einschließlich der beiden Fragen, die standardmäßig auf Nein stehen.
Früheren Anweisungen gefolgt, die aegis-mcp genannt haben? Dieses Paket ist nicht Aegis — es ist ein unabhängiges
Projekt, das unter demselben Importnamen aegis installiert wird. Entferne es zuerst:
python3 -m pip uninstall aegis-mcp
Wenn aegis-sandbox bereits installiert ist, löscht diese Deinstallation auch zwei seiner Dateien, also installiere es
danach neu: python3 -m pip install --force-reinstall aegis-sandbox.
python3 -m pip install aegis-sandbox
aegis init # erkennt Claude Code / Cursor, stellt ein paar Fragen
aegis doctor # beweist, dass die Grenze tatsächlich vorhanden ist
Upgrade? Führe aegis init erneut aus. Deine policy.json gehört dir und wird niemals hinter deinem Rücken neu geschrieben, daher erscheint eine neue Sandbox-Domain nicht von selbst — und ohne den OAuth-Token-Endpunkt funktioniert ein sandboxed Client nicht mehr, wenn sein Token abläuft. aegis init bietet die neuen Hosts an; Annehmen ist ein Tastendruck.