How to Increase the Timeout for Slow Sites in Holehe
Pass the -T flag followed by the desired number of seconds (e.g., holehe -T 30 email@example.com) to override the default 10‑second limit, or edit holehe/core.py line 94 to change the default permanently.
Holehe is an asynchronous OSINT tool—maintained in the megadose/holehe repository—that checks email addresses across hundreds of services using a shared HTTP client. By default, this client enforces a 10‑second timeout on all requests, which often fails on slow or heavily rate‑limited sites. Learning how to increase the timeout for slow sites in Holehe ensures you retrieve accurate results from sluggish platforms without modifying individual modules.
How Holehe Manages Request Timeouts
Holehe constructs one shared httpx.AsyncClient at startup and passes it to every module. The timeout value originates from the CLI argument -T/--timeout, defined in holehe/core.py at lines 94‑95:
parser.add_argument("-T","--timeout", type=int , default=10,
required=False, dest="timeout",
help="Set max timeout value (default 10)")
After parsing, the value is stored in args.timeout and injected into the client constructor at lines 12‑13 of the same file. When you increase this value, the shared client waits longer for responses from slow servers.
Method 1: Increase Timeout at Runtime (Recommended)
The fastest way to accommodate slow sites is to pass a higher value via the command line. The -T flag accepts an integer representing seconds and applies globally for that execution.
Run Holehe with an extended timeout:
holehe -T 30 user@example.com
You can set any reasonable value (e.g., 45 or 60 seconds) depending on the target's responsiveness. This approach requires no code changes and reverts to the 10‑second default on the next run.
Method 2: Change the Default Timeout Permanently
If you consistently scan slow networks, modify the default value in the source code. Open holehe/core.py and locate line 94 within the argument parser section. Change the default parameter from 10 to your preferred baseline:
parser.add_argument("-T","--timeout", type=int , default=30,
required=False, dest="timeout",
help="Set max timeout value (default 30)")
Save the file and reinstall the package or run it in development mode. Every future execution will now use 30 seconds unless explicitly overridden by the -T flag.
Handling Module‑Specific Timeout Overrides
Some individual modules hardcode their own short timeouts that ignore the global client setting. For example, holehe/modules/social_media/myspace.py at line 21 passes timeout=2 directly to the request:
r = await client.get("https://myspace.com/signup/email",
headers=headers, timeout=2)
Similar overrides exist in holehe/modules/medical/caringbridge.py (line 36), holehe/modules/forum/onlinesequencer.py (line 23), and holehe/modules/forum/cracked_to.py (line 23). If you encounter timeouts on these specific sites after increasing the global limit, edit the module file and replace the hardcoded integer with a higher value or remove the timeout parameter entirely to inherit the global client setting.
Summary
- Runtime adjustment: Use
holehe -T <seconds>to temporarily increase the timeout for a single scan. - Permanent adjustment: Edit
holehe/core.pyline 94 and changedefault=10to your desired baseline. - Module overrides: Check individual modules (e.g.,
myspace.pyline 21) for hardcoded timeout values that bypass global settings. - Architecture: All changes affect the shared
httpx.AsyncClientinstantiated inholehe/core.pylines 12‑13.
Frequently Asked Questions
What is the default timeout in Holehe?
The default timeout is 10 seconds, defined in the argument parser at holehe/core.py line 94. This value is passed to the httpx.AsyncClient constructor when the tool initializes.
Why do I still get timeouts after using the -T flag?
Certain modules define their own timeout values directly in the request call. For example, myspace.py sets timeout=2 at line 21, overriding the global client setting. You must edit these specific modules to remove or increase the hardcoded value.
Can I set different timeouts for different platforms?
Holehe does not support per‑platform timeout flags via the CLI. To use different timeouts, you must edit the individual module files (e.g., caringbridge.py or onlinesequencer.py) and adjust the timeout parameter in the specific client.get() or client.post() call.
Does increasing the timeout slow down Holehe?
Yes. A higher global timeout means the tool will wait longer for unresponsive servers before giving up, which increases total execution time. Use the shortest timeout that reliably captures results from your target sites to maintain efficiency.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →