# How to Increase the Timeout for holehe Checks: Command-Line and Scripting Guide

> Learn how to increase holehe timeout checks using the -T or --timeout flag. Speed up your OSINT investigations with this simple command-line and scripting guide for megadose/holehe.

- Repository: [Palenath/holehe](https://github.com/megadose/holehe)
- Tags: how-to-guide
- Published: 2026-08-22

---

**Use the `-T` or `--timeout` flag followed by the number of seconds (e.g., `holehe -T 30 email@example.com`) to override the default 10-second limit when running OSINT checks with the megadose/holehe tool.**

The holehe OSINT framework performs asynchronous email enumeration across hundreds of platforms using `httpx.AsyncClient`. By default, the tool abandons requests after 10 seconds, which can cause false negatives on slow networks or heavily rate-limited endpoints. Increasing the timeout for holehe checks requires no source code modifications; you can configure it directly via CLI arguments parsed in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py).

## Configuring the Timeout via Command Line

The global timeout parameter is defined at **line 194** in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py), where the argument parser accepts the `-T` / `--timeout` option. At **line 213**, this value instantiates the shared `httpx.AsyncClient` used by all modules in the `holehe/modules/` directory.

To increase the timeout, append the flag followed by an integer representing seconds:

```bash
holehe -T 30 example@example.com

```

This command sets the maximum wait time to 30 seconds for every HTTP request issued during the check cycle.

### Basic Usage Examples

- **Standard 20-second timeout**

  ```bash
  holehe -T 20 user@example.com
  ```

- **Extended 60-second timeout for slow services**

  ```bash
  holehe --timeout 60 user@example.com
  ```

## Embedding Timeout Configuration in Automation

When integrating holehe into Python scripts or CI/CD pipelines, pass the timeout flag as a string element in your subprocess call to ensure proper argument parsing.

### Python Subprocess Implementation

```python
import subprocess

email = "user@example.com"
timeout_secs = 25
subprocess.run(["holehe", "-T", str(timeout_secs), email])

```

This approach respects the CLI interface defined in the source code while allowing dynamic timeout configuration based on runtime conditions.

## How the Timeout Propagates Through the Codebase

According to the megadose/holehe source code, the timeout value flows through the following path:

1. **CLI Parsing**: Line 194 in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) captures the `--timeout` argument with a default value of 10.
2. **Client Initialization**: Line 213 passes this value to `httpx.AsyncClient(timeout=timeout_value)`.
3. **Module Consumption**: All check modules in `holehe/modules/` receive the same client instance, ensuring consistent timeout behavior across every platform check.

Because the timeout is set at the client level during initialization, it applies globally to every HTTP request made during a single holehe execution.

## Summary

- **Default behavior**: holehe uses a 10-second timeout for all HTTP requests via `httpx.AsyncClient`.
- **Configuration method**: Use `-T` or `--timeout` followed by seconds (e.g., `-T 30`) when invoking the tool.
- **Implementation location**: The argument is parsed at line 194 and applied at line 213 in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py).
- **Global scope**: The timeout value affects all modules uniformly because they share a single client instance.
- **Scripting compatibility**: Pass the flag as a string in subprocess calls to maintain CLI compatibility.

## Frequently Asked Questions

### What is the default timeout for holehe checks?

The default timeout is **10 seconds**, hardcoded in the CLI argument parser in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py). This value is passed directly to the `httpx.AsyncClient` constructor unless overridden by the user.

### Does increasing the timeout affect all modules equally?

Yes. Because [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) instantiates a single `httpx.AsyncClient` instance at line 213 and shares it across all modules in `holehe/modules/`, the timeout you specify applies universally to every platform check performed during that run.

### Can I set different timeouts for specific websites?

No. The current architecture in megadose/holehe supports only a global timeout parameter. The shared client instance does not support per-module or per-domain timeout overrides without modifying the individual module files to instantiate separate clients.

### What happens if a request exceeds the specified timeout?

When a request exceeds the timeout limit, `httpx` raises a `TimeoutException`, which holehe catches and interprets as a failed or unavailable check for that specific platform. The tool logs the timeout and continues processing the remaining modules rather than terminating the entire scan.