# Where Are the Website Modules Located in the Holehe Repository?

> Find website modules in the Holehe repository within the holehe modules directory. Discover where service-specific check modules are organized for easy access and development.

- Repository: [Palenath/holehe](https://github.com/megadose/holehe)
- Tags: internals
- Published: 2026-09-10

---

**All website-specific check modules in Holehe are stored under the `holehe/modules/` directory, categorized by service type.**

The open-source OSINT tool Holehe by megadose organizes every site-specific check into a modular architecture. Understanding where these website modules are located is essential for developers looking to extend functionality or debug specific service checks.

## The `holehe/modules/` Directory Structure

The `holehe.modules` package serves as the central repository for all service-specific implementations. Rather than placing all checks in a single folder, the codebase organizes modules into logical subdirectories based on the platform's primary function.

### Social Media and Entertainment Platforms

Social media account checks reside in `holehe/modules/social_media/`. This directory contains implementations for major platforms:

- [`twitter.py`](https://github.com/megadose/holehe/blob/main/twitter.py) – Handles Twitter/X account verification
- [`instagram.py`](https://github.com/megadose/holehe/blob/main/instagram.py) – Instagram profile lookups  
- [`facebook.py`](https://github.com/megadose/holehe/blob/main/facebook.py) – Facebook existence checks

Music and audio service modules live in `holehe/modules/music/`, including [`spotify.py`](https://github.com/megadose/holehe/blob/main/spotify.py), [`soundcloud.py`](https://github.com/megadose/holehe/blob/main/soundcloud.py), and [`lastfm.py`](https://github.com/megadose/holehe/blob/main/lastfm.py).

### Communication and Professional Services

Email provider checks are grouped under `holehe/modules/mails/`:

- [`google.py`](https://github.com/megadose/holehe/blob/main/google.py) – Gmail account verification
- [`yahoo.py`](https://github.com/megadose/holehe/blob/main/yahoo.py) – Yahoo Mail checks
- [`protonmail.py`](https://github.com/megadose/holehe/blob/main/protonmail.py) – ProtonMail account lookups

Job and freelancing platforms occupy `holehe/modules/jobs/`, featuring [`freelancer.py`](https://github.com/megadose/holehe/blob/main/freelancer.py), [`seoclerks.py`](https://github.com/megadose/holehe/blob/main/seoclerks.py), and [`coroflot.py`](https://github.com/megadose/holehe/blob/main/coroflot.py).

### Specialized Categories

The repository includes additional categorical directories:

- `holehe/modules/forum/` – Community forums like [`thevapingforum.py`](https://github.com/megadose/holehe/blob/main/thevapingforum.py), [`onlinesequencer.py`](https://github.com/megadose/holehe/blob/main/onlinesequencer.py), and [`mybb.py`](https://github.com/megadose/holehe/blob/main/mybb.py)
- `holehe/modules/transport/` – Travel services such as [`blablacar.py`](https://github.com/megadose/holehe/blob/main/blablacar.py)
- `holehe/modules/learning/` – Educational platforms including [`duolingo.py`](https://github.com/megadose/holehe/blob/main/duolingo.py) and [`quora.py`](https://github.com/megadose/holehe/blob/main/quora.py)
- `holehe/modules/medical/` – Health sites like [`caringbridge.py`](https://github.com/megadose/holehe/blob/main/caringbridge.py) and [`sevencups.py`](https://github.com/megadose/holehe/blob/main/sevencups.py)
- `holehe/modules/porn/` – Adult content platforms including [`pornhub.py`](https://github.com/megadose/holehe/blob/main/pornhub.py) and [`xnxx.py`](https://github.com/megadose/holehe/blob/main/xnxx.py)
- `holehe/modules/company/` – Personal branding sites like [`aboutme.py`](https://github.com/megadose/holehe/blob/main/aboutme.py)

## Dynamic Module Loading in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py)

The core application logic in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) discovers and imports these modules dynamically. Instead of maintaining static import statements, the framework iterates over the `holehe/modules/` directory structure to load available checks at runtime. Each module implements a single class that knows how to query the corresponding website for possible data leaks.

```python

# Example: Importing a specific social media module

from holehe.modules.social_media import twitter

# Instantiate and search

result = twitter.Twitter().search("example_user")
print(result)

```

```python

# Example: Running all available modules via the core

from holehe.core import Holehe

holehe = Holehe()
results = holehe.run("example_user")
for module_name, data in results.items():
    print(f"{module_name}: {data}")

```

## Extending Holehe with New Website Modules

To add support for a new service, create a Python file in the appropriate subdirectory under `holehe/modules/`. Each module must implement a class with a standardized interface that the core can instantiate and call. The dynamic loader in [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) automatically detects new files placed in these directories without requiring modifications to the main application code.

## Summary

- **Primary location**: All website modules reside under `holehe/modules/` in the megadose/holehe repository
- **Categorization**: Subdirectories organize modules by service type (social_media, mails, jobs, forum, etc.)
- **Key files**: [`twitter.py`](https://github.com/megadose/holehe/blob/main/twitter.py), [`spotify.py`](https://github.com/megadose/holehe/blob/main/spotify.py), [`google.py`](https://github.com/megadose/holehe/blob/main/google.py), and [`freelancer.py`](https://github.com/megadose/holehe/blob/main/freelancer.py) represent specific implementations in their respective category folders
- **Dynamic loading**: [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) automatically discovers modules by scanning the package structure at runtime
- **Extensibility**: New checks require only adding a properly formatted Python file to the appropriate category folder

## Frequently Asked Questions

### What is the exact file path for Holehe's Twitter module?

The Twitter checking module is located at [`holehe/modules/social_media/twitter.py`](https://github.com/megadose/holehe/blob/main/holehe/modules/social_media/twitter.py). This file implements the `Twitter` class that queries the service for account existence according to the source code structure.

### How does Holehe automatically import website modules?

The [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) file contains logic that iterates over the `holehe/modules/` package structure. It dynamically imports each Python file it discovers, eliminating the need for manual registration of new modules in the core application.

### Can I add custom website modules to Holehe without modifying core files?

Yes. Create a new Python file in the appropriate subdirectory under `holehe/modules/` (such as `holehe/modules/social_media/` for a new social platform). As long as the module follows the expected class structure, [`holehe/core.py`](https://github.com/megadose/holehe/blob/main/holehe/core.py) will automatically detect and load it during runtime.

### Where are email service modules located in Holehe?

Email provider modules are stored in `holehe/modules/mails/`. This directory includes [`google.py`](https://github.com/megadose/holehe/blob/main/google.py) for Gmail, [`yahoo.py`](https://github.com/megadose/holehe/blob/main/yahoo.py) for Yahoo Mail, and [`protonmail.py`](https://github.com/megadose/holehe/blob/main/protonmail.py) for ProtonMail verification checks.