Téléchargements
Installez Clavitor sur votre machine.
Le CLI donne à vos agents un accès à portée limitée à votre coffre-fort. Le proxy injecte les identifiants dans les requêtes HTTPS de manière transparente. Les deux sont des binaires uniques avec zéro dépendance.
Télécharger
Clavitor CLI
Single binary. Fetch credentials, generate TOTP, store new secrets. Zero dependencies.
| Platform | Size | SHA-256 | |
|---|---|---|---|
| Linux · amd64 | 1.7 MB | b81465759ca1f82c… | Download |
| Linux · arm64 | 1.3 MB | d3cb5af3fd9c736c… | Download |
| macOS · Intel | 1.4 MB | 97f82d5a3b060d38… | Download |
| macOS · Apple Silicon | 1.2 MB | 23c9beac8fd4dfe0… | Download |
| Windows · amd64 | 1.5 MB | 25d69ebd9e8cebcd… | Download |
| Windows · 386 | 1.2 MB | a1873dc576cc479f… | Download |
| FreeBSD · amd64 | 1.5 MB | 89750dcf6e59f8f1… | Download |
Clavitor Proxy
HTTPS proxy that injects credentials into agent requests. WASM crypto, no CGO, zero dependencies.
| Platform | Size | SHA-256 | |
|---|---|---|---|
| Linux · amd64 | 2.6 MB | 10681c485f405342… | Download |
| Linux · arm64 | 2.1 MB | 467b03d5dd006420… | Download |
| macOS · Intel | 2.1 MB | 289d74cdf2e4ed5f… | Download |
| macOS · Apple Silicon | 1.7 MB | 950baa470ce40ff3… | Download |
| Windows · amd64 | 2.2 MB | 4d39567efd100a4b… | Download |
| Windows · 386 | 1.8 MB | fa3cae1a442e140e… | Download |
| FreeBSD · amd64 | 2.4 MB | ee870cc2c717bd7c… | Download |
Download SHA256SUMS · verify with sha256sum -c SHA256SUMS
Extension de navigateur
Vous préférez remplir les identifiants dans le navigateur ? L'extension Clavitor dépose les mots de passe, passkeys, cartes et codes à usage unique dans le champ qui les attend réellement — pendant que votre coffre-fort reste distant, sans rien mettre en cache ni déchiffrer sur votre machine.
Disponible dès maintenant pour Chrome. Firefox et Safari bientôt.
Configurer un agent
Deux étapes. Moins d'une minute entre une installation CLI fraîche et un agent fonctionnel.
1. Créez l'agent dans votre coffre-fort
Dans l'interface web de votre coffre, allez dans Agents → Nouveau. Nommez l'agent (par exemple, « Claude Code ») et choisissez les entrées auxquelles il peut accéder. Clavitor renvoie un blob d'enrôlement et une clé d'enrôlement. Le blob est scellé (il encode l'adresse du coffre et l'identité de l'agent) ; la clé est le seul secret qui l'ouvre. Traitez la clé comme un mot de passe : remettez-la directement à la machine où s'exécute l'agent, puis jetez-la.
2. Initialisez le CLI sur la machine de l'agent
$ clavitor-cli init <enrollment-blob> Enrollment key:
La CLI demande la clé (elle n'est jamais prise sur la ligne de commande et n'est pas affichée), déchiffre le blob localement et enregistre le résultat sous forme de configuration locale chiffrée dans ~/.config/clavitor/config (ou $XDG_CONFIG_HOME/clavitor/config). Vous n'avez plus besoin du blob ni de la clé. La section suivante montre comment l'agent utilise la CLI à partir de là.
Configurer le proxy
Pour les agents qui parlent déjà HTTP/HTTPS — Claude Desktop, scripts personnalisés, tout ce qui utilise requests ou fetch. Le proxy se situe entre l'agent et l'API en amont, résolvant les espaces réservés clavitor://Entry/field sur le fil afin que l'agent ne détienne jamais l'identifiant réel. Voir la page d'architecture du proxy pour le modèle de menace et les détails du protocole.
Le guide est rédigé de manière conversationnelle afin qu'un humain ou un agent IA puisse le lire de bout en bout et l'exécuter sur une machine réelle. Choisissez votre système d'exploitation ci-dessous — chaque section est une procédure autonome en six étapes.
Avant de commencer : obtenez un blob et une clé d'enrôlement depuis le coffre
Il vous faut un blob d'enrôlement et sa clé d'enrôlement, provenant de votre coffre. C'est la seule partie que seul un humain peut faire — le coffre exige un appui sur la clé matérielle pour autoriser un nouvel agent.
Dans l'interface web du coffre, allez dans Agents → Nouveau, nommez l'agent (p. ex. « Local Proxy »), choisissez les entrées auxquelles il peut accéder, et appuyez sur votre clé de sécurité lorsque vous y êtes invité. Clavitor renvoie un blob d'enrôlement et une clé d'enrôlement. Copiez les deux. Les étapes ci-dessous vous demandent de coller chacun une fois, puis de les oublier.
Linux
Le guide ci-dessous utilise bash et suppose que vous êtes sur x86-64 ; remplacez arm64 par amd64 si vous êtes sur aarch64.
1. Téléchargez le binaire du proxy et rendez-le exécutable. Un binaire unique et autonome, sans dépendances :
$ curl -LO https://clavitor.ai/downloads/clavitor-proxy-linux-amd64 $ chmod +x clavitor-proxy-linux-amd64
2. Le binaire est sur le disque. Liez-le maintenant à votre coffre. Le proxy lit le blob et la clé depuis stdin (jamais depuis la ligne de commande, pour qu'ils ne fuient pas dans l'historique de votre shell). Collez chacun depuis « Avant de commencer » à l'invite (la clé n'est pas affichée), puis confirmez l'hôte du coffre qu'il vous affiche :
$ ./clavitor-proxy-linux-amd64 init
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>
This token enrolls the agent against vault:
<vault-host>
Your key authenticated the blob — NOT this host. If you did not get
this blob from your own vault operator, answering yes hands your
agent's credential resolution to whoever did.
Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config /path/to/clavitor.conf
Try: clavitor-proxy ca > ca.pem then clavitor-proxy serveCe qui vient de se passer : le blob a été déchiffré localement avec la clé (aucun appel réseau), et l'adresse du coffre + l'identité de l'agent + la clé de déchiffrement des identifiants ont été écrites dans un fichier chiffré, clavitor.conf, à côté du binaire (mode 0600). Vous n'avez plus besoin du blob ni de la clé. Lorsque l'entrée est transmise par un tube plutôt que saisie, on ne peut pas répondre à la confirmation de l'hôte, donc définissez d'abord CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.
3. Exportez la CA racine du proxy. Le proxy va terminer chaque connexion HTTPS que votre agent effectue et réémettre un certificat pour chaque hôte en amont à la volée. Sans faire confiance à sa CA racine, ces certificats échoueraient à la vérification :
$ ./clavitor-proxy-linux-amd64 ca > clavitor-proxy-ca.pem
4. Installez la CA dans le magasin de confiance du système. Sur Debian/Ubuntu et dérivés :
$ sudo cp clavitor-proxy-ca.pem /usr/local/share/ca-certificates/clavitor-proxy-ca.crt $ sudo update-ca-certificates
update-ca-certificates devrait afficher 1 added. À partir de maintenant, chaque client HTTPS sur la machine (curl, requests de Python, net/http de Go, etc.) accepte les certificats du proxy comme légitimes.
5. Démarrez le proxy. Il se lie à 127.0.0.1:1983 et s'exécute au premier plan ; Ctrl-C l'arrête :
$ ./clavitor-proxy-linux-amd64 serve clavitor-proxy <version> listening on 127.0.0.1:1983 Point your agent at: HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983 Token redacted above; it is stored 0600 at /path/to/proxy-auth. e.g. export HTTPS_PROXY="http://clavitor:$(cat /path/to/proxy-auth)@127.0.0.1:1983"
Pour une configuration permanente, déposez une unité systemd pointant vers le même binaire afin qu'il redémarre au redémarrage — voir la documentation du proxy pour une unité de référence.
6. Dirigez votre agent vers le proxy et vérifiez de bout en bout. Dans un autre shell, dans le dossier qui contient le binaire (le fichier proxy-auth qui s'y trouve est le jeton d'accès du proxy ; serve affiche cette ligne) :
$ export HTTPS_PROXY="http://clavitor:$(cat proxy-auth)@127.0.0.1:1983" $ curl -H "Authorization: Bearer clavitor://OpenAI/key" https://api.openai.com/v1/models
Ce qui quitte réellement le proxy et atteint les serveurs d'OpenAI — la requête que votre agent ne voit jamais :
GET /v1/models HTTP/1.1 Host: api.openai.com Authorization: Bearer sk-proj-abc123def456ghi789… ← real key, injected by the proxy User-Agent: curl/8.4.0
Si vous recevez une réponse JSON d'OpenAI, tout est configuré. Le proxy a résolu clavitor://OpenAI/key par rapport au coffre-fort en utilisant la clé de déchiffrement des identifiants de l'étape 2, a substitué la vraie clé dans l'en-tête Authorization, et a transmis la requête en amont. Votre code d'agent ne contient que le placeholder ; la vraie clé ne quitte jamais la mémoire du processus du proxy.
macOS
Le guide ci-dessous utilise zsh (le shell par défaut sur macOS) et suppose Apple Silicon ; remplacez amd64 par arm64 si vous êtes sur un Mac Intel.
1. Téléchargez le binaire du proxy et rendez-le exécutable. Un binaire unique et autonome, sans dépendances :
$ curl -LO https://clavitor.ai/downloads/clavitor-proxy-darwin-arm64 $ chmod +x clavitor-proxy-darwin-arm64
Si Gatekeeper de macOS refuse d'exécuter le binaire la première fois, faites un clic droit dessus dans le Finder, choisissez Ouvrir, et confirmez — cela enregistre l'exception. Après cela, l'invocation en ligne de commande fonctionne.
2. Le binaire est sur le disque. Liez-le maintenant à votre coffre. Le proxy lit le blob et la clé depuis stdin (jamais depuis la ligne de commande, pour qu'ils ne fuient pas dans l'historique de votre shell). Collez chacun depuis « Avant de commencer » à l'invite (la clé n'est pas affichée), puis confirmez l'hôte du coffre qu'il vous affiche :
$ ./clavitor-proxy-darwin-arm64 init
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>
This token enrolls the agent against vault:
<vault-host>
Your key authenticated the blob — NOT this host. If you did not get
this blob from your own vault operator, answering yes hands your
agent's credential resolution to whoever did.
Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config /path/to/clavitor.conf
Try: clavitor-proxy ca > ca.pem then clavitor-proxy serveCe qui vient de se passer : le blob a été déchiffré localement avec la clé (aucun appel réseau), et l'adresse du coffre + l'identité de l'agent + la clé de déchiffrement des identifiants ont été écrites dans un fichier chiffré, clavitor.conf, à côté du binaire (mode 0600). Vous n'avez plus besoin du blob ni de la clé. Lorsque l'entrée est transmise par un tube plutôt que saisie, on ne peut pas répondre à la confirmation de l'hôte, donc définissez d'abord CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.
3. Exportez la CA racine du proxy. Le proxy va terminer chaque connexion HTTPS que votre agent effectue et réémettre un certificat pour chaque hôte en amont à la volée. Sans faire confiance à sa CA racine, ces certificats échoueraient à la vérification :
$ ./clavitor-proxy-darwin-arm64 ca > clavitor-proxy-ca.pem
4. Installez la CA dans le Trousseau Système. Une commande, demande votre mot de passe sudo :
$ sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain clavitor-proxy-ca.pemAprès cela, Safari, curl, Swift, Python, Go, et la plupart des autres clients HTTPS sur la machine acceptent les certificats du proxy. (Un petit nombre de runtimes de langage expédient leur propre bundle de confiance et nécessitent une configuration séparée — vous verrez une erreur de certificat si c'est le cas.)
5. Démarrez le proxy. Il se lie à 127.0.0.1:1983 et s'exécute au premier plan ; Ctrl-C l'arrête :
$ ./clavitor-proxy-darwin-arm64 serve clavitor-proxy <version> listening on 127.0.0.1:1983 Point your agent at: HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983 Token redacted above; it is stored 0600 at /path/to/proxy-auth. e.g. export HTTPS_PROXY="http://clavitor:$(cat /path/to/proxy-auth)@127.0.0.1:1983"
Pour une configuration permanente, installez-le comme agent launchd afin qu'il démarre à la connexion et redémarre en cas de crash.
6. Dirigez votre agent vers le proxy et vérifiez de bout en bout. Dans un autre shell, dans le dossier qui contient le binaire (le fichier proxy-auth qui s'y trouve est le jeton d'accès du proxy ; serve affiche cette ligne) :
$ export HTTPS_PROXY="http://clavitor:$(cat proxy-auth)@127.0.0.1:1983" $ curl -H "Authorization: Bearer clavitor://OpenAI/key" https://api.openai.com/v1/models
Ce qui quitte réellement le proxy et atteint les serveurs d'OpenAI — la requête que votre agent ne voit jamais :
GET /v1/models HTTP/1.1 Host: api.openai.com Authorization: Bearer sk-proj-abc123def456ghi789… ← real key, injected by the proxy User-Agent: curl/8.4.0
Si vous recevez une réponse JSON d'OpenAI, tout est configuré. Le proxy a résolu clavitor://OpenAI/key par rapport au coffre-fort en utilisant la clé de déchiffrement des identifiants de l'étape 2, a substitué la vraie clé dans l'en-tête Authorization, et a transmis la requête en amont. Votre code d'agent ne contient que le placeholder ; la vraie clé ne quitte jamais la mémoire du processus du proxy.
Windows
Le guide ci-dessous utilise PowerShell et suppose Windows 64 bits ; remplacez windows-386.exe par windows-amd64.exe si vous êtes sur 32 bits.
1. Téléchargez le binaire du proxy. Un .exe unique et autonome, sans dépendances :
> Invoke-WebRequest https://clavitor.ai/downloads/clavitor-proxy-windows-amd64.exe `
-OutFile clavitor-proxy.exeWindows SmartScreen peut afficher un avertissement la première fois que vous exécutez un binaire non signé — cliquez sur Plus d'informations → Exécuter quand même pour le permettre.
2. Le binaire est sur le disque. Liez-le maintenant à votre coffre. Le proxy lit le blob et la clé depuis stdin (jamais depuis la ligne de commande, pour qu'ils ne fuient pas dans l'historique de votre PowerShell). Collez chacun depuis « Avant de commencer » à l'invite (la clé n'est pas affichée), puis confirmez l'hôte du coffre qu'il vous affiche :
> .\clavitor-proxy.exe init
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>
This token enrolls the agent against vault:
<vault-host>
Your key authenticated the blob — NOT this host. If you did not get
this blob from your own vault operator, answering yes hands your
agent's credential resolution to whoever did.
Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config C:\path\to\clavitor.conf
Try: clavitor-proxy ca > ca.pem then clavitor-proxy serveCe qui vient de se passer : le blob a été déchiffré localement avec la clé (aucun appel réseau), et l'adresse du coffre + l'identité de l'agent + la clé de déchiffrement des identifiants ont été écrites dans un fichier chiffré, clavitor.conf, à côté du binaire. Vous n'avez plus besoin du blob ni de la clé. Lorsque l'entrée est transmise par un tube plutôt que saisie, on ne peut pas répondre à la confirmation de l'hôte, donc définissez d'abord CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.
3. Exportez la CA racine du proxy. Le proxy va terminer chaque connexion HTTPS que votre agent effectue et réémettre un certificat pour chaque hôte en amont à la volée. Sans faire confiance à sa CA racine, ces certificats échoueraient à la vérification :
> .\clavitor-proxy.exe ca > clavitor-proxy-ca.pem
4. Installez la CA dans le magasin de racines de confiance de la machine locale. Ouvrez un PowerShell élevé (clic droit sur PowerShell → Exécuter en tant qu'administrateur) et exécutez :
> certutil -addstore -f "ROOT" clavitor-proxy-ca.pem
Après cela, Edge, .NET, curl.exe, et la plupart des clients HTTP sur la machine acceptent les certificats du proxy. (Firefox maintient son propre magasin de confiance ; si vous testez via Firefox, importez la CA séparément sous Paramètres → Confidentialité et sécurité → Certificats → Afficher les certificats → Autorités → Importer.)
5. Démarrez le proxy. Il se lie à 127.0.0.1:1983 et s'exécute au premier plan ; Ctrl-C l'arrête :
> .\clavitor-proxy.exe serve clavitor-proxy <version> listening on 127.0.0.1:1983 Point your agent at: HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983 Token redacted above; it is stored 0600 at C:\path\to\proxy-auth. e.g. export HTTPS_PROXY="http://clavitor:$(cat C:\path\to\proxy-auth)@127.0.0.1:1983"
Pour une configuration permanente, enregistrez-le comme service Windows ou tâche planifiée afin qu'il démarre au démarrage.
6. Dirigez votre agent vers le proxy et vérifiez de bout en bout. Dans une autre fenêtre PowerShell, dans le dossier qui contient le binaire (le fichier proxy-auth qui s'y trouve est le jeton d'accès du proxy) :
> $env:HTTPS_PROXY = "http://clavitor:$(Get-Content proxy-auth)@127.0.0.1:1983"
> curl.exe -H "Authorization: Bearer clavitor://OpenAI/key" `
https://api.openai.com/v1/models(Utilisez curl.exe explicitement — l'alias curl de PowerShell pointe vers Invoke-WebRequest, qui gère la variable d'environnement du proxy différemment.) Ce qui quitte réellement le proxy et atteint les serveurs d'OpenAI — la requête que votre agent ne voit jamais :
GET /v1/models HTTP/1.1 Host: api.openai.com Authorization: Bearer sk-proj-abc123def456ghi789… ← real key, injected by the proxy User-Agent: curl/8.4.0
Si vous recevez une réponse JSON d'OpenAI, tout est configuré. Le proxy a résolu clavitor://OpenAI/key par rapport au coffre-fort en utilisant la clé de déchiffrement des identifiants de l'étape 2, a substitué la vraie clé dans l'en-tête Authorization, et a transmis la requête en amont. Votre code d'agent ne contient que le placeholder ; la vraie clé ne quitte jamais la mémoire du processus du proxy.
Installer la compétence Claude Code
Le CLI est livré avec une définition de compétence intégrée qui apprend à Claude Code à utiliser votre coffre-fort. Une commande l'installe.
# Install globally (all projects) $ clavitor-cli skill > ~/.claude/skills/clavitor.md # Or install for a specific project $ clavitor-cli skill > /path/to/project/.claude/skills/clavitor.md
La compétence est intégrée au binaire. Mettez-la à jour en téléchargeant une nouvelle version.
L'utiliser
Votre agent peut désormais récupérer des identifiants, générer des codes TOTP et stocker de nouveaux secrets. Chaque accès est consigné dans le journal d'audit du coffre-fort.
# Fetch a credential $ clavitor-cli get github # Generate a TOTP code $ clavitor-cli totp github # Store a new credential $ clavitor-cli put credential "AWS Prod" --username admin --password s3cret # List all entries $ clavitor-cli list
Un appel CLI. Tous les secrets.
Votre coffre-fort, vos portées, votre journal d'audit. Pas de variables d'environnement, pas de fichiers de configuration, pas de secrets dans les journaux.