Nexsiz accepts configuration from three sources. Loading -c / --config replaces the in-memory Config from the file. Environment variables apply for NXS, RPC, SHM, and encryptor keys when the corresponding CLI field is unset. Prefer campaign defaults in a conf file and one-off overrides on the CLI.

Practical precedence
  1. Built-in defaults
  2. Config file via -c / --config (key=value)
  3. Environment variables (NXS, RPC, SHM, encryptor keys when CLI not set)
  4. CLI flags that set fields after file load (flags processed in order; -c resets Config from file at that point)

Config file format

Plaintext key=value. Lines starting with # are comments. Empty lines ignored. Unknown keys are silently ignored (forward-compatible).

# config/example.conf — shipped with the repo
host=127.0.0.1
port=21
protocol=tcp
model=ftp
timeout_ms=400
max_reuse_messages=24

integrity=default
oracle=default
encryptor=null

workers=4
connection_reuse=true

seed_dir=seeds/ftp
output_dir=output/ftp
verbose=true

# max_execs=100000
# rng_seed=42
# target_cmd=./target_daemon
./target/release/nexsiz -c config/example.conf
./target/release/nexsiz -c campaign.conf -v

Key reference

KeyDefaultDescription
host127.0.0.1Target IP
port80Target port
protocoltcptcp or udp
model / protocol_modelProtocol model name or path to .json
timeout_ms500Per-operation timeout
target_cmdLocal process to spawn (snapshot / crash monitor)
max_reuse_messages32Messages before forced reconnect on reused TCP
integritydefault | http | ftp | smtp | binary | binary-le | null
oracledefault | strict | crash | hang | coverage | differential | sanitizer | diffsan | expanded
encryptornull | xor | chacha20 | tls-record | chacha20+tls | xor+tls
enc_key / keyEncryptor key material
coveragenull | map | software
coverage_shm / shmSHM id for Frida agent
workers#coresWorker thread count
connection_reusetruetrue/1 or false
snapshotfalseEnable process snapshot
snapshot_backendprocessnull | process | criu
seed_dirseedsSeed corpus directory
output_diroutputCampaign output root
max_execsStop after N executions
rng_seedDeterministic RNG seed
verbosefalsetrue/1
use_libafl / libaflfalseLibAFL path (needs feature)
rpc_sockUnix socket for Python RPC
nxs / nxs_setEnable NXS + set expression
nxs_pathExtra colon-separated search paths
nxs_eventscrash,hangComma-separated event types
nxs_cooldown30Seconds per (event,crash,nxs) tuple
nxs_max_per_event0Cap per event (0 = unlimited)
nxs_max_total0Cap total NXS spawns (0 = unlimited)
hierarchical_prob0.15Mutator hierarchy probability
field_prob0.70Field-level mutation probability
dict_prob0.25Dictionary mutation probability
template_prob0.12Template splice probability
max_mutations8Max mutations per input

Environment variables

VariablePurpose
NEXSIZ_ENC_KEY / NEXSIZ_ENC_NONCEEncryptor key material
NEXSIZ_SHM_IDCoverage shared-memory id (Frida)
NEXSIZ_RPC_SOCKRPC control socket path
NEXSIZ_NXSEquivalent to --nxs
NEXSIZ_NXS_PATHEquivalent to --nxs-path
NEXSIZ_NONCE_MODEfixed | incrementing | random