
apm v11.2.0
Un gestionnaire de mots de passe local pour tout le monde
Pourquoi APM ?
- Rapide et facile à apprendre — aucune commande ni option à mémoriser. APM vous demande tout ce dont il a besoin. Des options CLI sont également disponibles pour les utilisateurs avancés qui veulent une vitesse maximale.
- À connaissance nulle — votre mot de passe principal 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 en option — 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 pour que Claude, Cursor ou tout agent compatible MCP puisse accéder à votre coffre en toute sécurité.
- Prêt pour les équipes — 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 équipe :
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 spécifique à chaque type :
| # | Type | # | Type |
|---|---|---|---|
| 1 | Password | 14 | Docker Registry |
| 2 | TOTP | 15 | CI/CD Secret |
| 3 | Government ID | 16 | Secure Note |
| 4 | Medical Record | 17 | Recovery Codes |
| 5 | Travel Info | 18 | Certificate |
| 6 | Contact | 19 | Banking |
| 7 | Wi-Fi | 20 | Document |
| 8 | API Key | 21 | Software License |
| 9 | Token | 22 | Legal Contract |
| 10 | SSH Key | 23 | Photo |
| 11 | SSH Config | 24 | Audio |
| 12 | Cloud Credentials | 25 | Video |
| 13 | Kubernetes |
Fonctionnalités
Sécurité
- Dérivation de clé Argon2id à connaissance nulle — le mot de passe principal 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 - Score de confiance par secret (0–100) basé sur l'âge, l'accès et le niveau de privilège
- Journal d'audit inviolable stocké en dehors du coffre
Coffre
- Fichier de coffre chiffré unique — portable sur n'importe quel appareil
- Espaces pour un compartimentage 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 d'un 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
.apmignorepour filtrer les entrées par fournisseur- Résolution des conflits : écraser, conserver local ou annuler
- Synchronisation automatique en arrière-plan
Sessions
- Déverrouillage/verrouillage explicite avec expiration configurable et délai d'inactivité
- 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 de permission à portée limitée :
read,secrets,write,admin - Garde-fous transactionnels pour les opérations d'écriture : aperçu → approbation → reçu
- Fonctionne avec Claude Desktop, Cursor, Windsurf et tout client MCP
Récupération
| Facteur | Commande |
|---|---|
| Email OTP | pm auth email |
| Recovery Key | pm auth recover |
| Quorum Shares (Shamir) | pm auth quorum-setup |
| WebAuthn Passkey | pm auth passkey register |
| One-time Recovery Codes | 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 équipe (pm-team)
- RBAC avec plusieurs rôles
- Départements avec domaines de chiffrement isolés
- Workflows d'approbation pour les entrées sensibles
- Coffres partagés pour le partage d'identifiants multi-utilisateurs
Profils de sécurité
| Profil | Mémoire Argon2 | Itérations | Parallélisme | Cas d'usage |
|---|---|---|---|---|
standard | 64 MB | 3 | 2 | La plupart des machines |
hardened | 256 MB | 5 | 4 | Stations de travail (≥8 GB RAM) |
paranoid | 512 MB | 6 | 4 | Serveurs (≥16 GB RAM) |
legacy | PBKDF2 | 600,000 | 1 | Compatibilité ascendante |
APM détecte automatiquement les cœurs de votre CPU et votre RAM pour recommander le profil optimal lors de pm setup.
État du développement et historique
(Cette note provient du propriétaire) Depuis le 30 mars 2026, je travaille actuellement sur l'interface graphique d'APM. Au départ, c'était une application CLI. L'issue #38 explique tout en détail. Globalement, je veux qu'APM atteigne une démographie encore plus large. Je garderai l'interface graphique séparée dans un dépôt apm-gui ou je créerai une organisation et y déplacerai les deux dépôts.
J'ai commencé APM comme un projet véritablement personnel. Cela a commencé un soir au hasard, quand je voulais créer mon propre gestionnaire de mots de passe. J'en avais assez de zoho password, car je l'utilisais pour les TOTP. Il était incroyablement lent à fonctionner, et j'utilisais des fichiers en texte clair pour mes jetons, ce qui n'est pas sécurisé.
À l'heure actuelle, je ne prévois PAS d'abandonner/retirer le projet. Il restera fonctionnel pendant longtemps. J'essaie de l'améliorer chaque jour et je l'utilise chaque jour. Parfois, le dépôt peut être inactif, et c'est à ce moment-là que je teste et expérimente l'application.