A secure, cross-platform command-line password manager that keeps your credentials safe with end-to-end encryption.
- End-to-End Encryption β Your passwords are encrypted locally before being sent to the server. Only you can decrypt them.
- Zero-Knowledge Architecture β Your master password never leaves your device. The server only stores encrypted data.
- Secure Key Management β Uses a background agent to keep your encryption key in memory, auto-locking after inactivity.
- Cross-Platform β Works on Windows, macOS, and Linux (including WSL2).
- Interactive TUI β Beautiful terminal user interface for browsing, searching, editing, and deleting passwords.
- Clipboard Integration β Copy passwords to clipboard with automatic clearing after 60 seconds.
- Offline Fallback Storage β Automatic encrypted file-based storage when system keyring is unavailable.
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β You ββββββΆβ Passman ββββββΆβ Server β
β β β CLI β β β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β
β β β
Master Password Local Encryption Encrypted Data
(never sent) with your key (cannot decrypt)
- Registration/Login: Your master password is used to derive an encryption key using Argon2id (memory-hard KDF).
- Key Storage: The derived key is held in a background agent process, never written to disk.
- Encryption: All passwords are encrypted with AES-256-GCM before leaving your device.
- Auto-Lock: The agent automatically wipes the key from memory after 10 minutes of inactivity.
- Re-authentication: When the agent locks, you'll be prompted for your master password to continue.
- Download the latest
pman-windows-amd64.exefrom Releases - Rename to
pman.exeand move to a directory in your PATH (e.g.,C:\Users\YourName\bin\) - Or add the download location to your PATH environment variable
Using PowerShell:
# Create bin directory if it doesn't exist
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\bin"
# Download latest release
Invoke-WebRequest -Uri "https://github.com/subrat-dwi/passman-cli/releases/latest/download/pman-windows-amd64.exe" -OutFile "$env:USERPROFILE\bin\pman.exe"
# Add to PATH (run as Administrator, or add manually via System Properties)
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:USERPROFILE\bin", "User")- Download the latest release for your architecture:
- Apple Silicon (M1/M2/M3):
pman-darwin-arm64 - Intel:
pman-darwin-amd64
- Apple Silicon (M1/M2/M3):
Using Terminal:
# For Apple Silicon
curl -L https://github.com/subrat-dwi/passman-cli/releases/latest/download/pman-darwin-arm64 -o /usr/local/bin/pman
# For Intel
curl -L https://github.com/subrat-dwi/passman-cli/releases/latest/download/pman-darwin-amd64 -o /usr/local/bin/pman
# Make executable
chmod +x /usr/local/bin/pmanNote: On first run, macOS may block the app. Go to System Preferences β Security & Privacy β General and click "Allow Anyway".
# Download
curl -L https://github.com/subrat-dwi/passman-cli/releases/latest/download/pman-linux-amd64 -o ~/.local/bin/pman
# Make executable
chmod +x ~/.local/bin/pman
# Ensure ~/.local/bin is in PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.local/bin:$PATH"Requires Go 1.21 or later.
git clone https://github.com/subrat-dwi/passman-cli.git
cd passman-cli
go build -o pman cmd/pman/main.go
# Move to PATH
mv pman /usr/local/bin/ # Linux/macOS
# Or on Windows: move pman.exe to a directory in your PATHpman auth registerYou'll be prompted for:
- Email: Your account email
- Master Password: Choose a strong password (min 8 chars, requires uppercase, lowercase, number, and special character)
β οΈ Important: Remember your master password! It cannot be recovered if lost.
pman auth loginpman createEnter the service name (e.g., "Gmail"), username, and password.
pman listThis opens an interactive list where you can:
- β/β β Navigate
- / β Filter/search
- Enter β View password details
- u β Edit password
- d β Delete password
- c β Copy password to clipboard (in detail view)
- q β Quit
| Command | Description |
|---|---|
pman auth register |
Create a new account |
pman auth login |
Login to your account |
pman auth logout |
Logout and clear local credentials |
| Command | Description |
|---|---|
pman list |
List all passwords (interactive) |
pman create |
Add a new password |
| Command | Description |
|---|---|
pman agent status |
Check if agent is locked/unlocked |
pman agent lock |
Manually lock the agent (wipe key from memory) |
| Command | Description |
|---|---|
pman version |
Show version information |
pman --help |
Show help |
Your master password is the key to all your passwords. Choose wisely:
- β Use at least 12 characters
- β Include uppercase, lowercase, numbers, and symbols
- β Use a passphrase (e.g., "correct-horse-battery-staple!")
- β Don't reuse passwords from other services
- β Don't use personal information (birthdays, names)
- Lock when away: Run
pman agent lockbefore leaving your computer - Don't share your master password: It's the only password you need to remember
- Use on trusted devices only: Avoid public or shared computers
| Platform | Primary Storage | Fallback |
|---|---|---|
| Windows | Windows Credential Manager | Encrypted file |
| macOS | Keychain | Encrypted file |
| Linux/WSL | Encrypted file | β |
Fallback storage location: ~/.passman/vault.enc
- Access token (for API authentication)
- Salt (for key derivation)
- Key verifier (encrypted token to verify master password)
Never stored: Your master password or encryption key
Run pman auth login to authenticate.
The agent has auto-locked due to inactivity. Enter your master password to continue.
The password you entered doesn't match. Try again with the correct master password.
The background agent isn't running. It should start automatically. Try:
- Close all pman processes
- Run any pman command again
Your local credentials are missing. Run pman auth login to restore them.
If you're using an older binary, download the latest release. The Linux version now uses file-based storage to avoid keyring issues.
Configuration file location: ~/.passman/config.yaml
api_base_url: https://api.passman.example.comContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Bubble Tea β Terminal UI framework
- Cobra β CLI framework
- go-keyring β Cross-platform keyring access
- Argon2 β Password hashing
Developed by Subrat Dwivedi