# Ominis OSINT: a web and username search tool built on search scraping

> Ominis OSINT is a Python OSINT tool that gathers public mentions of a query or a username by querying search engines, with country, language and date range filters, a threaded username search and proxy rotation. The engineering is mostly in the request layer, and the tool's own readme has a banner announcing that development is about to restart.

**AnonCatalyst/Ominis-OSINT** — This Python application is an OSINT (Open Source Intelligence) tool called "Ominis OSINT - Web Hunter." It performs online information gathering by querying Google for search results related to a user-inputted query. The tool extracts relevant information such as titles, URLs, and potential mentions of the query in the results.

- Repository: https://github.com/AnonCatalyst/Ominis-OSINT
- Website: https://pypi.org/project/Ominis-OSINT/
- Stars: 640 · Forks: 65
- Language: Python
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/anoncatalyst-ominis-osint

## Two searches, one tool, and a readme that announces a restart

Ominis OSINT, Web Hunter, is a Python application for open source intelligence gathering. The project description is precise about the mechanism: it performs online information gathering by querying Google for search results related to a user input query, and extracts titles, URLs and potential mentions of that query in the results.

The second mode is username search, which searches a list of URLs for a specific username and reports the URL and HTTP status code for each one. The README describes the information obtained as discovering online mentions of a query or username and identifying potential social profiles and forums.

What stands out first is the state of the project. The README opens with a line saying the project will re-enter development and that the maintainer will be expanding it, and the recent releases are dated 2024, with the last push on 2026-10-20. The package version in setup.py is 0.4.8, while the tagged release list has v0.4.9, so the working tree and the published version are not aligned.

The tool also has a distribution route that is unusual for a command line program. Three GitHub Actions workflows let you run it without installing anything: a Web Search workflow, an Ominis Search workflow and a Username Search workflow, each runnable straight from the repository.

The licence is MIT, and the package is published on PyPI as Ominis-OSINT with a console script entry point called ominis.

## The request layer is where the real behaviour lives

The dependency list in setup.py describes the design more honestly than the marketing prose does.

There are three HTTP stacks, which is unusual. requests and requests-html handle synchronous calls, httpx with the http2 extra handles another style of call, and aiohttp handles the asynchronous ones. Beautiful Soup and lxml with the html clean packages do the parsing, tenacity is the retry library, and tqdm draws the progress bars in a terminal.

The search side is split across google-search-results and serpapi, which means the tool can reach Google either directly or through the SerpAPI service. There is also fake_useragent for generating user agent strings, and the requirements file adds aiohttp-socks and python-socks with the asyncio extra, which is how the proxy pool is wired in.

Two of those pins carry comments explaining themselves. anyio is marked as not directly required and pinned by Snyk to avoid a vulnerability, and dnspython is marked the same way. That is a small sign of how the project handles supply chain noise, since a scanner pulling transitive dependencies into the requirements file is a common source of churn.

The requirements file also pins aggressively, with exact versions for beautifulsoup4, colorama, requests, google-search-results, httpx, tenacity, requests_html, aiohttp, urllib3, validators and tqdm, and includes PyQt6, which points at the graphical interface the README describes as a redesigned interface. The ipwhois and dnspython entries suggest there is domain and address resolution in the pipeline as well as pure search scraping.

## Proxies, random user agents and mimicking human behaviour

This is the part of the tool that needs careful reading, because the README describes it as a feature set.

The proxy validation feature validates proxies for secure and efficient web requests, using a pool of validated proxies to mitigate the risk of IP blocking and improve the reliability of the results. On top of that there is a randomised user agent pool, and the README describes a human-like behaviour mimicking feature whose stated purpose is to avoid detection by anti-bot mechanisms by randomising the user agent for each request, so that requests appear more natural and are less likely to be flagged as automated activity.

There is also a threading optimisation for faster execution during username searches, which is what you would expect from a tool that fires the same request at many URLs and wants the round trips to overlap.

The practical reading is that this tool is built to make a large volume of search and profile requests without the pattern looking automated. That is a legitimate need in some defensive research, where you are watching for a new account impersonating your brand across many sites and a single request rate is not enough coverage. It is also exactly the behaviour that a web platform's terms of service prohibit, and that a site can and does act on with a block.

So the honest framing is that the tool is designed to gather large amounts of public information efficiently, and the anti-detection measures are what make that scale possible. Anyone using it against infrastructure they do not own is making a legal and ethical problem for themselves, and the MIT licence on the code says nothing about that.

## Installation, a console script, and a container

The package is a standard setuptools project, and the entry point is a console script:

```python
    entry_points={
        'console_scripts': [
            'ominis=ominis:run',
        ],
    },
```

The package name is Ominis-OSINT, the Python requirement is 3.9 or newer, and the package_data includes the JSON and text files under ominis_src, which is where the configuration and the URL lists for username search will live. The top level of the repository also carries an ominis.py entry script, an ominis.sh wrapper, install.sh and install.bat for Windows, and an installer.nsi with a setup.iss file, which is an NSIS installer script.

The Dockerfile is the other installation route, and it is a two stage style build that stays on the slim Python image:

```dockerfile
FROM python:3.9-slim as base
```

The system dependencies installed are the ones you would expect for an HTML and SSL stack: build-essential, libffi-dev, libssl-dev, libxml2-dev, libxslt-dev, zlib1g-dev and curl. The requirements file is copied before the application code so that the dependency layer is cached, and the entry point is python with the command ominis.py.

The repository also contains a Results directory, which suggests the tool writes its output somewhere a user can find, and a config directory, plus dir-layout.txt, which is the kind of file a project keeps to document where things are expected to go. The Ominis_OSINT.egg-info directory at the root indicates the package has been built in place at some point.

## The framing, and the parts that promise more than the code shows

The README is written in a promotional register, and it is worth separating what the code does from how the README describes it.

The feature list and the description in setup.py share the same language, with claims of a premier digital reconnaissance solution, wide ranging capabilities, thorough data gathering, sophisticated analysis and a list of seven targetable areas from identifying potential threats through to uncovering financial insights and mapping digital footprints.

Read against the actual dependency list, the tool is a scraper with three HTTP clients, a search backend, a proxy pool and a progress bar. There is no analysis engine, no entity resolution, no correlation across sources and no reporting layer in the requirements. The seven use cases are descriptions of what a person might do with the output, not capabilities the tool implements.

That is not a criticism so much as a reading instruction. The output is a list of results, and the value is in what you do with them.

The one place where the README and the code line up exactly is in the setup.py long description, which repeats the same marketing text as the project page, and in the description field, which is more restrained and useful: discover online mentions of a query or username, and identify potential social profiles and forums.

Two other structural points. The tool is one of a family of similar OSINT utilities, and the repository topics include username, username-checker, finder and forensics, which tells you the comparison set is a crowd of small Python scripts rather than a serious platform. And the support channel is a Discord server, with contributions handled through the usual fork, change and pull request loop, on a project whose declared future direction is an expansion that has not yet happened.

## Conclusion

Adopt Ominis OSINT if you are doing defensive research on your own organisation's footprint or investigating accounts you are authorised to look into, and you want a single tool that covers both a query sweep and a username sweep. Do not adopt it for use against people who have not consented to being investigated, because the tool exists to find a person's public profiles and a proxy pool does not change that. Before you run it, check which search backends it is actually hitting, since a SerpAPI key changes the traffic pattern completely, and read the licence and the code before pointing it at anyone.

## FAQ

### What does Ominis OSINT actually do?

It queries Google for search results related to a query you provide and extracts titles, URLs and potential mentions of that query, and it can also search a list of URLs for a specific username and report the URL and HTTP status code for each. The information obtained is described as online mentions of a query or username and potential social profiles and forums.

### How do I install Ominis OSINT?

It is published on PyPI as Ominis-OSINT with a console script named ominis, and the repository also ships install.sh and install.bat, an NSIS installer built from setup.iss, and a Dockerfile based on python:3.9-slim. You can also run one of the three GitHub Actions workflows without installing anything locally.

### Does Ominis OSINT use proxies and random user agents?

Yes. The README describes a proxy validation feature that uses a pool of validated proxies to mitigate the risk of IP blocking, plus randomised user agents and a human-like behaviour mimicking feature intended to avoid detection by anti-bot mechanisms. The requirements include aiohttp-socks, python-socks and fake_useragent to support this.

### What does a username search in Ominis OSINT return?

The username search checks a list of URLs for a specific username and returns detailed results with the URL and the HTTP status code, running the checks in parallel with threading to keep the search fast.

### Can I filter Ominis OSINT search results by country or date?

Yes. The Google search filtering feature lets you use the search engine's own filtering options for country, language and date range, alongside a redesigned interface intended to work for both novice and experienced users.

## Sources

- [AnonCatalyst/Ominis-OSINT on GitHub](https://github.com/AnonCatalyst/Ominis-OSINT)
- [License: MIT](https://github.com/AnonCatalyst/Ominis-OSINT/blob/main/LICENSE)
- [Project website](https://pypi.org/project/Ominis-OSINT/)
- [README](https://github.com/AnonCatalyst/Ominis-OSINT/blob/main/README.md)
- [Releases](https://github.com/AnonCatalyst/Ominis-OSINT/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/anoncatalyst-ominis-osint
