APM è un gestore di password CLI veloce e a conoscenza zero scritto in Go e Rust. Memorizza **oltre 25 tipi di segreti strutturati** in un unico vault crittografato — dalle password e codici TOTP alle chiavi SSH, cartelle cliniche, foto e file binari. Da questo repository vengono distribuiti due binari: `pm` per uso personale e `pm-team` per vault organizzativi condivisi.
Perché APM?
- Veloce e facile da imparare — nessun comando o flag da memorizzare. APM ti chiede tutto ciò di cui ha bisogno. Sono disponibili anche flag CLI per gli utenti esperti che desiderano la massima velocità.
- A conoscenza zero — la tua password principale non viene mai memorizzata. Tre chiavi separate da 32 byte vengono derivate usando Argon2id. Nessuno tranne te può decrittografare il tuo vault.
- Doppia crittografia — scegli AES-256-GCM o XChaCha20-Poly1305. Integrità a doppio livello tramite HMAC-SHA256 sopra l'autenticazione AEAD.
- Portatile — un file vault, un binario. Porta il tuo vault ovunque.
- Cloud opzionale — sincronizza con Google Drive, GitHub o Dropbox. Completamente facoltativo; nessun account richiesto per usare APM.
- Pronto per l'IA — server MCP nativo con token con ambito limitato, così Claude, Cursor o qualsiasi agente compatibile con MCP può accedere al tuo vault in modo sicuro.
- Pronto per i team — RBAC completo, reparti, flussi di approvazione e vault condivisi in
pm-team.
Avvio rapido
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
Edizione Team:
cd team
go build -o pm-team .
Tipi di segreto
APM supporta 25 tipi di segreto strutturati con campi validati e logica di visualizzazione specifica per tipo:
| # | Tipo | # | Tipo |
|---|
| 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 | | |
Funzionalità
Sicurezza
- Derivazione della chiave Argon2id a conoscenza zero — la password principale non viene mai memorizzata
- Doppio cifrario AEAD: AES-256-GCM e XChaCha20-Poly1305
- Controllo di integrità a doppio livello HMAC-SHA256
- Quattro profili di sicurezza configurabili:
standard, hardened, paranoid, legacy
- Watchtower (
pm watchtower): un punteggio di sicurezza da 0 a 100 con password deboli, riutilizzate, vecchie, compromesse (opt-in, k-anonimo) ed esposte, elementi in scadenza, autenticazione a due fattori e passkey mancanti, chiavi rischiose e controlli di configurazione, oltre a punteggi di affidabilità per singolo elemento e una revisione delle attività
- Le password errate aggiungono un'attesa crescente (mai un blocco permanente), condivisa tra CLI, app ed estensione
- Registro di controllo a prova di manomissione memorizzato all'esterno della cassaforte
Cassaforte
- Singolo file di cassaforte cifrato — portabile su qualsiasi dispositivo
- Spazi per la compartimentazione logica (come le cartelle)
- Ricerca fuzzy con browser interattivo e navigazione da tastiera
- Ispettore dei metadati: data di creazione, ultimo accesso, numero di accessi, punteggio di affidabilità
TOTP
- Timer di conto alla rovescia in tempo reale in un elenco interattivo
- Ordinamento personalizzato persistente
- Copia diretta:
pm totp github
- Integrazione con il demone di compilazione automatica per l'iniezione automatica dei codici 2FA
Sincronizzazione cloud
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Cifratura end-to-end — i provider non vedono mai il testo in chiaro
.apmignore per filtrare le voci per provider
- Risoluzione dei conflitti: sovrascrivere, mantenere locale o annullare
- Sincronizzazione automatica in background
Sessioni
- Blocco/sblocco esplicito con scadenza configurabile e timeout di inattività
- Sessioni effimere delegate per l'automazione e l'accesso degli agenti AI
Server MCP
- Server nativo Model Context Protocol
- Token di autorizzazione con ambito:
read, secrets, write, admin
- Le operazioni di scrittura attendono la tua approvazione nell'app desktop; gli assistenti non possono approvare le proprie modifiche
- Funziona con Claude Desktop, Cursor, Windsurf e qualsiasi client MCP
Recupero
| Fattore | Comando |
|---|
| 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 |
Importazione / Esportazione
| Formato | Importazione | Esportazione |
|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
Motore delle policy
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/
Team Edition (pm-team)
- RBAC con più ruoli
- Reparti con domini di crittografia isolati
- Flussi di approvazione per le voci sensibili
- Vault condivisi per la condivisione delle credenziali tra più utenti
Estensione per browser
L'estensione per browser di APM compila i login, offre codici monouso sui siti a cui appartengono, salva nuovi login e crea e utilizza passkey. Non vede mai la tua master password né la chiave privata di una passkey. Comunica con un piccolo bridge che APM espone sulla tua macchina all'indirizzo 127.0.0.1:41417 (imposta APM_BRIDGE_PORT per usare un'altra porta).
Tre modi per raggiungere il vault
- Con l'app desktop: il bridge è in esecuzione finché l'app è aperta. Le richieste di pairing e gli sblocchi dal browser compaiono nell'app.
- Solo con la CLI, collegata (consigliato): esegui
pm extension link una volta. Registra pm come host di messaggistica nativa con ciascun browser Chromium (Chrome, Edge, Brave, Arc, Vivaldi, Chromium) e da quel momento il browser avvia pm autonomamente ogni volta che l'app è chiusa.
- Solo con la CLI, da un terminale: esegui
pm extension serve e lascialo aperto. Espone la stessa API dell'app desktop e mostra ogni richiesta di sblocco, blocco e pairing nel momento in cui avviene.