APM est un gestionnaire de mots de passe en ligne de commande rapide et à connaissance nulle, écrit en Go et Rust. Il stocke **plus de 25 types de secrets structurés** dans un unique coffre chiffré — des mots de passe et codes TOTP aux clés SSH, dossiers médicaux, photos et fichiers binaires. Deux binaires sont fournis par ce dépôt : `pm` pour un usage personnel et `pm-team` pour les coffres partagés d'organisation.
Pourquoi APM ?
- Rapide et facile à apprendre — aucune commande ni option à mémoriser. APM vous demande tout ce dont il a besoin. Des options en ligne de commande sont également disponibles pour les utilisateurs avancés qui veulent une vitesse maximale.
- À connaissance nulle — votre mot de passe maître n'est jamais stocké. Trois clés distinctes de 32 octets sont dérivées à l'aide d'Argon2id. Personne d'autre que vous ne peut déchiffrer votre coffre.
- Double chiffrement — choisissez AES-256-GCM ou XChaCha20-Poly1305. Intégrité à double couche via HMAC-SHA256 en plus de l'authentification AEAD.
- Portable — un fichier de coffre, un binaire. Emportez votre coffre partout.
- Cloud optionnel — synchronisez vers Google Drive, GitHub ou Dropbox. Entièrement facultatif ; aucun compte requis pour utiliser APM.
- Prêt pour l'IA — serveur MCP natif avec jetons à portée limitée afin que Claude, Cursor ou tout agent compatible MCP puisse accéder à votre coffre en toute sécurité.
- Prêt pour le travail en équipe — RBAC complet, départements, workflows d'approbation et coffres partagés dans
pm-team.
Démarrage rapide
go build -o pm .
pm setup # initialize vault and choose security profile
pm unlock # start a session
pm add # add a secret (interactive)
pm get github # fuzzy search and retrieve
pm lock # end session
Édition Team :
cd team
go build -o pm-team .
Types de secrets
APM prend en charge 25 types de secrets structurés avec des champs validés et une logique d'affichage propre à chaque type :
| # | Type | # | Type |
|---|
| 1 | Mot de passe | 14 | Registre Docker |
| 2 | TOTP | 15 | Secret CI/CD |
| 3 | Pièce d'identité officielle | 16 | Note sécurisée |
| 4 | Dossier médical | 17 | Codes de récupération |
| 5 | Informations de voyage | 18 | Certificat |
| 6 | Contact | 19 | Informations bancaires |
| 7 | Wi-Fi | 20 | Document |
| 8 | Clé API | 21 | Licence logicielle |
| 9 | Jeton | 22 | Contrat juridique |
| 10 | Clé SSH | 23 | Photo |
| 11 | Configuration SSH | 24 | Audio |
| 12 | Identifiants cloud | 25 | Vidéo |
| 13 | Kubernetes | | |
Fonctionnalités
Sécurité
- Dérivation de clé Argon2id à connaissance nulle — le mot de passe maître n'est jamais stocké
- Chiffrements AEAD doubles : AES-256-GCM et XChaCha20-Poly1305
- Vérification d'intégrité à double couche HMAC-SHA256
- Quatre profils de sécurité ajustables :
standard, hardened, paranoid, legacy
- Watchtower (
pm watchtower) : un score de sécurité de 0 à 100 avec détection des mots de passe faibles, réutilisés, anciens, compromis (sur opt-in, k-anonyme) et exposés, des éléments arrivant à expiration, de l'absence de deux facteurs et de clés d'accès, des clés risquées et des vérifications de configuration, ainsi que des scores de confiance par élément et une revue d'activité
- Les mots de passe erronés ajoutent une attente croissante (jamais de verrouillage permanent), partagée par le CLI, l'application et l'extension
- Journal d'audit inviolable stocké en dehors du coffre
Coffre
- Fichier de coffre chiffré unique — portable sur n'importe quel appareil
- Espaces pour un cloisonnement logique (comme des dossiers)
- Recherche floue avec navigateur interactif et navigation au clavier
- Inspecteur de métadonnées : date de création, dernier accès, nombre d'accès, score de confiance
TOTP
- Comptes à rebours en direct dans une liste interactive
- Ordre personnalisé persistant
- Copie directe :
pm totp github
- Intégration du démon de remplissage automatique pour injecter automatiquement les codes 2FA
Synchronisation cloud
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Chiffrement de bout en bout — les fournisseurs ne voient jamais le texte en clair
.apmignore pour filtrer les entrées par fournisseur
- Résolution des conflits : écraser, conserver le local ou annuler
- Synchronisation automatique en arrière-plan
Sessions
- Déverrouillage/verrouillage explicite avec expiration et délai d'inactivité configurables
- Sessions éphémères déléguées pour l'automatisation et l'accès des agents IA
Serveur MCP
- Serveur natif Model Context Protocol
- Jetons d'autorisation à portée limitée :
read, secrets, write, admin
- Les opérations d'écriture attendent votre approbation dans l'application de bureau ; les assistants ne peuvent pas approuver leurs propres modifications
- Fonctionne avec Claude Desktop, Cursor, Windsurf et tout client MCP
Récupération
| Facteur | Commande |
|---|
| OTP par e-mail | pm auth email |
| Clé de récupération | pm auth recover |
| Parts de quorum (Shamir) | pm auth quorum-setup |
| Clé d'accès WebAuthn | pm auth passkey register |
| Codes de récupération à usage unique | pm auth codes generate |
Import / Export
| Format | Import | Export |
|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
Moteur de politiques
name: corporate-standard
password_policy:
min_length: 14
require_uppercase: true
require_numbers: true
require_symbols: true
rotation_policy:
rotate_every_days: 90
notify_before_days: 14
pm policy load ./policies/
Édition Team (pm-team)
- RBAC avec plusieurs rôles
- Départements avec des domaines de chiffrement isolés
- Workflows d'approbation pour les entrées sensibles
- Coffres partagés pour le partage d'identifiants multi-utilisateurs
Extension de navigateur
L'extension de navigateur APM remplit les identifiants, propose des codes à usage unique sur les sites auxquels ils appartiennent, enregistre les nouveaux identifiants et crée et utilise des passkeys. Elle ne voit jamais votre mot de passe maître ni la clé privée d'une passkey. Elle communique avec un petit pont qu'APM sert sur votre propre machine à l'adresse 127.0.0.1:41417 (définissez APM_BRIDGE_PORT pour utiliser un autre port).
Trois façons d'accéder au coffre