Skip to main content

Zenith Passkeys (zenithpasskeys)

PyPI version Python versions License: MIT

Local-first, air-gapped passkey (WebAuthn & FIDO2) manager with an encrypted vault.
Built and managed by Zenith Open Source Projects.


Highlights

  • 🔒 100% Local-First & Air-Gapped: Zero cloud accounts, zero telemetry, zero external network requests. Your private keys never touch the internet.
  • 🛡️ Hardware-Grade Cryptography: Master Encryption Key (MEK) protected by Argon2id (64MB RAM, 3 iterations, 4 lanes) and AES-256-GCM authenticated encryption.
  • 🔑 Dual-Slot Emergency Recovery: Instant vault recovery using a 32-character Crockford Base32 emergency key (XXXX-XXXX-...). Re-wraps the MEK under a new password without losing any passkeys.
  • ⚡ Zero Setup Required: Runs out of the box in any environment without manual virtualenv activation or system compilation.
  • 🌐 Dual Standalone or Browser Mode: Use purely from the terminal as an independent passkey vault, or pair seamlessly with the Zenith Passkeys Chrome/Edge/Firefox Web Extension.

Installation

Install in any environment via pip:

pip install zenithpasskeys

Or install cleanly using pipx (recommended for isolated CLI tools with zero venv management):

pipx install zenithpasskeys

Once installed, you can launch the CLI using either command:

zenith-passkeys
# or
zenithpasskeys

Quickstart Guide

1. Initialize Your Secure Vault

Create a new encrypted vault and generate your 32-character Emergency Recovery Key:

zenith-passkeys init

Save the printed recovery key in a physical notebook or cold storage.

2. View Stored Passkeys

List all passkey credentials stored in your local vault:

zenith-passkeys list

# Filter by domain:
zenith-passkeys list --domain github.com

3. Run a Security Audit

Perform an offline diagnostic check for duplicate credentials or stale passkeys:

zenith-passkeys audit

4. Export & Import Credentials

Securely export your credentials (encrypted with a dedicated export password):

# Encrypted export (recommended):
zenith-passkeys export --encrypt

# Plaintext export:
zenith-passkeys export

Import credentials from another Zenith instance or migration file:

zenith-passkeys import export.json

5. Create Local Backup Snapshots

Create an encrypted backup snapshot directly to an external drive, USB stick, or backup directory:

zenith-passkeys backup create /path/to/backup/zenith-vault-backup.enc

6. Emergency Recovery

Forgot your master password? Recover your vault and set a new password using your Emergency Recovery Key:

zenith-passkeys recover

7. Instant Lock

Clear active authentication sessions and lock the vault across all processes:

zenith-passkeys lock

Command Reference

Command Description
zenith-passkeys init Initialize a new vault and register native host messaging
zenith-passkeys list Display stored passkeys with rich metadata and domain filtering
zenith-passkeys audit Run offline security diagnostics and health scoring
zenith-passkeys export Export credentials to encrypted or plaintext JSON
zenith-passkeys import Import credentials from encrypted or plaintext export files
zenith-passkeys backup Create or restore encrypted vault backup snapshots
zenith-passkeys recover Reset master password using 32-character Emergency Recovery Key
zenith-passkeys rotate-recovery-key Generate and display a new active Emergency Recovery Key
zenith-passkeys change-password Update master password and re-wrap vault master key
zenith-passkeys lock Clear active memory session and lock the vault
zenith-passkeys config Configure auto-lock timeout (inactivity minutes)
zenith-passkeys delete Permanently delete a credential by domain
zenith-passkeys logs View internal diagnostic action audit trail

Pairing with the Browser Extension (Optional)

Zenith Passkeys works as a standalone terminal manager, but also pairs with the Zenith Passkeys Browser Extension for passwordless web logins.

When you run:

zenith-passkeys init

it automatically writes the Native Messaging manifest for Google Chrome, Microsoft Edge, and Mozilla Firefox. The browser extension can then securely communicate with the local zenith-passkeys-host daemon to sign WebAuthn ceremonies on sites like GitHub, Google, and Amazon.


Security Architecture

  1. Argon2id Key Derivation:
    • Memory: 64 MB (m=65536)
    • Iterations: 3 (t=3)
    • Parallelism: 4 lanes (p=4)
  2. Dual-Slot Key Wrapping:
    • Slot 0 (pwWrapped): Master Encryption Key encrypted under master password.
    • Slot 1 (recWrapped): Master Encryption Key encrypted under the 32-character recovery key.
    • Password changes re-wrap Slot 0 while keeping the recovery key permanently functional.
  3. Atomic Operations & Integrity:
    • Atomic file replace using tempfile swaps to eliminate corruption risks.
    • File locks via filelock prevent concurrent write race conditions.
    • Public Suffix List (PSL) validation prevents cross-subdomain credential spoofing.

License & Support

  • License: Open source under the MIT License.
  • Repository: GitHub
  • Support & Security Disclosures: zenithprojects@icloud.com
  • Maintained by: Zenith Open Source Projects

Metadata

Release files for zenithpasskeys 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zenithpasskeys 1.1.2
File Size Uploaded
zenithpasskeys-1.1.2.tar.gz 44.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zenithpasskeys 1.1.2
File Interpreter ABI Platform
zenithpasskeys-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 89.3 kB

Release files / zenithpasskeys-1.1.2.tar.gz

Download URL zenithpasskeys-1.1.2.tar.gz
Size 44.0 kB
Tags Source
SHA-256 checksum
How to use checksums
30c08e8c80599fb6b5edeec82ae09b59467cdb113a4c710e469a317b2c67669c
BLAKE2b-256 checksum
How to use checksums
a0c466525e44a6add5b9c5524d93eb2d85465d10041c5fa181de0b0d21df9ed3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / zenithpasskeys-1.1.2-py3-none-any.whl

Download URL zenithpasskeys-1.1.2-py3-none-any.whl
Size 45.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7bfc4d94cd575732e51fe532de62b8a9447395d5b678fa25b6a4ebbe7e547a5a
BLAKE2b-256 checksum
How to use checksums
3bedc5f039df80f7e33d5167f41d44d6c2bcb3987298d2bdbb040a7c47d35ec7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page