Markov chain URL wordlist generator for security research and fuzzing pipelines
Project description
Adyant (/ɑːdiˌjɑːnt/)
Smart Markov-chain URL wordlist generator.
adyant learns real URL patterns from any corpus (Burp history, Wayback, etc.) and generates highly relevant paths for a target site — far smarter than random brute-force wordlists.
Perfect for recon, directory busting, API enumeration, and bug bounty hunting.
Why to use adyant?
- saves time by finding obvious and rare endpoints quickly.
- higher hit rates with fewer requests.
- reduces noice
- can be integrated in workflows (stay ahead over other hackers who use old and slow wordlist fuzzing)
however, quality of the output is highly influenced by the training corpus you provide it - keep that in mind.
additionally, this project is backed by my research which I'll attatch here once I publish it.
Quick Start
1. Install
pip install adyant
2. Train once
# Train from a file of URLs
adyant --train urls.txt --save model.json
# Or pipe from anywhere (waybackurls, Burp export, etc.)
cat my_urls.txt | adyant --train - --save model.json
3. Generate wordlists
# Most likely paths under a prefix (default = sample mode)
adyant --model model.json --seed target.com/api/ --count 100
# One-level children only (best for fuzzing)
adyant --model model.json --seed target.com/api/ --mode child --count 50
# Pipe directly to ffuf (quiet + paths-only)
adyant --model model.json --seed target.com/api/ -q --paths-only --format ffuf | \
ffuf -u https://target.com/FUZZ -w -
Useful flags:
--expand→ replaces:num:,:uuid:, etc. with real values from training--scores→ shows confidence next to each URL--format ffuf|burp|nuclei→ ready-to-paste output--paths-only→ just the path (perfect for-u https://target.com/FUZZ)
Available modes (use --mode <name>):
sample(default) – fast & obvious pathschild– direct children onlyrare– hidden gems where are you?beam– deterministic & highest confidencediverse– broad coverage across subtreesdeep– long nested paths
Run adyant --help for the short version or see wiki.md for everything else.
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 adyant-1.0.1.tar.gz.
File metadata
- Download URL: adyant-1.0.1.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9973355a2699a9d5033283a3ceec66d2c47ebd09e6f9b374dc3dcb0ce427f779
|
|
| MD5 |
269fb0b26a8596408e6cdf798f1200c7
|
|
| BLAKE2b-256 |
fe7e98dddb047b63ca031dda08c35063bf6445131012534e42be7da2126bc2db
|
Provenance
The following attestation bundles were made for adyant-1.0.1.tar.gz:
Publisher:
publish.yml on forshaur/adyant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adyant-1.0.1.tar.gz -
Subject digest:
9973355a2699a9d5033283a3ceec66d2c47ebd09e6f9b374dc3dcb0ce427f779 - Sigstore transparency entry: 1186459430
- Sigstore integration time:
-
Permalink:
forshaur/adyant@af048dca506c14f2afefc927113904ddbb4694aa -
Branch / Tag:
refs/heads/main - Owner: https://github.com/forshaur
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af048dca506c14f2afefc927113904ddbb4694aa -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file adyant-1.0.1-py3-none-any.whl.
File metadata
- Download URL: adyant-1.0.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99c4929cd6e34dadfd10d5c815a964b0f84f5eac896252598e3df1952090b226
|
|
| MD5 |
d3907e8b0592dc88f72cfe28332b712e
|
|
| BLAKE2b-256 |
efb159e8052a2f90ace541073ad5af6a2b2403ce14382b862ea158904d68987d
|
Provenance
The following attestation bundles were made for adyant-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on forshaur/adyant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adyant-1.0.1-py3-none-any.whl -
Subject digest:
99c4929cd6e34dadfd10d5c815a964b0f84f5eac896252598e3df1952090b226 - Sigstore transparency entry: 1186459437
- Sigstore integration time:
-
Permalink:
forshaur/adyant@af048dca506c14f2afefc927113904ddbb4694aa -
Branch / Tag:
refs/heads/main - Owner: https://github.com/forshaur
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@af048dca506c14f2afefc927113904ddbb4694aa -
Trigger Event:
workflow_dispatch
-
Statement type: