
apm v11.2.0
Ein lokaler Passwort-Manager für alle
Warum APM?
- Schnell & leicht zu erlernen — keine Befehle oder Flags zum Auswendiglernen. APM fragt Sie nach allem, was es benötigt. Für Power-User, die maximale Geschwindigkeit wünschen, sind auch CLI-Flags verfügbar.
- Zero-Knowledge — Ihr Master-Passwort wird niemals gespeichert. Drei separate 32-Byte-Schlüssel werden mit Argon2id abgeleitet. Niemand außer Ihnen kann Ihren Tresor entschlüsseln.
- Doppelte Verschlüsselung — wählen Sie zwischen AES-256-GCM oder XChaCha20-Poly1305. Doppelschichtige Integrität durch HMAC-SHA256 zusätzlich zur AEAD-Authentifizierung.
- Portabel — eine Tresordatei, eine Binärdatei. Nehmen Sie Ihren Tresor überallhin mit.
- Optionale Cloud — Synchronisierung mit Google Drive, GitHub oder Dropbox. Vollständig optional; für die Nutzung von APM ist kein Konto erforderlich.
- KI-bereit — nativer MCP-Server mit bereichsbezogenen Tokens, damit Claude, Cursor oder jeder MCP-kompatible Agent sicher auf Ihren Tresor zugreifen kann.
- Team-bereit — vollständige RBAC, Abteilungen, Genehmigungsworkflows und gemeinsame Tresore in
pm-team.
Schnellstart
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
Team-Edition:
cd team
go build -o pm-team .
Geheimnistypen
APM unterstützt 25 strukturierte Geheimnistypen mit validierten Feldern und typspezifischer Anzeigelogik:
| # | Typ | # | Typ |
|---|---|---|---|
| 1 | Passwort | 14 | Docker Registry |
| 2 | TOTP | 15 | CI/CD Secret |
| 3 | Behördlicher Ausweis | 16 | Sichere Notiz |
| 4 | Medizinische Unterlagen | 17 | Wiederherstellungscodes |
| 5 | Reiseinformationen | 18 | Zertifikat |
| 6 | Kontakt | 19 | Banking |
| 7 | Wi-Fi | 20 | Dokument |
| 8 | API-Schlüssel | 21 | Softwarelizenz |
| 9 | Token | 22 | Rechtlicher Vertrag |
| 10 | SSH-Schlüssel | 23 | Foto |
| 11 | SSH-Konfiguration | 24 | Audio |
| 12 | Cloud-Anmeldedaten | 25 | Video |
| 13 | Kubernetes |
Funktionen
Sicherheit
- Zero-Knowledge-Argon2id-Schlüsselableitung — Master-Passwort wird niemals gespeichert
- Doppelte AEAD-Verschlüsselungsverfahren: AES-256-GCM und XChaCha20-Poly1305
- HMAC-SHA256-Integritätsprüfung mit doppelter Schicht
- Vier anpassbare Sicherheitsprofile:
standard,hardened,paranoid,legacy - Vertrauensbewertung pro Geheimnis (0–100) basierend auf Alter, Zugriff und Berechtigungsstufe
- Manipulationssicheres Audit-Log, das außerhalb des Tresors gespeichert wird
Tresor
- Einzelne verschlüsselte Tresordatei — portabel über jedes Gerät hinweg
- Spaces zur logischen Unterteilung (wie Ordner)
- Fuzzy-Suche mit interaktivem Browser und Tastaturnavigation
- Metadaten-Inspektor: Erstellungsdatum, letzter Zugriff, Zugriffszähler, Vertrauensbewertung
TOTP
- Live-Countdown-Timer in einer interaktiven Liste
- Persistente benutzerdefinierte Reihenfolge
- Direktes Kopieren:
pm totp github - Autofill-Daemon-Integration zum automatischen Einfügen von 2FA-Codes
Cloud-Synchronisierung
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- Ende-zu-Ende-verschlüsselt — Anbieter sehen niemals Klartext
.apmignorezum Filtern von Einträgen pro Anbieter- Konfliktlösung: überschreiben, lokal behalten oder abbrechen
- Automatische Hintergrund-Synchronisierung
Sitzungen
- Explizites Entsperren/Sperren mit konfigurierbarem Ablauf und Inaktivitäts-Timeout
- Delegierte ephemere Sitzungen für Automatisierung und KI-Agent-Zugriff
MCP-Server
- Nativer Model Context Protocol-Server
- Bereichsbezogene Berechtigungs-Tokens:
read,secrets,write,admin - Transaktions-Leitplanken für Schreibvorgänge: Vorschau → Genehmigung → Beleg
- Funktioniert mit Claude Desktop, Cursor, Windsurf und jedem MCP-Client
Wiederherstellung
| Faktor | Befehl |
|---|---|
| E-Mail-OTP | pm auth email |
| Wiederherstellungsschlüssel | pm auth recover |
| Quorum-Anteile (Shamir) | pm auth quorum-setup |
| WebAuthn-Passkey | pm auth passkey register |
| Einmalige Wiederherstellungscodes | 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 |
Policy-Engine
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 mit mehreren Rollen
- Abteilungen mit isolierten Verschlüsselungsdomänen
- Genehmigungsworkflows für sensible Einträge
- Gemeinsame Tresore für die gemeinsame Nutzung von Anmeldedaten durch mehrere Benutzer
Sicherheitsprofile
| Profil | Argon2-Speicher | Iterationen | Parallelität | Anwendungsfall |
|---|---|---|---|---|
standard | 64 MB | 3 | 2 | Die meisten Rechner |
hardened | 256 MB | 5 | 4 | Workstations (≥8 GB RAM) |
paranoid | 512 MB | 6 | 4 | Server (≥16 GB RAM) |
legacy | PBKDF2 | 600,000 | 1 | Abwärtskompatibilität |
APM erkennt Ihre CPU-Kerne und Ihren RAM automatisch, um während pm setup das optimale Profil zu empfehlen.
Entwicklungsstatus und -geschichte
(Diese Anmerkung stammt vom Eigentümer) Seit dem 30. März 2026 arbeite ich an der GUI für APM. Anfangs begann es als CLI-Anwendung. Issue #38 erklärt alles im Detail. Insgesamt möchte ich, dass APM eine noch größere Zielgruppe erreicht. Ich werde die GUI separat in einem apm-gui-Repository halten oder eine Organisation erstellen und beide Repositories dorthin verschieben.
Ich begann APM als ein wirklich persönliches Projekt. Es begann an einem zufälligen Abend, als ich meinen eigenen Passwortmanager erstellen wollte. Ich hatte genug von Zoho Password, da ich es für TOTPs verwendete. Es war unglaublich langsam, bis es überhaupt funktionierte, und ich verwendete Klartextdateien für meine Tokens, was nicht sicher ist.
Derzeit plane ich NICHT, das Projekt aufzugeben/einzustellen. Es wird noch lange funktionsfähig bleiben. Ich versuche, es jeden Tag besser zu machen, und nutze es täglich. Manchmal mag das Repository inaktiv sein, und dann teste und experimentiere ich mit der Anwendung.