Secure Command-Line Password Manager
Project description
Keepr: A lightweight, end-to-end encrypted password manager for developers - built for the terminal.
Keepr is a secure, cross-platform command-line password manager designed for software developers. It stores your credentials in an encrypted SQLCipher database that lives entirely on your local machine, ensuring complete control over your data. No servers, no cloud syncing — just strong, local encryption.
The vault is protected by a Master Password derived into a strong encryption key using an industry-standard PBKDF2-HMAC key derivation function (SHA256, 1.2M iterations). Your data remains safe even if the database or key files are compromised.
🧠 Why Keepr?
As a developer, you constantly handle sensitive data — API keys, repository tokens, SSH passwords, and configuration secrets. Keepr was built to simplify that workflow by letting you store, search, and retrieve secrets directly from the terminal, without switching tools or exposing plaintext data.
📑 Official Docs
Visit the official docs for installation instructions, user guides, deep dives into Keepr's encryption or a full command reference.
⚡ Quick Start
Install Keepr from PyPI:
pip install keepr
keepr login # Set or unlock the master password
keepr add github # Add a credential
keepr view github # Retrieve entry securely
That’s it — your credentials are stored locally, fully encrypted, and accessible only through your master key.
🧩 Features at a Glance
- 🔒 End-to-End Encryption — AES-256 via SQLCipher and Fernet.
- 🔑 Master Password — Derives a Key Encryption Key (KEK) with PBKDF2-HMAC.
- 🕒 Timed Sessions — Stay logged in for convenience, auto-lock after expiry.
- 🧭 Vault Management — Add, update, list, search, or delete credentials.
- 🧰 Password Generator — Cryptographically secure, configurable length.
- 🧼 Clipboard Copy — Automatically copy passwords to the clipboard when viewing an entry.
- 🎨 Custom Color Scheme — Clear, high-contrast terminal output.
- ⚙️ User configuration — Configure the session length, the terminal output color scheme and password generator settings.
📦 Installation
Keepr supports macOS, Linux, and Windows.
Install from PyPI:
pip install keepr
Or download standalone binaries from the github releases page.
For full installation instructions read the docs guide.
🛡️ Security at a Glance
Keepr uses a two-key encryption system:
- KEK (Key Encryption Key) — derived from your Master Password
- PEK (Primary Encryption Key) — encrypts the SQLCipher vault
- The PEK is stored only in encrypted form; the KEK is never written to disk.
Read about the full encryption architecture in the docs.
🤝 Contributing
Contributions, ideas, and bug reports are welcome.
Please read the contributions page for more details.
Please open an issue before submitting major changes.
👨🔧 Support
If you run into problems, the best way to get help is through the GitHub issue tracker.
-
🐛 Bug Reports:
Tag the issue with thebuglabel and include steps to reproduce. -
💡 Feature Requests:
Use theenhancementlabel and describe what you’d like to see added or improved. -
❓ General Questions:
Feel free to open an issue or reach out directly to the maintainers.
🗺 Roadmap
Planned future features and improvements:
- ⌨️ Shell autocompletion for Keepr commands and arguments.
- 🧪 Password strength checks.
- 🧵 Bulk import/export of entries.
- 🔄 A copy command, which copies a password for an entry to the clipboard, without displaying any info on screen.
- 🧩 A generate command, which just generates a password and displays it on screen (separate to the -g option for the add command).
- 🛡️ Optional Two-factor authentication.
- 💻 TUI (Terminal user interface)
If you want to help shape the roadmap, feel free to open an issue or submit proposals.
👤 Authors
- Ben Samarji — Active Maintainer
📧 bensamarji5637@gmail.com
📜 License
Keepr is offered under the MIT License.
See LICENSE.md for full details.
You are free to use, modify, and distribute the software as long as the license terms are respected.
🚀 Project Status
Active development
New features, performance improvements, and security enhancements are added regularly. Community feedback is always appreciated, and contributions are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keepr-1.1.5.tar.gz.
File metadata
- Download URL: keepr-1.1.5.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a25b5ae3924c5a00fb8f39203a2c789ac46831d176eba19b81a6563a0b51edc
|
|
| MD5 |
1ebf8e54d0ee370412b530e0385a495e
|
|
| BLAKE2b-256 |
e813c97270c92ae8b065557dc60e4b1aa004d811c56cf8e46664e2fc5dbbf4ea
|
Provenance
The following attestation bundles were made for keepr-1.1.5.tar.gz:
Publisher:
publish_to_pypi.yml on bsamarji/Keepr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keepr-1.1.5.tar.gz -
Subject digest:
2a25b5ae3924c5a00fb8f39203a2c789ac46831d176eba19b81a6563a0b51edc - Sigstore transparency entry: 725067413
- Sigstore integration time:
-
Permalink:
bsamarji/Keepr@f4b559dd5de4b7ab57e87434444fc399c0bca611 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bsamarji
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@f4b559dd5de4b7ab57e87434444fc399c0bca611 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file keepr-1.1.5-py3-none-any.whl.
File metadata
- Download URL: keepr-1.1.5-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a734c6fff518847fdc7c611288d75df07a21e0bf0a3c7a4ef5d68d864c105b2
|
|
| MD5 |
e711df7a908ef3a228ee9acdc0091df0
|
|
| BLAKE2b-256 |
a55735c7543a4300fc5eb9d2fac737eebc4f79d8b9d3ae42a9e6f9b2330e6890
|
Provenance
The following attestation bundles were made for keepr-1.1.5-py3-none-any.whl:
Publisher:
publish_to_pypi.yml on bsamarji/Keepr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keepr-1.1.5-py3-none-any.whl -
Subject digest:
9a734c6fff518847fdc7c611288d75df07a21e0bf0a3c7a4ef5d68d864c105b2 - Sigstore transparency entry: 725067414
- Sigstore integration time:
-
Permalink:
bsamarji/Keepr@f4b559dd5de4b7ab57e87434444fc399c0bca611 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bsamarji
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@f4b559dd5de4b7ab57e87434444fc399c0bca611 -
Trigger Event:
workflow_dispatch
-
Statement type: