Skip to content

hachimamma/Passlock

Repository files navigation

PassLock

Secure, local-first password manager with a beautiful TUI, adaptive encryption, and zero cloud dependencies.

License: MIT Rust Security


Features

  • Military-grade encryption - AES-256-GCM or ChaCha20-Poly1305 (auto-selected)
  • Beautiful TUI - Intuitive terminal interface with Gruvbox theme (default)
  • Blazing fast - Written in Rust with C crypto core
  • Local-only - No cloud, no telemetry, no BS
  • Password generator - Strong, unique passwords every time
  • Password strength meter - Real-time feedback
  • Tags & organization - Categorize your passwords
  • Password history - Track changes, restore old passwords
  • Fast search - Find passwords instantly
  • CPU-aware - Uses hardware acceleration when available
  • Cross-platform - Linux, macOS
  • TOTP/2FA Support - Generate 2FA codes directly in PassLock
  • Configurable clipboard timeout - Choose when clipboard clears (10s-5min or never)
  • Right-click context menu - Mouse-driven quick actions

Why PassLock?

Feature LastPass 1Password Bitwarden PassLock
Price $3/mo $3/mo $1/mo FREE
Open Source
Local-only
No cloud
No telemetry ⚠️
CLI + TUI ⚠️
Adaptive encryption

Quick Start

Installation

# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential libsodium-dev

# Clone and build
git clone https://github.com/hachimamma/Passlock
cd passlock
make install

First Use

# Create your vault
passlock create mySecurePassword123

# Launch TUI
passlock tui

That's it!


Screenshots

Main Menu

┌────────────────────────────────────────┐
│  PassLock v2.3.5                       │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                        │
│ ▶ View Passwords                      │
│ ▶ Add Password                        │
│ ▶ Edit Password                       │
│ ▶ Delete Password                     │
│ ▶ View History                        │
│ ▶ 2FA                                 │
│ ▶ Search Passwords                    │
│ ▶ Generate Password                   │
│ ▶ Filter by Tags                      │
│ ▶ Lock Vault                          │
│ ▶ Exit                                │
│                                        │
│  Use ↑↓ or j/k to navigate             │
│  Press Enter to select, q to quit      │
└────────────────────────────────────────┘

Password List

 ┌─ Passwords (5 entries) ──────────────────┐
 │ Search: _                                │
 ├──────────────────────────────────────────┤
 │ ▶ GitHub (hachimamma)                   │
 │     work, dev                            │
 │                                          │
 │ ▶ Gmail (personal@gmail.com)            │
 │     personal                             │
 │                                          │
 │ ▶ AWS Console (admin)                   │
 │     work, cloud                          │
 │                                          │
 │ ▶ Bank Account (customer123)            │
 │     banking                              │
 │                                          │
 │ ▶ Reddit (user2024)                     │
 │     personal, social                     │
 └──────────────────────────────────────────┘
   ↑↓:Navigate  Enter:View  /:Search  q:Back

Security

Encryption

PassLock uses adaptive encryption based on your CPU:

  • Modern CPUs (with AES-NI): AES-256-GCM - Hardware accelerated, 3-5 GB/s
  • Older CPUs (no AES-NI): ChaCha20-Poly1305 - 6x faster than software AES

Both are equally secure! (256-bit security, used by Signal, WireGuard, TLS 1.3)

Check what you're using:

passlock info cpu

Key Derivation

  • Algorithm: Argon2id (winner of Password Hashing Competition)
  • Memory: 64 MB (resistant to GPU/ASIC attacks)
  • Iterations: Auto-tuned for ~100ms unlock time
  • Salt: 16 bytes, unique per vault

Authentication

  • AEAD: Authenticated Encryption with Associated Data
  • Tag: 128-bit Poly1305 MAC
  • Tampering protection: Any modification = decryption fails

Documentation


Use Cases

Personal Use

  • Manage all your passwords securely
  • Generate strong, unique passwords
  • Keep everything local (no cloud sync)
  • Free and open source

Developer/SysAdmin

  • Store SSH keys, API tokens, database credentials
  • CLI-friendly workflow
  • Git-syncable vault file
  • Fast search and filtering

Small Teams

  • Share vault file via Git/Syncthing
  • No subscription fees
  • Full control over data
  • Audit trail (password history)

Privacy-Conscious Users

  • Zero telemetry
  • No phone-home
  • No account required
  • No cloud storage

Performance

Encryption Speed (10 MB file):

CPU                     Cipher              Speed
────────────────────────────────────────────────────
Intel i7 (AES-NI)       AES-256-GCM        0.002s
Intel i7 (AES-NI)       ChaCha20-Poly1305  0.010s
Intel Celeron (no AES)  AES-256-GCM        0.200s ❌
Intel Celeron (no AES)  ChaCha20-Poly1305  0.033s ✅

PassLock automatically picks the fastest option!

Building from Source

Prerequisites

Ubuntu/Debian:

sudo apt install build-essential libsodium-dev

Fedora:

sudo dnf install gcc libsodium-devel

macOS:

brew install libsodium

Arch:

sudo pacman -S base-devel libsodium

Build

# Clone
git clone https://github.com/hachimamma/Passlock
cd passlock

# Build release version
cargo build --release

# Install (optional)
sudo cp target/release/passlock /usr/local/bin/

Development

# Run tests
make test

# Run with debug logging
RUST_LOG=debug cargo run -- tui

# Check code quality
make lint

# Format code
make format

Roadmap

Version 2.0 (Previous)

  • TUI interface with Gruvbox theme
  • Adaptive encryption (AES/ChaCha20)
  • Password generator
  • Password history
  • Tags and categories
  • Search and filter
  • CPU feature detection

Version 2.1 (Current)

  • TOTP/2FA support
  • Theme Selection
  • Right-Click Context Menu
  • Esc Menu
  • Browser extension (Chrome/Firefox)
  • Import from LastPass/1Password/Bitwarden
  • Export to various formats
  • Breach checker (HaveIBeenPwned integration)

Version 3.0 (Planned)

  • Mobile app (iOS/Android)
  • Secure notes & files
  • Team/family sharing
  • Emergency access
  • Hardware key support (YubiKey)
  • Passkey/WebAuthn support

Contributing

We love contributions! Here's how you can help:

  1. Report bugs - Open an issue
  2. Suggest features - Tell us what you need!
  3. Submit PRs - Fix bugs, add features
  4. Improve docs - Help others understand PassLock
  5. Spread the word - Star the repo, tell friends!

See CONTRIBUTING.md for details.


Acknowledgments

  • libsodium - Robust crypto library
  • ratatui - Beautiful TUI framework
  • Gruvbox - Amazing color scheme
  • Rust - Memory-safe systems programming
  • Community contributors - Thank you!

Special thanks to:

  • [@rokybeast] - ChaCha20-Poly1305 optimization for CPUs without AES-NI

License

MIT License - see LICENSE file

TL;DR: Free to use, modify, distribute. No warranty.


Links


Support

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - General questions and ideas
  • Email - subhodisha2062@gmail.com

Star History

Star History Chart


Made with ❤️ by the PassLock community

Secure your digital life. Own your data. Stay free.