Bug: httpx integration broken (wrong binary + wrong CLI flag)

Author: keysersoze0Created Sep 27, 2025Updated Aug 9, 2026

There are two separate issues with the current httpx integration:

  1. Wrong binary invoked

    • HexStrike creates a small httpx stub in its virtualenv (hexstrike-env/bin/httpx) which actually runs the Python httpx library (from python3-httpx package).
    • This binary does not support flags like -l and is not the intended ProjectDiscovery httpx.
    • As a result, initial runs failed with: Error: No such option: -l
    • Workaround: I replaced the virtualenv’s httpx with a wrapper that forwards to the real PD httpx binary from $HOME/go/bin/httpx.
  2. Wrong CLI flag used

    • Even after using the correct PD httpx, HexStrike calls: httpx -l -t 50 -probe -tech-detect ...
    • But -l expects a file containing hosts, not a single domain string.
    • Result: [FTL] No input provided: no files found
    • Correct usage for single domains is httpx -u <host>.

Proposed fixes

  • Ensure that HexStrike uses the proper ProjectDiscovery httpx binary instead of the Python httpx stub in the venv.
  • Update tool definitions so that:
    • -l / --list is only used with files.
    • Single domain inputs use -u.

Environment

  • HexStrike version: v6.0 (commit 33267047667b9accfbf0fdac1c1c7ff12f3a5512)
  • OS: Kali Linux (VM)
  • httpx version: v1.7.1 (ProjectDiscovery)

Workaround

  • I created a wrapper script that:
    • Replaces the venv httpx stub with the PD httpx binary.
    • If -l is used with a non-file, it writes the value to a temp file and passes that to httpx.
  • This works, but it’s a hack.

I’m happy to share logs and the wrapper script if useful.