Claude Code

La sécurité de Claude Code est un problème d'identifiants

Le système de permissions décide quels outils Claude Code peut lancer. Il ne dit rien de ce que ces outils peuvent atteindre, et ce qu'ils peuvent atteindre, c'est chaque secret de votre machine. Sallyport déplace les clés là où l'agent ne peut pas les lire.

les permissions s'arrêtent à l'outilune commande shell autorisée lit .envle trou est là où vit la clé
Permissions

Ce que les demandes de permission couvrent vraiment

Claude Code demande avant de lancer un outil que vous n'avez pas autorisé. Les règles vivent dans settings.json sous forme de listes allow, ask et deny, et elles méritent d'être configurées correctement.

allow

Les outils que vous avez approuvés d'avance

Une règle comme Bash(git commit:*) laisse passer cette commande sans s'arrêter. La règle porte sur la commande, pas sur ce que la commande ouvre une fois lancée.

aucune demande

ask

Tout ce qui n'est pas listé

Le cas par défaut. Claude Code vous montre l'appel d'outil et attend. Vous examinez une action, sur le moment, avec le contexte dont vous disposez à deux heures du matin.

demande

deny

Les chemins et outils que vous avez bloqués

Une règle deny tient l'outil Read à l'écart de ./.env. Elle ne tient pas à l'écart du même fichier une commande shell autorisée, et elle n'a rien à dire sur les processus que vos dépendances démarrent.

partiellement bloqué

bypass

Aucune demande du tout

L'option --dangerously-skip-permissions supprime la question entièrement. Elle a sa propre section plus bas.

aucune demande

Chacune de ces règles porte sur les outils de l'agent. Aucune ne porte sur le fichier qu'un outil lit. Vos jetons d'API sont dans .env, votre clé SSH dans ~/.ssh, et les deux sont lisibles par n'importe quel processus tournant sous votre compte, demande ou pas.

Mode YOLO

Ce que --dangerously-skip-permissions coupe vraiment

On y vient pour de bonnes raisons : longs refactorings et exécutions nocturnes où une boîte de confirmation laisse le travail à l'arrêt jusqu'au matin. Autant savoir exactement ce que vous avez échangé.

Il coupe les confirmations, pas les capacités

Claude Code pouvait déjà lire vos fichiers, utiliser votre shell et sortir sur le réseau. L'option retire la pause où vous l'auriez remarqué.

Le fichier a toujours été lisible

La demande était une occasion d'attraper l'agent en train d'ouvrir .env. Elle n'a jamais été une barrière autour du fichier. Tout processus tournant sous votre compte peut le lire, y compris la dépendance que npm a installée pendant que vous lisiez la demande.

Le rayon, c'est tout ce que votre shell sait faire

Une injection de prompt dans une page récupérée, un README empoisonné dans une dépendance transitive, et ces instructions atterrissent dans une session qui détient vos identifiants et n'a plus aucune demande.

Le mode YOLO vous coûte la chance de vous en apercevoir. Ce n'est pas lui qui a mis les clés à portée ; elles y étaient aussi en mode normal.

Revue de sécurité

Relire votre code est un autre métier

Claude Code lit un diff et y signale des vulnérabilités, et vous avez tout intérêt à le laisser faire. Ce travail porte sur le code que vous livrez. Il ne dit rien de ce que l'agent lui-même peut atteindre pendant qu'il tourne, qui est le sujet de cette page. Ce sont deux problèmes distincts, et régler l'un ne fait rien pour l'autre.

La solution

Retirez les clés de la table

Sallyport détient l'identifiant et passe l'appel. Claude Code demande une action et reçoit un résultat. Aucune clé n'entre dans son environnement, donc il n'y a rien qu'une demande sautée, une dépendance empoisonnée ou une instruction injectée puisse emporter.

  1. 01

    L'agent demande une action

    http.request vers api.stripe.com, ou ssh.exec sur prod-03. Cela arrive par MCP, comme Claude Code appelle n'importe quel autre outil.

  2. 02

    Sallyport décide

    Un coffre verrouillé refuse tout. Une clé marquée pour approbation à chaque appel affiche une carte à chaque fois. Sinon, une carte par exécution de l'agent, portant l'autorité de signature de code de l'appelant.

  3. 03

    Sallyport passe l'appel

    L'identifiant est attaché dans l'application, pendant l'exécution. Il n'entre pas dans l'environnement de l'agent, et une redirection vers un autre hôte ne l'emporte pas.

  4. 04

    Le journal garde le reçu

    Chiffré et chaîné par hachage au moment où l'action se produit. Vous pouvez savoir ce qui a tourné sans dépendre du récit qu'en fait l'agent.

Ensuite, lancez Claude Code comme il vous plaît, demandes activées ou non. La décision qui comptait a quitté l'agent.

Installation

Pointez Claude Code vers la porte

Sallyport vit dans la barre de menus et héberge le coffre dans son propre processus. Pas de démon, pas de compte.

01

Installez et lancez

L'onboarding crée le coffre et active sa porte Touch ID.

brew install --cask olegsotnikov/tap/sallyport
02

Enregistrez le shim MCP

Claude Code récupère http.request, ssh.exec et tout serveur MCP en amont que vous faites passer par Sallyport.

claude mcp add sallyport -- /Applications/Sallyport.app/Contents/MacOS/sp mcp
03

Déplacez la clé et supprimez la copie

Rangez l'identifiant dans le coffre, liez-le à son hôte, et retirez-le du .env. Marquez pour approbation à chaque appel ceux qui vous inquiètent.

stripe → api.stripe.com · approbation par appel

Environ deux minutes. Les demandes qui restent sont celles de Sallyport, et elles portent sur des actions contre de l'infrastructure réelle plutôt que sur l'outil autorisé à s'exécuter.

FAQ

Claude Code et Sallyport

Puis-je continuer à utiliser --dangerously-skip-permissions ?
Oui, et cela devient nettement plus raisonnable une fois les clés hors de portée. Les approbations de Sallyport sont séparées de celles de Claude Code : sauter les unes ne saute pas les autres.
Est-ce que cela ralentit Claude Code ?
Une carte par exécution de l'agent, puis plus rien jusqu'à la fin de l'exécution, sauf si vous avez marqué une clé pour approbation à chaque appel. Les appels approuvés vont à la vitesse de l'API derrière.
Claude Code voit-il la réponse de l'API ?
Oui. Sallyport renvoie la réponse de la cible telle qu'elle arrive et n'en inspecte pas le contenu. Si un service renvoie un secret dans sa propre réponse, l'agent voit cette réponse. Les requêtes passent par la porte ; les réponses ne sont pas filtrées.
Sallyport est-il un plugin Claude Code ?
Non. C'est une application Mac avec un shim MCP, donc elle fonctionne avec n'importe quel client MCP et il n'y a rien à mettre à jour quand Claude Code se met à jour.
Et Cursor, Codex et les autres ?
Le même mécanisme, puisqu'ils parlent tous MCP. Nous testons surtout contre Claude Code, et Cursor et Codex passent régulièrement.

Laissez-le sauter chaque demande. Il ne peut toujours pas lire vos clés.

Téléchargement gratuit. Apple Silicon, macOS 14 ou plus récent. Aucun compte, jamais.

$brew install --cask olegsotnikov/tap/sallyport

macOS 14+ · Apple Silicon

Sallyport

Sallyport exécute les appels d'API et les commandes SSH à la place de votre agent IA. Les clés restent dans un coffre-fort local sur votre Mac ; vous approuvez chaque exécution et chaque action est consignée dans un journal scellé.

© 2026 Sallyport · Open source sous Apache-2.0 · Oleg Sotnikov