How to Set a Custom Timeout for the Holehe CLI

Use the -T or --timeout flag followed by the desired number of seconds (e.g., holehe -T 30 user@example.com) to override the default 10‑second limit for every HTTP request.

Holehe is an open‑source OSINT tool maintained in the megadose/holehe repository that verifies whether an email address is registered across hundreds of online services. When running the CLI, you can adjust the network patience level to suit slow proxies, throttled connections, or aggressive scanning schedules.

Where the Timeout Argument Is Defined

The command‑line interface registers the timeout option inside holehe/core.py. The ArgumentParser adds a -T short flag and a --timeout long flag that capture an integer value:


# holehe/core.py (around line 194-195)

parser.add_argument("-T", "--timeout", type=int, default=10,
                    help="Timeout in seconds for each HTTP request")

If you omit the flag, argparse stores the default value of 10 in the args.timeout attribute.

How the Timeout Is Applied to the HTTP Client

After parsing arguments, Holehe initializes a shared httpx.AsyncClient and injects the timeout directly into its constructor:


# holehe/core.py (around line 208-213)

async with httpx.AsyncClient(timeout=args.timeout) as client:
    # All modules receive this client instance

    results = await launch_module(module, client, email)

Every module in holehe/modules/ reuses this single client instance, guaranteeing that each outgoing request respects the identical timeout threshold you specified.

Practical Usage Examples

The timeout value represents seconds per individual HTTP request, not the total duration of the scan. You can combine the flag with any other Holehe options.


# Default behavior (10 seconds per request)

holehe user@example.com

# Increase timeout for slow or tor connections

holehe --timeout 30 user@example.com

# Shorthand syntax for quick adjustments

holehe -T 5 user@example.com

# Combine with verbose output and module selection

holehe -v -T 20 -m twitter,github user@example.com

Summary

  • Flag syntax: Supply -T <seconds> or --timeout <seconds> when invoking the CLI.
  • Default value: Holehe waits 10 seconds per request if the flag is absent.
  • Code location: The argument is defined in holehe/core.py and fed into the httpx.AsyncClient used by all service modules.
  • Scope: The setting governs individual HTTP request lifespans, not the aggregate runtime of the tool.

Frequently Asked Questions

What is the default timeout for Holehe?

The default timeout is 10 seconds, hard‑coded in the argument parser inside holehe/core.py. If a target service fails to respond within this window, the underlying httpx client raises a timeout exception and the module records the failure.

Can I assign different timeouts to different modules in one run?

No. Holehe instantiates a single httpx.AsyncClient with one global timeout value that is shared across every enabled module during the execution. To test the same email with varying timeouts, you must run the CLI multiple times with different -T values.

Does increasing the timeout guarantee that Holehe will find more accounts?

Not necessarily. A longer timeout only gives slower servers more time to reply; it does not change the logic of the modules. If a platform explicitly blocks or drops the request, Holehe will still report a negative result regardless of how long it waits.

Is there an upper limit for the timeout value?

The CLI accepts any positive integer that Python can parse as an int and passes it directly to httpx.AsyncClient. While Holehe imposes no artificial ceiling, extremely high values (e.g., 300 seconds) may cause the process to appear hung or trigger OS‑level connection timeouts before the application layer ever sees the response.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →