A simple, lightweight password manager written in Go that stores your passwords locally in JSON format.
- 📝 Add new password entries (website, username, password)
- 👀 View all saved entries
- 💾 Local JSON storage (no cloud dependency)
- 🎨 Friendly command-line interface
- 🔒 Simple and secure local storage
- Go 1.16 or higher installed on your system
- Git (for cloning the repository)
-
Clone the repository:
git clone https://github.com/hakisolos/gopassx.git
-
Navigate to the project directory:
cd gopassx -
Run the application:
go run main.go
If you want to create a standalone executable:
# Build for your current platform
go build -o gopassx main.go
# Run the executable
./gopassx# For Windows
GOOS=windows GOARCH=amd64 go build -o gopassx.exe main.go
# For macOS
GOOS=darwin GOARCH=amd64 go build -o gopassx-mac main.go
# For Linux
GOOS=linux GOARCH=amd64 go build -o gopassx-linux main.goWhen you run GoPassX, you'll see a menu with three options:
==== GoPassX - Password Manager 🔐 ====
1. Add new entry
2. View entries
3. Exit
Choose an option (1-3):
- Select option
1 - Enter the website/service name
- Enter your username
- Enter your password
- The entry will be saved to
data.json
- Select option
2 - All saved entries will be displayed with their details
- Select option
3to exit the application
gopassx/
├── main.go # Main application code
├── data.json # Password storage file (created automatically)
└── README.md # This file
- Passwords are stored in a local
data.jsonfile - The file is created automatically when you add your first entry
- Data format: JSON array of password entries
Example data.json structure:
[
{
"website": "github.com",
"username": "myusername",
"password": "mypassword123"
}
]- This is a basic password manager for learning/personal use
- Passwords are stored in plain text in the JSON file
- For production use, consider implementing encryption
- Keep your
data.jsonfile secure and backed up - Don't commit
data.jsonto version control
PasswordEntrystruct: Defines the data structure for password entriesmain(): Main application loop and menuaddEntry(): Handles adding new password entriesviewEntries(): Displays all saved entriessaveToFile()&loadFromFile(): Handle JSON file operations
Feel free to fork this project and submit pull requests for improvements!
Created by haki 💖
This project is open source. Feel free to use, modify, and distribute as needed.
Stay safe and keep your passwords secure! 🔐✨