otlite · no Docker needed
One CLI for popular open-source OSINT tools
We pick, pin and test the tools, so you don't have to. One command installs, runs, updates or removes any of them, each in its own virtualenv, with every result saved and ready for scripts and AI agents. For Linux and macOS.
Install and first run
curl -fsSL https://get.otinstaller.com/otlite | shThe installer finds Python 3.10 or newer and installs pipx if it is missing; with pipx already there, pipx install otlite does the same. Debian, Ubuntu and Kali packages, and other ways to install, are in the otlite docs.
otlite install sherlockInstalls each tool into its own virtualenv, at the version otlite pins and tested.
otlite run --all u:johndoeRuns every installed tool that takes a username, in parallel, and saves each run.
otlite results --sort timeLists every saved run, newest first; filter by tool, target, case, status or age.
One command for every tool
Install, run, update and remove any tool in the catalog the same way. Typed inputs such as u:johndoe and e:ada@example.com become each tool's own flags, so you never look up a tool's options again.
otlite update --allResults you can use
Every run is saved by tool, target and time with a JSON sidecar. otlite results sorts and filters them, otlite extract pulls out emails, domains, IPs and URLs, and otlite diff shows what changed since the last run.
otlite results --since 7d --sort durationBuilt for scripts and AI agents
Every run is also saved as an envelope in the same JSON shape for every tool, with the entities it found. Every command takes --json, nothing prompts with --yes or without a terminal, and exit codes are stable.
otlite results --status failed --jsonAll API keys in one place
otlite keys set asks for the value without showing it and stores it in one file, ~/.otlite/.env, readable only by you. Each tool receives only the keys it declares, and key values are never written to logs or results.
otlite keys set SHODAN_API_KEYEvery tool in its own virtualenv
Tools never share or break each other's dependencies, and none of them touch your system Python. Removing a tool removes all of it.
otlite remove sherlockCurated, so you can relax
A tool is listed only when it installs cleanly and passes a smoke test, and every release pins the versions it was tested with. Attack and harassment tools are excluded by policy.
otlite list
47 tools, by what they take
- 24Username
- 19Domain
- 14Email
- 11URL
- 7IP address
- 5Name
- 4Phone
Sherlock, Maigret, Holehe, theHarvester, GHunt, SpiderFoot and more; a tool can take more than one kind of input. All 47 tools, each with a command to try →
otlite or ot?
- otlite
- Linux and macOS (Ubuntu, Debian, Arch, Kali, macOS 14). Tools install with pip or git and run on your machine, in a virtualenv but not in a sandbox. No Docker, no account.
- ot
- Linux, macOS and Windows. Every tool in the registry is signed, scanned and run in a locked-down container with no host files and no network unless it needs one. Needs Docker or Podman.
Both use the same typed inputs and the same results/ folder, so you can switch later. Full comparison →