Vault 🇬🇧 🇩🇪 🇫🇷
  • Envoyer
  • Demander
  • Comment ça marche
  • Sécurité et confiance
  • Tarifs
  • Des secrets pour les agents IA, sans les coller dans le chat

    Votre agent a besoin d'un mot de passe de base de données ou d'une clé d'API. Au lieu de le taper dans le chat, vous le saisissez dans votre navigateur, et il part directement vers la seule commande que vous avez vue. L'agent obtient le résultat, jamais la valeur.

    Pourquoi le chat n'est pas le bon endroit

    Ce que vous tapez dans une session d'agent reste dans la conversation, dans le journal de session sur votre disque et chez le fournisseur du modèle. Nous l'avons mesuré chez nous : 68 de nos 70 secrets de déploiement se trouvaient en clair dans des journaux de session. Changer les secrets n'y fait rien tant que la valeur suivante prend le même chemin.

    Comment les 68 sur 70 ont été mesurés

    01

    Comment ça marche

    1. L'agent lance vault-ask avec le nom de la valeur et la commande qui en a besoin. vault-ask génère localement une paire de clés et n'affiche qu'un lien.
    2. Vous ouvrez le lien. Avant toute saisie, la page affiche exactement la commande qui recevra la valeur.
    3. Votre navigateur chiffre la valeur pour la paire de clés de la machine de l'agent. Le serveur ne stocke que du chiffré, comme pour toute autre demande Vault.
    4. vault-ask déchiffre localement, vérifie que la commande que vous avez vue est bien celle qu'il va lancer, et ne transmet la valeur qu'à cette commande. L'agent voit : DB_PASSWORD reçu, 32 caractères, transmis à la commande.
    02

    Installation

    Node.js 20 ou plus récent, sans autre dépendance :

    npm install -g @erseni/vault-ask

    Ou directement depuis le code source public, sans npm :

    git clone https://gitlab.erseni.net/open-source/secrets-component.git npm install -g ./secrets-component/cli
    03

    Trois façons de transmettre une valeur

    Par défaut : la valeur n'existe que comme variable d'environnement de ce seul processus enfant. Rien n'est écrit sur le disque.

    vault-ask DB_PASSWORD -- psql -h db.example.com -U app

    Pour les valeurs qui doivent rester : écrites dans un fichier .env avec les droits 600.

    vault-ask STRIPE_KEY SENTRY_DSN --env-file .env

    Pour les clés et certificats : une valeur dans un fichier, droits 600.

    vault-ask TLS_KEY --file certs/server.key

    Il n'existe volontairement aucun moyen d'afficher la valeur. Plusieurs noms dans un même appel donnent une seule page avec plusieurs champs.

    Dans l'autre sens : l'agent vous envoie un mot de passe

    Demandez un nouveau mot de passe à votre agent et vous recevez un lien à usage unique au lieu du mot de passe dans le chat. vault-ask send génère la valeur sur la machine de l'agent, la chiffre sur place et écrit la même valeur dans le fichier .env ou la commande qui en a besoin, si bien que votre système et votre lien concordent.

    vault-ask send DB_PASSWORD --env-file .env

    Le lien affiche la valeur une seule fois, puis il est épuisé. Les envois comptent dans la même limite journalière que les demandes.

    Une protection contre l'agent lui-même

    • Liée à un seul usage : la commande ou le chemin du fichier est fixé à la création de la demande et vous est montré avant la saisie. La page chiffre ce que vous avez vu avec la valeur ; après déchiffrement, vault-ask compare les deux et refuse tout le reste. Une autre commande exige une nouvelle demande, et donc un nouveau regard de votre part.
    • Sortie masquée : vault-ask tourne comme processus parent et remplace la valeur dans tout ce que la commande affiche, y compris en Base64, en encodage URL et en hexadécimal. vault-ask X -- env affiche trois étoiles.
    • Hooks pour Claude Code : un garde PreToolUse est fourni avec le paquet. Il bloque la lecture des fichiers écrits par vault-ask et refuse vault-ask avec un shell, env, printenv ou echo comme commande.

    La limite, en toute honnêteté

    Tout cela rattrape les erreurs et rend visible un agent manipulé. Cela ne rend pas inoffensif un agent qui tourne sous votre propre utilisateur système avec un shell : un tel agent peut lire la mémoire des processus qu'il a lancés. Une protection complète n'existe qu'avec une séparation des droits, où un service sous un autre utilisateur détient le secret et où l'agent ne reçoit qu'une référence. C'est écrit tel quel dans notre modèle de menace, plutôt que de promettre plus que ce que fait le code.

    Pour les environnements sans shell : MCP

    vault-ask-mcp propose les mêmes briques sous forme d'outils MCP : request_secret écrit une valeur dans un fichier, run_with_secret lance une commande avec elle, send_secret vous envoie une valeur générée sous forme de lien à usage unique. Le serveur indique à l'agent dès le début de chaque session quel outil utiliser, si bien que « génère un mot de passe pour ma base de données » aboutit à un lien sans aucune configuration de votre part.

    claude mcp add vault-ask -- vault-ask-mcp

    Limites

    • Sans compte : 3 demandes par minute, protégées par une preuve de travail.
    • Free, avec une clé d'API : 50 demandes par jour, sans preuve de travail.
    • Pro : 500 demandes par jour.
    • Business : illimité, avec un plafond technique de 60 demandes par minute.
    export VAULT_ASK_API_KEY=vak_...
    Créer une clé d'API Code source et modèle de menace

    Produit

    Sécurité

    Informations légales

    Résilier les contrats ici © 2026 Erseni Ltd. Zero-knowledge par conception.