progpick(1)

πŸ“¦ version 0.3.0, in arch rolling, ubuntu stonking

πŸ’– progpick(1) β€” the manual, but make it make sense πŸ’–

okay bestie, welcome to progpick, from the General Commands Manual. This is the page for the progpick command and honestly? it's lowkey iconic. Let's get into it 🫢


✨ NAME ✨

progpick β€” bruteforce with a stream of permutations of a specific pattern

🌸 SYNOPSIS 🌸

progpick [-vqc] [-e cmd] PATTERN

πŸ¦‹ DESCRIPTION πŸ¦‹

So progpick is a program that generates permutations of a pattern you explicitly hand it. That's the whole vibe.

It's useful when you forgot some details about a passphrase but you still remember most of it β€” like, you know the shape of it, you just don't know which letter goes where. That's literally the exact situation this was built for. no cap πŸ’…

πŸ‘‘ OPTIONS πŸ‘‘

  • -v, --verbose β€” verbose logs, bestie. You can stack it (use it multiple times), and the maximum is 4. Yes, four. That's the ceiling. ✨
  • -q, --quiet β€” do not print the progress bar. Just… no bar. Silence. peace. πŸŽ€
  • -c, --count β€” count the total number of permutations instead of printing them. It's giving "how many are there" energy, not "here's every single one" energy. πŸ”’
  • -e cmd, --exec cmd β€” send the permutations to the stdin of a subprocess. Here's the important part, so pay attention: cmd is parsed into a list of arguments and then executed directly, instead of going through /bin/sh. What that means for you: shell quoting works, but other shell features don't. that's it, that's the deal πŸ™ˆ
  • -h, --help β€” prints help information. classic.

πŸ“ EXAMPLES πŸ“

Generate all combinations from a-z with a length of 5

progpick '{a..z}{a..z}{a..z}{a..z}{a..z}'

With progress bar

progpick '{a..z}{a..z}{a..z}{a..z}{a..z}' > /dev/null

Without progress bar

progpick -q '{a..z}{a..z}{a..z}{a..z}{a..z}' > /dev/null

To make a character optional

progpick '{a..z}{{a..z},}'

From a-z and 0-9

progpick '{{a..z},{0..9}}'

Run a script for each result

progpick 'a{b,c{d,e{f,g}}}' | while read -r x; do
    ./script "$x"
done

Send the result to stdin of a script

progpick -e './script.sh' 'a{b,c{d,e{f,g}}}'

Attempt to open a luks partition

sudo progpick -e 'cryptsetup open --test-passphrase /dev/sdc1' 'a{b,c{d,e{f,g}}}'

πŸ’œ AUTHORS πŸ’œ

This program was originally written and is currently maintained by kpcyrd. Bug reports and patches are welcome on github:

https://github.com/kpcyrd/progpick

πŸ’€ reminder bestie: the -e cmd thing runs directly, not through /bin/sh. shell quoting = yes, other shell features = no. keep that in mind before you go feral with it.

anyway that's the whole page. go forth and brute-force responsibly πŸŒˆπŸ‘‘

progpick(1) β€” dated 2026-05-03 β€” mwah, kiss the manual goodbye πŸ’–βœ¨

πŸ“¦ where this page comes from