Stormy is a lightweight, secure, and user-friendly command-line interface (CLI) password manager written in Go. It uses bbolt for local storage and incorporates strong encryption to keep your passwords safe. With Stormy, you can manage your credentials directly from your terminal with speed and efficiency.
- Secure Master Password: Protect your stored passwords with a master password hashed using PBKDF2 and salted for added security.
- Encrypted Storage: All passwords are encrypted before storage using state-of-the-art cryptographic techniques.
- Local Database: Stormy uses the bbolt database for lightweight, local storage.
- Salt for Extra Security: Optionally add a salt to your master password for enhanced protection.
- Command-line Simplicity: Add, retrieve, and manage your passwords entirely from the terminal.
We're building a modern, responsive landing page for Stormy using Astro. This page will serve as the central hub for installation guides, documentation, and additional resources.
You can visit the web clicking here Stormy CLI.
⚠️ Why this method? The ZIP file excludes non-essential files, like the landing page, keeping your download size small and focused on the tool.
-
Download the ZIP file:
- Go to the Stormy GitHub repository.
- Click on the Code button and select Download ZIP.
-
Unzip the repository:
unzip stormy-main.zip cd stormy-main
-
Build the project:
go build -o stormy
-
Move the binary to your $PATH for global access:
sudo mv stormy /usr/local/bin
-
Verify the installation:
stormy --help
If you need the full repository, including the landing page and other resources, you can clone it:
-
Clone the repository:
git clone https://github.com/javsanmar5/stormy.git cd stormy
-
Build the project:
go build -o stormy
-
Move the binary to your $PATH for global access:
sudo mv stormy /usr/local/bin
-
Verify the installation:
stormy --help
-
Set a Master Password. Before saving any passwords, set a master password to secure your data:
stormy set-master-password [password] --salt [optional-salt]
-
Add a password. Save a new password for a service:
stormy add --service [service-name] --username [username] --password [password]
-
Retrieve a password. Retrieve a stored password:
stormy get --service [service-name] --username [username]
-
Delete a password. Remove a password from the database:
stormy delete --service [service-name] --username [username]
-
List all services. View all the services for which passwords are stored:
stormy services
-
List all passwords saved. View all your passwords stored in stormy, you can filter by a service.
stormy list stormy list --service [optional-service-name]
-
Set the path for the database. This command allows you to specify a new path and optionally force the change without confirmation.
stormy set-path
Command | Description |
---|---|
set-master-password | Set your master password with an optional salt. |
add | Save a new password for a specific service. |
get | Retrieve a password for a specific service and user. |
delete | Delete a stored password for a service. |
services | List all stored services. |
list | List all stored passwords. You can filter by service. |
set-path | Set the path for the database. |
help | Show detailed help for any command. |
- No Plaintext Storage: Stormy never stores plaintext passwords or master passwords.
- PBKDF2 and Salting: Master passwords are hashed with PBKDF2 and salted for strong resistance against brute-force attacks.
- Encryption: Passwords are encrypted before being stored in the database.
Stormy is licensed under the MIT License. You’re free to use, modify, and distribute it under the terms of this license.
If you encounter any issues or have suggestions for improvement, feel free to open an issue in the GitHub repository. I will really appreciate it.
About contributing to the project.Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
-
Generate an Issue:
- Before making changes, create an issue to discuss the proposed changes or feature.
-
Fork the Repository:
- Click the "Fork" button at the top of this repository to create your own copy.
-
Create a Branch:
- Create a new branch for your changes:
git checkout -b explain-your-changes
- Create a new branch for your changes:
-
Make Your Changes:
- Make your changes in the new branch.
- Follow the project's coding conventions and style.
-
Commit and Push:
- Commit your changes with a descriptive commit message:
git commit -m "[cli/landing]: Add a descriptive message about your changes"
- Commit your changes with a descriptive commit message:
-
Submit a Pull Request (PR):
- Go to the original repository.
- Click on the "Pull Requests" tab and then click "New Pull Request."
- Compare your fork's branch to the main repository's branch.
- Add a detailed description of your changes and link to the issue you created.
- Submit the PR for review.
- Ensure your code follows the project standards and includes proper documentation.
- Check for open issues or discussions before starting work on a new feature.
- Avoid submitting large PRs; try to keep changes focused and modular.
Thank you for your interest in contributing to this project! 😊