A fast, reliable, and secure CLI tool to manage passwords, built with Go.
Because storing your passwords shouldn't depend on a browser.
- 🔒 Strong symmetric encryption with AES-GCM
- 🧠 Key derivation using Argon2id (memory-hard, resistant to GPU attacks)
- 🧰 Extensible architecture for future algorithms and storage backends
- 📁 Local, offline vault storage — no cloud, no tracking
- 🧼 Full CRUD support via simple CLI commands
git clone https://github.com/limaJavier/secure.git
cd secure
go mod tidy
go build -o bin/secure cmd/main.gosecure init
$ secure init
Enter username: johndoe
Enter password:
Confirm password:secure create
$ secure create
Enter username: johndoe
Enter password:
Enter name: GitHub Account Password
Enter description: Password for johndoe's GitHub Account
Enter password:
Confirm password: secure retrieve
$ secure retrieve
Enter username: johndoe
Enter password:
--------------------
ID: 1
Name: GitHub Account Password
Description: Password for johndoe's GitHub Account
Password: doepasswordgithub
--------------------secure update
$ secure update 1
Enter username: johndoe
Enter password:
Enter name: GitHub Account Password Updated
Enter description:
Enter password:Note: Leave a field blank to skip updating it.
secure delete
$ secure delete 1
Enter username: johndoe
Enter password:secure --help
For a full list of commands and flags:
secure --helpAnd optionally per command:
secure create --help- Secrets are encrypted with AES-256-GCM using unique nonces for each entry.
- Each user gets a unique, randomly generated master key. This master key is encrypted using a key derived from the user's password (via Argon2id), and stored securely.
- All password entries are encrypted using the master key, ensuring forward secrecy.
- Everything is stored locally on a sqlite database — no third-party servers or network calls.
All encrypted entries are saved under:
$HOME/.local/share/secure/secure.db
You can safely back up this file — but you must remember your master password to decrypt it. If lost, recovery is impossible by design.
go test ./...- User management improvements (update & delete users)
- Encrypted database backups
- Session-based authentication (like sudo) — unlock once, use for a limited time
Pull requests are welcome! For major changes, please open an issue first to discuss your ideas.
Please:
- Write clear commit messages
- Include appropriate test coverage
- Follow the existing code style and structure
- Squash all your commits
This project is licensed under the MIT License. See the LICENSE file for details.
Thanks to:
- The Go cryptography community
- The authors of Argon2
- CLI inspiration from tools like
pass,gh, andgit