theHarvester

4.11.1

Find emails, subdomains and names for a domain

  • Verified 22 Sept 2026
  • git fd832de
  • GPL-2.0
  • Optional API keys

Install and run

  1. otlite install theharvester

    Installs github.com/laramies/theHarvester at fd832de into its own virtualenv. otlite lists what it will install and asks before it starts.

  2. otlite run theharvester -- d:example.com

    theHarvester receives theHarvester --domain example.com

No otlite yet? Install it in one line
curl -fsSL https://get.otinstaller.com/otlite | sh

Linux and macOS, no Docker. It uses your Python and pipx when both are there, and otherwise brings its own Python. About otlite · otlite docs

Before you run it

  • Needs Python 3.12 or newer. Its current release, 4.11.1, requires it. otlite checks your Python before installing and says which version to use; otlite doctor lists the tools your Python can't run.

What it takes

Typed inputs after -- become theHarvester's own arguments. Anything else after -- passes through unchanged, so every option of the tool still works.

InputWith otlitetheHarvester receives
Domaind:otlite run theharvester -- d:example.comtheHarvester --domain example.com

API keys

All optional: theHarvester runs without them and uses each one you set. otlite keys set asks for the value without showing it and saves it in ~/.otlite/.env, readable only by you. Each tool receives only the keys it declares, and values never appear in logs or results.

KeyNeededSet it
SHODAN_API_KEYOptionalotlite keys set SHODAN_API_KEY
HUNTER_API_KEYOptionalotlite keys set HUNTER_API_KEY

What a run leaves

Every run is saved under results/ where you run otlite (or --output, or OTLITE_RESULTS_DIR): what the tool printed, a sidecar with how it ran, and an envelope.

  • results/theharvester/example.com/<time>_theharvester_example.com_<run id>.txt
  • results/theharvester/example.com/<time>_theharvester_example.com_<run id>.meta.json
  • results/theharvester/example.com/<time>_theharvester_example.com_<run id>.envelope.json
{
  "envelope": 1,
  "tool": "theharvester@4.11.1",
  "runtime": "otlite",
  "input": { "target": "example.com" },
  "case": null,
  "started_at": "…", "ended_at": "…", "duration_ms": …,
  "exit_code": 0,
  "status": "complete",
  "entities": [{ "type": "url", "value": "…" }, …],
  "warnings": [],
  "output": { "path": "results/theharvester/example.com/<time>_theharvester_example.com_<run id>.txt", "sha256": "…", "bytes": … }
}
The envelope's shape, the same for every tool; values elided. Its entities are the emails, domains, IP addresses and URLs found in the output, or the tool's own when it prints them.
otlite results --tool theharvester
otlite extract theharvester
otlite diff theharvester example.com

List the saved runs, pull out every indicator, or compare the two latest runs against the same target.

With other tools

These run it with every other installed tool that takes the same input, a few at a time, and save each run:

otlite run --all d:example.com
otlite auto example.com

Also on the OTInstaller registry

Prefer a sandbox? osintverse-community/theharvester runs theHarvester with ot: pinned and scanned, in a locked-down container with no access to your files and no network unless it needs one. Linux, macOS and Windows, with Docker or Podman.

ot install osintverse-community/theharvester

Related tools

All 47 tools →
Esc

Try

↑ ↓ to move↵ to open