// pure c11 · single binary · 16,913 cats
> cats are more complex than dogs.
// how it works
meowpass joins a handful of randomly-drawn cat names into a phrase, sprinkles it with capitals, digits, and symbols, then runs the result through a stack of complexity heuristics. It does this five times. The candidate with the least compressible, most diverse, highest-entropy score wins and lands on your clipboard.
The full dictionary ships in the binary. No data files. No network. No surprise downloads.
Bytes come from getrandom() / /dev/urandom with rejection sampling — modulo bias free.
Generates five candidates, scores each with four metrics, picks the one a cat would have the hardest time guessing.
--psssst generates and copies the winner without ever printing it to your terminal.
--analyze "foo" runs the same metrics on a password you already have.
Pure C11. Builds with make or cmake. Optional xclip / wl-copy / pbcopy for clipboard.
// the mythos
Under the hood, meowpass scores each candidate with four real metrics — Shannon entropy, a compression-ratio approximation, pattern uniqueness, and character-class diversity. In the CLI, they wear catified labels because passwords should be a little fun.
How many characters long the candidate ended up. Longer tails are harder to grab.
Measures how unpredictable each character is on average. A tightly-wound ball of yarn is harder to follow.
If a string compresses well, it's repetitive. We want strings that resist a cat's enthusiastic keyboard mashing.
Counts how many distinct substrings the password contains relative to its length. Crinkly is good.
Mix of lowercase, uppercase, digits, and symbols. A balanced bowl is more intoxicating to entropy.
A weighted blend. High relevance is bad — cats find relevant passwords easy to crack. Aim low.
// usage
# default — generate, score, show, copy hint
meowpass
# tune the recipe
meowpass --numbers 4 --symbols 3 --max-length 30
# silent — copy the winner to the clipboard, print nothing
meowpass --psssst
# audit a string you already have
meowpass --analyze "MyP@ssw0rd!"
# run the test suite
meowpass --test
# check GitHub for a newer release and install it
meowpass --update
| Flag | What it does | Range / default |
|---|---|---|
| --numbers N | Random digits sprinkled into the phrase | 1–10 · default 1–4 |
| --symbols N | Letter→symbol substitutions | 1–10 · default 2 |
| --max-length N | Cap on the final password length | 15–50 · default 25 |
| --copy | Copy the winner to the clipboard after display | pbcopy / xclip / wl-copy |
| --psssst, -p | Silent mode — copy only, never print | — |
| --analyze, -a S | Score an existing string instead of generating | — |
| --update | Self-update from GitHub releases | requires curl |
| --test | Run the bundled test suite | — |
| --help, -h | Print the help screen | — |
// build
C11. No external dependencies. Builds on Linux and macOS. Clipboard wants
xclip or wl-copy (Linux) or uses pbcopy (macOS, included).
git clone https://github.com/SpaceTrucker2196/MeowPasswordC.git
cd MeowPasswordC
make
./meowpass
cmake -B build
cmake --build build
./build/meowpass
sudo make install