Skip to main content

Customizable wordlist generator with advanced pattern.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description


fuse
Pattern-based wordlist generation tool

Installation    •    Usage    •    Contributing

demo

Installation

[!NOTE]
It is recommended to install using pipx or pip for the PyPI version.

[!NOTE]
The PyPI package has been renamed from fuse-tool to fuse-generator.

Method Notes
pipx install fuse-generator pip may be used in place of pipx
git clone https://github.com/pwnfo/fuse.git && cd fuse && pip install . Clone and install directly from GitHub

General usage

To generate a wordlist from a simple expression:

fuse "/l{2,4}"

To combine files with generators:

fuse "^:^" names.txt pass.txt

Outputs can be manipulated, filtered, and saved.

General Options:
  -h, --help            show this help message and exit
  -v, --version         show version message and exit
  -o, --output <path>   write the wordlist in the file
  -f, --file <path>     file with different expressions
  -q, --quiet           use quiet mode
  -n, --non-interactive
                        disable interactive prompt before execution

Generation Options:
  -d, --delimiter <string>
                        delimiter between entries
  -b, --write-buffer <size>
                        write buffer size
  -w, --workers <1-64>  number of workers (default is 1)
  -F, --filter <regex>  filter generated words using a regex
  -k, --flush-threshold <size>
                        byte threshold before flushing output (default is 512KB)
  -z, --compress <format>
                        compress output (available: gzip, bzip2 and lzma)
  -l, --compresslevel <level>
                        compression level (depends on selected format)
  -S, --start <word>    start writing the wordlist from <word>
  -E, --end <word>      end writing the wordlist at <word>

Expression basics

  • Literal characters produce themselves.
  • Built-in classes and bracketed classes [...] produce one item per position.
  • Concatenation combines positions: each position picks one value from its token and concatenates.

Example:

$ fuse "/l{2,3}"
# output: aa, ab, ac, ..., ZY, ZZ

Character classes

Symbol Meaning
/l letters (a–z, A–Z)
/a lowercase letters (a–z)
/A uppercase letters (A–Z)
/d digits (0–9)
/h lowercase hexadecimal (0–9, a–f)
/H uppercase hexadecimal (0–9, A–F)
/s space
/o octal digits (0–7)
/p special characters
/N newline (\n)

Example: /l/l generates all two-letter combinations (upper and lower case).

Custom classes and unions

  • [abc] selects one character from a, b, or c.
  • Use | to separate full-word alternatives (each treated as a multi-character token):
    • [admin|root|123] inserts admin OR root OR 123 at that point.

Quantifiers

  • {N} — repeat exactly N times
  • {min,max} — repeat between min and max times (inclusive)
  • ? — optional (0 or 1 time)

Examples:

$ fuse "[XYZ]{3}"         # XXX, XXY, ..., ZZZ
$ fuse "[XYZ]{2,5}"       # XY, XZ, ..., XYZXY
$ fuse "Ryan?/d"          # Rya0, Rya1, ..., Ryan9
$ fuse "[XYZ]?Ryan"       # Ryan, XRyan, YRyan, ZRyan

Numeric ranges

  • #[1-10] → generates 1,2,3,4,5,6,7,8,9,10
  • #[1-10:2] → generates 1,3,5,7,9
  • #[2-10:2] → generates 2,4,6,8,10

These numeric ranges can be used in any position of an expression.

Files and placeholders

Use ^ in an expression as a placeholder for the next file argument. Each ^ consumes one file and iterates over its lines:

$ fuse "^/d" names.txt
# output: Bob0, Bob1, ..., Ana0, Ana1, ...

$ fuse "^-^" names.txt years.txt
# output: Bob-1990, Ana-1991, Ryan-1992, ...

Prefix a filename with // to treat it as an inline expression instead of a file path.

Value bindings

Use <@name=expr> to evaluate an expression once per output line and store it, then reuse it with <@name>. Unlike concatenation, this introduces a dependency, so no cartesian product is created between the definition and its references.

$ fuse '<@d=/d>-<@d>'
# output: 0-0, 1-1, ..., 9-9

$ fuse '<@x=^>:<@x>' words.txt
# output: foo:foo, bar:bar, ...

$ fuse '<@n=/d{2}>_<@n>'
# output: 00_00, 01_01, ..., 99_99

Compression

Fuse supports on-the-fly compression when writing output files.

# gzip (fast, balanced)
fuse "/l{5}" -z gzip -o wordlist.txt.gz

# lzma (best compression)
fuse "/l{5}" -z lzma -o wordlist.txt.xz

# bzip2 (middle ground)
fuse "/l{5}" -z bzip2 -o wordlist.txt.bz2

Escaping special characters

Use \ to escape special characters.

$ fuse "\/d/d"
# output: /d/0, /d/1, ..., /d/9

Contributing

We welcome contributions to Fuse! Whether it's adding new features, improving documentation, or fixing bugs, your help is appreciated. Feel free to open an issue or submit a pull request on our GitHub repository at pwnfo/fuse.

Star History

Fuse Project Star History Chart

License

MIT © Ryan R. <pwnfo@proton.me>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fuse_generator-5.1.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fuse_generator-5.1.0-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file fuse_generator-5.1.0.tar.gz.

File metadata

  • Download URL: fuse_generator-5.1.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.12.74+deb13+1-amd64

File hashes

Hashes for fuse_generator-5.1.0.tar.gz
Algorithm Hash digest
SHA256 65c26b563f12fb6785c38d5d481dfb446b4548768c10132330132dc2c9790c38
MD5 1262efd147d0c395e29bfc5b9f149e69
BLAKE2b-256 b7ee17d71d98d3f7436a0df9b17ed0d5b32213288055f4ed7d56c00b9c3a8138

See more details on using hashes here.

File details

Details for the file fuse_generator-5.1.0-py3-none-any.whl.

File metadata

  • Download URL: fuse_generator-5.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.12.74+deb13+1-amd64

File hashes

Hashes for fuse_generator-5.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf328e84c711f5450e0b750b507133a203d591dcd0839040d925df94f93d123a
MD5 b79d212e210ca3f67431b85206af0686
BLAKE2b-256 e1bbe8cd51c0727b6e68f8e5c80fc0640b529135bff6239d2c4746a87984b72b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page