// pure c11 · single binary · 16,913 cats

meowpass

> cats are more complex than dogs.

// how it works

Five candidates, one survivor.

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.

🐾

16,913 embedded cats

The full dictionary ships in the binary. No data files. No network. No surprise downloads.

🔐

OS-grade randomness

Bytes come from getrandom() / /dev/urandom with rejection sampling — modulo bias free.

🧶

Best-of-five selection

Generates five candidates, scores each with four metrics, picks the one a cat would have the hardest time guessing.

📋

Quiet copy mode

--psssst generates and copies the winner without ever printing it to your terminal.

🔍

Analyze any string

--analyze "foo" runs the same metrics on a password you already have.

⚙️

One binary, no deps

Pure C11. Builds with make or cmake. Optional xclip / wl-copy / pbcopy for clipboard.

// the mythos

Pawthropology of complexity.

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.

Tail Size
// password length

How many characters long the candidate ended up. Longer tails are harder to grab.

Ball of Yarn Entropy
// shannon entropy (bits/char)

Measures how unpredictable each character is on average. A tightly-wound ball of yarn is harder to follow.

Mashing Resistance
// compression-ratio approximation

If a string compresses well, it's repetitive. We want strings that resist a cat's enthusiastic keyboard mashing.

Shiny Foil Ball Uniqueness
// pattern complexity

Counts how many distinct substrings the password contains relative to its length. Crinkly is good.

Organic NonGMO Catnip
// character-class diversity

Mix of lowercase, uppercase, digits, and symbols. A balanced bowl is more intoxicating to entropy.

Overall Relavency
// composite score · lower is better

A weighted blend. High relevance is bad — cats find relevant passwords easy to crack. Aim low.

The verdicts

< 2.0
🐱 Purrfect! Fur-midably complex. Even the cleverest cats can't crack it.
< 4.0
😺 Not bad, hooman! Decent whisker-resistance.
< 6.0
😿 Meow… too easy for a clever cat to guess.
≥ 6.0
🙀 Hiss! A kitten could paw this one open.

// usage

Flags & recipes.

# 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
FlagWhat it doesRange / default
--numbers NRandom digits sprinkled into the phrase1–10 · default 1–4
--symbols NLetter→symbol substitutions1–10 · default 2
--max-length NCap on the final password length15–50 · default 25
--copyCopy the winner to the clipboard after displaypbcopy / xclip / wl-copy
--psssst, -pSilent mode — copy only, never print
--analyze, -a SScore an existing string instead of generating
--updateSelf-update from GitHub releasesrequires curl
--testRun the bundled test suite
--help, -hPrint the help screen

// build

Two ways in.

C11. No external dependencies. Builds on Linux and macOS. Clipboard wants xclip or wl-copy (Linux) or uses pbcopy (macOS, included).

Make

git clone https://github.com/SpaceTrucker2196/MeowPasswordC.git
cd MeowPasswordC
make
./meowpass

CMake

cmake -B build
cmake --build build
./build/meowpass

Install system-wide

sudo make install