Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ZeraTS/ironbullet/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This page documents every CLI flag available in IronBullet, including aliases, data types, default values, and validation rules.Argument Parser
IronBullet uses a custom argument parser implemented incli.rs:30-98. Arguments are parsed from left to right, supporting both long-form (--flag) and short-form (-f) syntax.
Flag Reference
—config
Alias:
-cRequired: YesDescription: Path to the configuration fileSupported Formats:.rfx- IronBullet native binary format.svb- SilverBullet XML format.opk- OpenBullet compressed format.loli- LoliCode script format.json- JSON format
.rfx files, IronBullet loads the native format directly. For all other extensions, the file is read as bytes and the format is auto-detected by the import system.Validation:- File must exist and be readable
- Must be a valid config in one of the supported formats
cli.rs:43-45, cli.rs:119-144Example:—wordlist
Alias:
-wRequired: YesDescription: Path to the wordlist/combo file containing data lines to processFormat: Plain text file with one entry per line. Format depends on config’s data pool settings:- Line mode: Each line is treated as a single value
- CSV mode: Lines are split by delimiter into multiple fields
- File must exist and be readable
- Empty files are allowed but will result in no processing
cli.rs:47-49, cli.rs:172-173Example:—threads
Alias: Error Example:
-tRequired: NoDefault: Uses pipeline.runner_settings.threads from config fileDescription: Number of concurrent worker threadsRange: Typically 1-500. Higher values require more system resources.Validation:- Must be a positive integer
- Value is parsed with
.parse::<u32>() - Invalid values (non-numeric, negative, too large) cause error
cli.rs:153-155Source: cli.rs:51-54Example:—proxies
Alias:
-pRequired: NoDefault: No proxies (direct connection)Description: Path to proxy list fileFormat: Plain text file, one proxy per line. Supports:http://host:porthttps://host:portsocks5://host:portsocks4://host:port- Optional authentication:
protocol://user:pass@host:port
pipeline.proxy_settings.ban_duration_secsValidation:- File must exist and be readable
- Invalid proxy formats are logged as warnings but don’t halt execution
cli.rs:56-58, cli.rs:196-203Example:—outfile
Alias:
-oRequired: NoDefault: results/ (specified in config)Description: Output directory for saving hits and resultsBehavior:- Sets
pipeline.output_settings.output_directoryto the specified path - Automatically enables
pipeline.output_settings.save_to_file = true
cli.rs:60-62, cli.rs:162-165Example:—skip
Alias: NoneRequired: NoDefault: Combined with —take:
0Description: Skip the first N lines from the wordlistUse Case: Resume interrupted runs by skipping already-processed linesBehavior:- Wordlist is loaded fully into memory
- First
skiplines are discarded via.skip(skip)iterator - Remaining lines are processed
- Must be a positive integer
- If skip >= total lines, no processing occurs (empty data pool)
pipeline.runner_settings.skip at cli.rs:156-158Source: cli.rs:64-67, cli.rs:176-190Example:—take
Alias: NoneRequired: NoDefault:
0 (process all lines)Description: Process only N lines from the wordlist (after skip)Use Case: Test configs on a subset of dataBehavior:- Value of
0means process all remaining lines (no limit) - Non-zero value limits processing via
.take(take)iterator - Applied after
--skip
- Must be a non-negative integer
- Value of
0is valid and means “take all”
pipeline.runner_settings.take at cli.rs:159-161Source: cli.rs:69-72, cli.rs:176-190Example:—debug
Alias: Example:
-dRequired: NoDefault: falseDescription: Enable debug mode for verbose outputBehavior:- Each block execution result is printed to stderr
- Proxy information is printed for each hit
- Useful for troubleshooting config issues
cli.rs:74-76, cli.rs:211, cli.rs:257-261Output Format:—help
Alias: Output:
-hRequired: NoDescription: Display help message and exitBehavior:- Prints usage information to stderr via
print_help()atcli.rs:100-116 - Exits with code
0immediately - No other processing occurs
cli.rs:77-80Example:Argument Parsing Rules
Order Independence
Flags can appear in any order:Value Requirements
Flags that require values must have a following argument:Boolean Flags
Boolean flags (--debug, --help) don’t take values:
Unknown Arguments
Any unrecognized flag causes an error:cli.rs:81-83
Data Types
String Arguments
Flags:--config, --wordlist, --proxies, --outfile
- Stored as
Option<String>during parsing - Required flags are unwrapped with
.ok_or("error")atcli.rs:89-90 - No additional validation during parsing (file existence checked later)
Integer Arguments
Flags:--threads, --skip, --take
- Parsed using
.parse::<u32>() - Errors return descriptive message:
format!("invalid {}: {}", flag, val) - Valid range:
0to4,294,967,295(u32 max)
cli.rs:54, cli.rs:67, cli.rs:72
Boolean Flags
Flags:--debug, --help
- Stored as
bool(notOption<bool>) - Default value is
false - Presence of flag sets to
true - No argument value consumed
cli.rs:38, cli.rs:75
CliArgs Structure
All parsed arguments are stored in theCliArgs struct:
cli.rs:19-28
Validation & Error Handling
Argument Parsing Errors
Parsing errors are returned asResult<CliArgs, String> with descriptive messages:
| Error Condition | Error Message | Exit Code |
|---|---|---|
| Missing required flag | "--config is required" | 1 |
| Missing required flag | "--wordlist is required" | 1 |
| Missing value | "--config requires a path" | 1 |
| Invalid number | "invalid thread count: {val}" | 1 |
| Unknown flag | "unknown argument: {arg}" | 1 |
cli.rs:45, cli.rs:49, cli.rs:54, cli.rs:82, main.rs:213-217
Runtime Errors
Runtime errors during config loading or execution:| Error Condition | Error Format | Exit Code |
|---|---|---|
| Config load failure | "failed to load {path}: {error}" | 1 |
| Config read failure | "failed to read {path}: {error}" | 1 |
| Wordlist load failure | "failed to load wordlist: {error}" | 1 |
| Proxy load failure | "failed to load proxies: {error}" | 1 |
cli.rs:122, cli.rs:129, cli.rs:173, cli.rs:198, main.rs:222-225
Import Warnings
When loading non-native config formats (.svb, .opk, .loli), the import system may emit warnings:
cli.rs:132-136
Security Issues
The config import system may detect security issues in imported configs:cli.rs:137-141
Platform Differences
Windows
- Executable:
ironbullet.exe - Console attachment: Automatic via
AttachConsole(ATTACH_PARENT_PROCESS) - Required for CLI output when compiled with
windows_subsystem = "windows"
main.rs:188-195
Linux/macOS
- Executable:
ironbullet - No special console handling required
- Direct stdout/stderr output
main.rs:197-198
See Also
- CLI Commands Reference - Usage examples and workflows
- Pipeline API - Pipeline structure and configuration
- Config Format - .rfx file format specification
- Importing Configs - Supported config formats