Laissez votre agent toucher à la prod.Gardez les clés.
Sallyport conserve vos identifiants dans un coffre-fort local et exécute les appels d'API et les commandes SSH à la place de l'agent. Vous approuvez chaque exécution d'un clic ou avec Touch ID. Aucune commande ne révèle une clé stockée, et il n'existe pas non plus de bouton d'export.
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon · Apache-2.0 · Gratuit · sans compte · sans cloud
Conçu pour les ingénieurs qui laissent Claude Code, Cursor ou Codex toucher à une véritable infrastructure
L'approbation là où vous êtes déjà
Cette clé exige une approbation à chaque utilisation. L'appel attend votre décision.
⏺ sallyport · http.request
PATCH api.cloudflare.com/client/v4/zones/…/dns_records
⎿ key cloudflare · flagged approval per call
⎿ en attente d'approbation…
Approbation requise
http.request → api.cloudflare.com
claude ← node ← zsh
Votre agent peut lire vos clés en ce moment même
Jetons d'API dans .env, clés SSH sur le disque, autorisations OAuth dans les fichiers de configuration. L'agent et chaque paquet qu'il installe peuvent tout lire, et un simple README empoisonné suffit à les faire sortir.
Des secrets en pleine vue
Jetons dans .env et les variables du shell, clés SSH sur le disque, jetons OAuth dans les fichiers de configuration. Lisibles par l'agent, ses processus enfants et tout ce que npm a installé aujourd'hui.
L'injection de prompt devient un vol
Une page ou un README malveillant demande à l'agent d'envoyer un jeton vers une nouvelle destination, et l'agent obéit. Il est fait pour suivre les instructions.
Vous l'apprenez sur la facture
Sans passerelle, aucune trace des appels effectués par l'agent, de leur destination ou de leur contenu. Les clés volées refont surface des semaines plus tard, au moment choisi par quelqu'un d'autre.
Ce n'est pas hypothétique
Mai 2026
Attaque npm TanStack
84 versions malveillantes réparties sur 42 paquets ont récolté des identifiants cloud, des jetons GitHub et des clés SSH dès l'installation, puis se sont propagées via les propres paquets de leurs victimes.
Fin 2025
Ver Shai-Hulud
Des paquets npm compromis volaient des secrets à l'installation et utilisaient les identifiants dérobés pour infecter la vague suivante de paquets.
Août 2025
Nx S1ngularity
Un outil de build empoisonné fouillait les machines des développeurs à la recherche de secrets, sollicitait les outils d'IA locaux et exfiltrait le butin via la CLI GitHub.
Les trois ont récolté des clés dans les variables d'environnement et les fichiers sur le disque. Sallyport tient les clés exploitables hors de portée des deux.
Votre agent n'a pas besoin des clés
L'agent envoie une requête : appeler cette API, exécuter cette commande sur cet hôte. Sallyport joint l'identifiant dans l'application, exécute l'appel et renvoie le résultat. La clé n'apparaît jamais dans l'environnement de l'agent, et un journal scellé montre ce qui s'est exécuté et qui l'a approuvé.
Chaîne de décision fixe
Chaque action gravit la même chaîne de décision compilée. Aucun langage de règles à mal configurer, aucun moteur de règles qui se dégrade ; une allowlist facultative peut ignorer l'invite de session pour les identités de code de confiance.
Le modèle de confiance
sas du coffre-fort
Le coffre-fort est absolu
Le coffre-fort démarre verrouillé. La Secure Enclave et Touch ID protègent l'accès à ses données. Jusqu'au déverrouillage, Sallyport refuse toutes les actions.
clés par appel
Les clés marquées demandent toujours confirmation
Une clé marquée "Approval per call" exige un clic ou Touch ID à chaque utilisation, y compris dans une session approuvée.
sas de session
Une approbation par exécution d'agent
Un nouveau processus d'agent affiche une carte avec son autorité de signature de code. L'approbation reste valide jusqu'à la fin du processus, sa révocation ou le verrouillage du coffre-fort.
observer
Exécuter et enregistrer
Quand l'approbation par session est désactivée, les actions s'exécutent sans carte de session et restent dans le journal.
Verrou du coffre-fort, clé par appel, sas de session, observation.
Tout tient dans une seule app signée
Une seule app Mac signée réunit le coffre-fort, les approbations et le journal. Aucun compte à créer, aucun service cloud derrière.
Sas de coffre-fort absolu
Tant que le coffre-fort est verrouillé, Sallyport refuse chaque action d'agent et toutes les demandes de gestion sauf le statut.
Chiffré au repos
Le coffre-fort chiffre les noms de clés, les fournisseurs, les liaisons d'hôtes, l'inventaire SSH, les réglages et les valeurs secrètes.
Provenance du processus
Chaque carte affiche l'autorité de signature de code de l'appelant et la chaîne de processus parents, y compris tout processus non signé.
Touch ID pour les modifications
Les changements de configuration peuvent exiger Touch ID. Un clic synthétique ne peut pas valider l'invite biométrique.
Journal à écriture aveugle
Sallyport chiffre les exécutions d'agents et les activités à l'écriture, puis relie le texte chiffré par une chaîne de hachage.
Un SSH qui voit la commande
Sallyport voit la commande SSH complète, vérifie la clé de l'hôte et scelle un enregistrement de la session. La clé privée reste dans l'application.
Mode observation
Le mode observation retire les cartes de session, mais conserve le verrou du coffre-fort, l'approbation par appel et le journal.
Aucune récupération
Le coffre-fort n'a ni export, ni affichage, ni clé de récupération. Si vous le perdez, réémettez les identifiants stockés chez leurs fournisseurs.
HTTP, SSH et MCP
Votre agent se connecte à Sallyport comme à un serveur MCP ordinaire. Tout ce qu'il fait suit la même échelle vers le même journal.
API HTTP
http.request → api.github.comL'app effectue l'appel HTTPS et injecte les identifiants uniquement pendant l'exécution. Les redirections vers un autre hôte ne les transmettent pas.
SSH
ssh.exec → deploy@prod-03Un assistant sans état ouvre la connexion. L'app signe les demandes SSH, épingle les clés d'hôte et scelle un enregistrement de session ; la clé privée n'entre pas dans l'assistant.
Serveurs MCP
github.create_issueFaites passer les serveurs MCP locaux en stdio ou distants par le même sas. Sallyport scelle et renouvelle les jetons OAuth 2.1.
Ce qui est en jeu
84
versions de paquets malveillantes dans une seule attaque npm partie à la chasse aux identifiants
0
compte, service cloud ou télémétrie : Sallyport s'exécute entièrement sur votre Mac
1 geste
Touch ID approuve un appel marqué ; un clic synthétique ne peut pas le simuler
~2 min
de brew install à votre premier appel filtré
Ce que Sallyport ne promet pas
Les outils de sécurité adorent trop promettre ; voici donc nos limites, noir sur blanc.
Limites
Une session approuvée peut quand même mal se comporter
L'approbation de session autorise le processus, pas le sens de chaque requête. Utilisez l'approbation par appel pour les clés qui exigent un examen individuel.
Il ne peut pas arrêter du code natif s'exécutant sous votre identité
Sallyport n'est pas un antivirus. Du code exécuté avec vos droits utilisateur peut encore attaquer l'app ou le système d'exploitation.
Il ne peut pas regarder à votre place
Les cartes affichent l'autorité de signature de code et la chaîne de processus de l'appelant. Vous devez toujours examiner la requête.
Questions fréquentes
Sous quelle licence Sallyport est-il publié ?
Où résident mes secrets ?
Fait-il des remontées de données ?
Quelle est la configuration requise ?
Que se passe-t-il quand le coffre-fort est verrouillé ?
Fonctionne-t-il avec Claude Code et d'autres agents ?
L'agent peut-il un jour voir mes clés ?
Et si je perds l'accès à mon Mac ?
Votre agent n'est qu'à une injection de prompt de vos clés.
Téléchargement gratuit. Apple Silicon, macOS 14 ou plus récent. Aucun compte, jamais.
brew install --cask olegsotnikov/tap/sallyportmacOS 14+ · Apple Silicon