Skip to content

mrjxtr-dev/mr-shush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚠️ This Readme is AI generated for now and might not contain most up to date and relevant information

Mr Shush 🀫

A Secure, Offline-First Password & Secrets Manager written in Go

Your secrets are safe with me... shhh.


✨ What is mr-shush?

mr-shush is a lightweight, offline-first password generator and secrets manager built with speed and simplicity in mind β€” all thanks to Go. Designed for developers, sysadmins, privacy-conscious users, and anyone who wants full control over their sensitive data without relying on the cloud.

It's fast. It's secure. It's quiet.


πŸš€ Features

  • πŸ” Secure local storage with strong encryption
  • πŸ§ͺ Generate passwords with customizable options
  • 🧰 Manage secrets like environment variables, API keys, database creds, etc.
  • πŸ’» Offline CLI: Simple commands, fast execution
  • 🌐 Self-hosted Web App with modern UI built using templ and TailwindCSS (coming soon)
  • πŸ“¦ Export secrets to .env files or shell scripts
  • πŸ›‘οΈ No phoning home β€” no internet required

🎯 Who is it for?

  • Devs managing local .env files
  • Tinfoil hat wearers who don't trust the cloud
  • Teams wanting a private, internal secrets manager
  • You β€” yes, you β€” the curious Go enthusiast

πŸ› οΈ Installation

Coming soon as a downloadable binary...
But for now:

git clone https://github.com/mrjxtr/mr-shush.git
cd mr-shush
go build -o mr-shush .
./mr-shush

πŸ’‘ Example CLI Commands

# General format of commands
mr-shush [command] [options] [arguments]

# Generate a strong password
mr-shush generate --length 10 --strong

# Generate a weak password
mr-shush generate --length 10 --weak

# Generate and store a password
mr-shush generate --length 10 --store --name github-password

# Store a password directly
mr-shush store --name github-password --password supersecret123!

# Store a new secret
mr-shush store --vault vault-name --key DB_PASSWORD --value supersecret123!

# Store multiple secrets at once
mr-shush store --vault vault-name --key DB_PASSWORD --value supersecret123!
mr-shush store --vault vault-name --key API_KEY --value abc123xyz
mr-shush store --vault vault-name --key AWS_SECRET --value aws-secret-key

# Store all secrets from a .env file
mr-shush store --vault vault-name --env-file path/to/.env

# List all vaults
mr-shush list

# List secrets in a specific vault (names only, not values πŸ˜‰)
mr-shush list --vault vault-name

# Export secrets to .env format
mr-shush export --format env > path/to/.env

# Launch the local web UI (soon)
mr-shush start

🧠 How It Works

  • All secrets are stored locally, encrypted using AES-256.
  • A master password protects the entire vault.
  • Data is saved in a local file-based database (SQLite).
  • Nothing leaves your machine. Ever unless you want it to.

πŸ—οΈ Project Structure

mr-shush/
β”œβ”€β”€ cmd/                # Application entry points
β”‚   β”œβ”€β”€ app/            # Web application
β”‚   └── cli/            # Command-line interface
β”œβ”€β”€ internal/           # Private application code
β”‚   β”œβ”€β”€ config/         # App configuration and flag parsing
β”‚   β”œβ”€β”€ db/             # SQLite database operations for secrets
β”‚   β”œβ”€β”€ generator/      # Password/API key generation logic
β”‚   β”œβ”€β”€ middleware/     # HTTP middleware
β”‚   β”œβ”€β”€ models/         # Data structures for secrets, settings
β”‚   β”œβ”€β”€ server/         # Route handlers, static file server
β”‚   β”œβ”€β”€ templates/      # UI templates (templ)
β”‚   └── vault/          # Encryption, master password, locking
β”œβ”€β”€ static/             # Web UI static assets
β”‚   β”œβ”€β”€ css/            # TailwindCSS styles
β”‚   β”œβ”€β”€ img/            # Images and icons
β”‚   └── scripts/        # Frontend JavaScript
└── Makefile            # Development helpers

Inside internal/

This is where the core functionality lives, private to the application:

  • db/: Database interaction for storing/retrieving secrets using SQLite
  • vault/: Encryption/decryption with master password protection
  • generator/: Secure generation of passwords, API keys, and tokens
  • models/: Data structures for secrets, user settings, vault entries
  • config/: Application configuration, default paths, CLI flags
  • server/: Web server with route handlers and middleware
  • middleware/: HTTP middleware for authentication, logging, etc.
  • templates/: UI templates built with the templ engine

Inside cmd/

Clean separation between different application entry points:

  • app/: Web interface entry point - initializes and runs the web server
  • cli/: Command-line interface - parses arguments and calls internal functions

This separation ensures that the core functionality can be accessed through multiple interfaces while maintaining a single source of truth for business logic.

πŸ› οΈ Tech Stack (GoTTH)

  • Backend: Go (1.24+)
  • Web UI: templ templating engine with TailwindCSS
  • Frontend: HTMX for interactive UI components without JavaScript
  • Development: Air for hot-reloading
  • Database: SQLite for local storage
  • Security: AES-256 encryption

πŸ”’ Security Notes

  • Don't lose your master password. Seriously. We can't help you get it back.
  • Always keep backups of your vault file in a safe place.
  • mr-shush is offline-first by design β€” keep it that way for maximum privacy.

πŸ“¦ Roadmap

  • βœ… CLI with generate/store/export features
  • πŸ”’ Master password & encryption
  • πŸ–₯️ Local-only web UI (with login)
  • πŸ” Search & filter secrets
  • πŸ“€ Auto .env injection for dev environments
  • ☁️ Optional local network sync, Cloud sync, or USB backup support

πŸ’» Developer Quickstart

# Install development dependencies
make go-install-air        # Hot-reloading
make go-install-templ      # UI templating
make get-install-tailwindcss # CSS framework

# Build and run the project
make build                 # One-time build
make watch                 # Development mode with hot-reload

# UI development
make tailwind-watch        # Live CSS compilation
make templ-watch           # Live template compilation

🀝 Contributing

Got ideas? Found a bug? Want to add a feature?
PRs are welcome! Just open an issue or fork and go wild.

Please review our Code of Conduct before contributing. Security issues should be reported according to our Security Policy.


β˜• Support

This tool will always be free and open-source.
If it made your life easier, consider buying me a coffee or just giving the repo a ⭐️.


πŸ§™β€β™‚οΈ License

MIT β€” do whatever you want, just don't blame me if you forget your master password and lock yourself out of your secrets 🫠


Built with Go, caffeine, and a deep mistrust of cloud-based secret managers.

About

(WORK IN PROGRESS) A Secure, Offline-First Password Generator & Secrets Manager written in Go. (NOT ACTIVELY MAINTAINED)

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors