APM es un gestor de contraseñas CLI rápido y de conocimiento cero escrito en Go y Rust. Almacena **más de 25 tipos de secretos estructurados** en una única bóveda cifrada: desde contraseñas y códigos TOTP hasta claves SSH, registros médicos, fotos y archivos binarios. Este repositorio produce dos binarios: `pm` para uso personal y `pm-team` para bóvedas organizativas compartidas.
¿Por qué APM?
- Rápido y fácil de aprender — sin memorizar comandos ni flags. APM te solicita lo que necesita. También hay flags de CLI disponibles para usuarios avanzados que quieren la máxima velocidad.
- Conocimiento cero — tu contraseña maestra nunca se almacena. Se derivan tres claves separadas de 32 bytes usando Argon2id. Nadie más que tú puede descifrar tu bóveda.
- Cifrado dual — elige AES-256-GCM o XChaCha20-Poly1305. Integridad de doble capa mediante HMAC-SHA256 sobre la autenticación AEAD.
- Portátil — un archivo de bóveda, un binario. Lleva tu bóveda a cualquier parte.
- Nube opcional — sincroniza con Google Drive, GitHub o Dropbox. Totalmente opcional; no se requiere cuenta para usar APM.
- Listo para IA — servidor MCP nativo con tokens de alcance limitado para que Claude, Cursor o cualquier agente compatible con MCP pueda acceder a tu bóveda de forma segura.
- Listo para equipos — RBAC completo, departamentos, flujos de aprobación y bóvedas compartidas en
pm-team.
Inicio rápido
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
Edición de equipo:
cd team
go build -o pm-team .
Tipos de secretos
APM admite 25 tipos de secretos estructurados con campos validados y lógica de visualización específica por tipo:
| # | Tipo | # | Tipo |
|---|
| 1 | Contraseña | 14 | Registro de Docker |
| 2 | TOTP | 15 | Secreto de CI/CD |
| 3 | Identificación gubernamental | 16 | Nota segura |
| 4 | Historial médico | 17 | Códigos de recuperación |
| 5 | Información de viaje | 18 | Certificado |
| 6 | Contacto | 19 | Banca |
| 7 | Wi-Fi | 20 | Documento |
| 8 | Clave de API | 21 | Licencia de software |
| 9 | Token | 22 | Contrato legal |
| 10 | Clave SSH | 23 | Foto |
| 11 | Configuración SSH | 24 | Audio |
| 12 | Credenciales de la nube | 25 | Vídeo |
| 13 | Kubernetes | | |
Características
Seguridad
- Derivación de claves Argon2id de conocimiento cero — la contraseña maestra nunca se almacena
- Cifrados AEAD duales: AES-256-GCM y XChaCha20-Poly1305
- Verificación de integridad de doble capa HMAC-SHA256
- Cuatro perfiles de seguridad ajustables:
standard, hardened, paranoid, legacy
- Watchtower (
pm watchtower): una puntuación de seguridad de 0 a 100 con contraseñas débiles, reutilizadas, antiguas, filtradas (opcional, k-anónimo) y expuestas, elementos que caducan, falta de doble factor y passkeys, claves riesgosas y comprobaciones de configuración, además de puntuaciones de confianza por elemento y una revisión de actividad
- Las contraseñas incorrectas añaden una espera creciente (nunca un bloqueo permanente), compartida por la CLI, la aplicación y la extensión
- Registro de auditoría a prueba de manipulaciones almacenado fuera de la bóveda
Bóveda
- Un único archivo de bóveda cifrado — portátil entre cualquier dispositivo
- Espacios para compartimentación lógica (como carpetas)
- Búsqueda difusa con navegador interactivo y navegación por teclado
- Inspector de metadatos: fecha de creación, último acceso, recuento de accesos, puntuación de confianza
TOTP
- Temporizadores de cuenta atrás en vivo en una lista interactiva
- Orden personalizado persistente
- Copia directa:
pm totp github
- Integración con el demonio de autocompletado para inyectar automáticamente códigos 2FA
Sincronización en la nube
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Cifrado de extremo a extremo — los proveedores nunca ven el texto plano
.apmignore para filtrar entradas por proveedor
- Resolución de conflictos: sobrescribir, mantener local o cancelar
- Sincronización automática en segundo plano
Sesiones
- Desbloqueo/bloqueo explícito con caducidad configurable y tiempo de inactividad
- Sesiones efímeras delegadas para automatización y acceso de agentes de IA
Servidor MCP
- Servidor nativo del Model Context Protocol
- Tokens de permisos con alcance:
read, secrets, write, admin
- Las operaciones de escritura esperan tu aprobación en la aplicación de escritorio; los asistentes no pueden aprobar sus propios cambios
- Funciona con Claude Desktop, Cursor, Windsurf y cualquier cliente MCP
Recuperación
| Factor | Comando |
|---|
| OTP por correo electrónico | pm auth email |
| Clave de recuperación | pm auth recover |
| Acciones de quórum (Shamir) | pm auth quorum-setup |
| Passkey WebAuthn | pm auth passkey register |
| Códigos de recuperación de un solo uso | pm auth codes generate |
Importar / Exportar
| Formato | Importar | Exportar |
|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
Motor de políticas
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 múltiples roles
- Departamentos con dominios de cifrado aislados
- Flujos de aprobación para entradas sensibles
- Cajas fuertes compartidas para el uso compartido de credenciales entre varios usuarios
Extensión de navegador
La extensión de navegador de APM rellena inicios de sesión, ofrece códigos de un solo uso en los sitios a los que pertenecen, guarda nuevos inicios de sesión y crea y usa passkeys. Nunca ve tu contraseña maestra ni la clave privada de una passkey. Se comunica con un pequeño puente que APM sirve en tu propia máquina en 127.0.0.1:41417 (configura APM_BRIDGE_PORT para usar otro puerto).
Tres formas de acceder a la caja fuerte