Generate wordlists using pattern logic and expressions.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Generate wordlists using pattern logic and expressions
Installation • Documentation • Usage • Contributing
Installation
[!NOTE] It is recommended to install using
pipxorpipfor the PyPI version.
| 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 |
Documentation
For a complete guide, feature explanations, and advanced examples, please visit the documentation.
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 information and exit
-S, --stats show pattern statistics and exit
-q, --quiet suppress non-essential output
-n, --non-interactive
skip the confirmation prompt before execution
Generation Options:
-d, --delimiter <string>
string inserted between generated entries
-b, --write-buffer <size>
output buffer size
-w, --workers <1-64> number of worker processes (default: 1)
-k, --flush-threshold <size>
flush output after reaching this byte threshold (default: 512KB)
Input Options:
-f, --file <path> load patterns from file
-s, --start <word> start writing output from <word>
-e, --end <word> stop writing output at <word>
Output Options:
-o, --output <path> write output to a file
-z, --compress <format>
compress output (supported: gzip, bzip2, lzma)
-l, --compresslevel <level>
compression level for the selected format
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) |
/D |
non-zero digits (1–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 |
/b |
newline (\n) |
Example: /l/l generates all two-letter combinations (upper and lower case).
Custom classes and unions
[abc]selects one character froma,b, orc.- Use
|to separate full-word alternatives inside classes:[admin|root|123]insertsadminORrootOR123at that point.
- Use
||to separate top-level expressions:fuse 'admin/d||guest/d'chains two independent patterns.
Statistics
You can analyze a pattern before generating it using the -S/--stats flag. This shows token counts, estimated size, and range filtering details.
fuse -S '/l{3}||/d{3}'
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
License
MIT © Ryan R. <pwnfo@proton.me>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuse_generator-7.0.1.tar.gz.
File metadata
- Download URL: fuse_generator-7.0.1.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.12.85+deb13-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
271d16ff847a21e8b709aaab2cd6968b8b8a4b348d5321401e27a4d0ec9a607d
|
|
| MD5 |
72d3439260b20cba24b14af3d3e58f4b
|
|
| BLAKE2b-256 |
f6774c9f7ec589dbed1393267a2417388f8c8cb84bcfce29fe58ff60f9968a0f
|
File details
Details for the file fuse_generator-7.0.1-py3-none-any.whl.
File metadata
- Download URL: fuse_generator-7.0.1-py3-none-any.whl
- Upload date:
- Size: 29.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.2 CPython/3.13.5 Linux/6.12.85+deb13-amd64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e671e3e2f30e368cbcaef8219cadd52b34369889287e80b46b7d20f7cf8b9140
|
|
| MD5 |
454a8c97845f879fea15fa607f8f55b3
|
|
| BLAKE2b-256 |
a893baa7ad37f4929060a5b9315c8b93eb28de5e6ff942e77afd2ea45b222584
|