APM ist ein schneller Zero-Knowledge-CLI-Passwortmanager, geschrieben in Go und Rust. Er speichert **über 25 strukturierte Geheimnistypen** in einem einzigen verschlüsselten Tresor – von Passwörtern und TOTP-Codes bis hin zu SSH-Schlüsseln, medizinischen Unterlagen, Fotos und Binärdateien. Aus diesem Repository stammen zwei Binärdateien: `pm` für den persönlichen Gebrauch und `pm-team` für gemeinsame organisatorische Tresore.
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 wollen, 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. Integrität auf zwei Ebenen 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 eingeschränkten 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 | Ausweis | 16 | Sichere Notiz |
| 4 | Krankenakte | 17 | Wiederherstellungscodes |
| 5 | Reiseinformationen | 18 | Zertifikat |
| 6 | Kontakt | 19 | Bankwesen |
| 7 | WLAN | 20 | Dokument |
| 8 | API-Schlüssel | 21 | Softwarelizenz |
| 9 | Token | 22 | Rechtsvertrag |
| 10 | SSH-Schlüssel | 23 | Foto |
| 11 | SSH-Konfiguration | 24 | Audio |
| 12 | Cloud-Anmeldedaten | 25 | Video |
| 13 | Kubernetes | | |
Funktionen
Sicherheit
- Zero-Knowledge-Schlüsselableitung mit Argon2id — das Master-Passwort wird niemals gespeichert
- Zwei AEAD-Verschlüsselungsverfahren: AES-256-GCM und XChaCha20-Poly1305
- Integritätsprüfung mit zweifacher HMAC-SHA256-Schicht
- Vier anpassbare Sicherheitsprofile:
standard, hardened, paranoid, legacy
- Watchtower (
pm watchtower): ein Sicherheitswert von 0–100 mit schwachen, wiederverwendeten, alten, kompromittierten (Opt-in, k-anonym) und offengelegten Passwörtern, ablaufenden Einträgen, fehlender Zwei-Faktor-Authentifizierung und fehlenden Passkeys, riskanten Schlüsseln und Einrichtungsprüfungen sowie Vertrauenswerten pro Eintrag und einer Aktivitätsüberprüfung
- Falsche Passwörter führen zu einer wachsenden Wartezeit (niemals zu einer dauerhaften Sperre), gemeinsam genutzt von CLI, App und Erweiterung
- Manipulationssicheres Audit-Log, das außerhalb des Tresors gespeichert wird
Tresor
- Einzelne verschlüsselte Tresordatei — portabel auf jedem Gerät
- Spaces für logische Unterteilung (wie Ordner)
- Unscharfe Suche mit interaktivem Browser und Tastaturnavigation
- Metadaten-Inspektor: Erstellungsdatum, letzter Zugriff, Zugriffszähler, Vertrauenswert
TOTP
- Live-Countdown-Timer in einer interaktiven Liste
- Dauerhafte 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
.apmignore zum Filtern von Einträgen pro Anbieter
- Konfliktlösung: überschreiben, lokal behalten oder abbrechen
- Automatische Synchronisierung im Hintergrund
Sitzungen
- Explizites Entsperren/Sperren mit konfigurierbarem Ablauf und Inaktivitäts-Timeout
- Delegierte ephemere Sitzungen für Automatisierung und KI-Agenten-Zugriff
MCP-Server
- Nativer Model Context Protocol-Server
- Bereichsbezogene Berechtigungstoken:
read, secrets, write, admin
- Schreibvorgänge warten in der Desktop-App auf Ihre Genehmigung; Assistenten können ihre eigenen Änderungen nicht genehmigen
- 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
Browser-Erweiterung
Die APM-Browser-Erweiterung füllt Anmeldedaten aus, bietet Einmalcodes auf den Websites an, zu denen sie gehören, speichert neue Anmeldedaten und erstellt und verwendet Passkeys. Sie sieht niemals Ihr Master-Passwort oder den privaten Schlüssel eines Passkeys. Sie kommuniziert mit einer kleinen Bridge, die APM auf Ihrem eigenen Rechner unter 127.0.0.1:41417 bereitstellt (setzen Sie APM_BRIDGE_PORT, um einen anderen Port zu verwenden).
Drei Wege zum Tresor
- Mit der Desktop-App: Die Bridge läuft, solange die App geöffnet ist. Kopplungsanfragen und Browser-Entsperrungen erscheinen in der App.
- Nur mit der CLI, verknüpft (empfohlen): Führen Sie einmal
pm extension link aus. Dadurch wird pm bei jedem Chromium-Browser (Chrome, Edge, Brave, Arc, Vivaldi, Chromium) als Native-Messaging-Host registriert, und von da an startet der Browser pm selbstständig, wann immer die App geschlossen ist.
- Nur mit der CLI, aus einem Terminal: Führen Sie
pm extension serve aus und lassen Sie es geöffnet. Es stellt dieselbe API bereit wie die Desktop-App und zeigt jede Entsperr-, Sperr- und Kopplungsanfrage an, sobald sie eintritt.