Community transforms for OGI, an open source OSINT and link analysis tool.
Each directory under transforms/ is an independently installable transform. The OGI CLI and Transform Hub UI read index.json (auto-generated on each merge) to discover what's available.
Use the CLI from the OGI backend project:
cd backend
uv sync
uv run ogi transform search shodan
uv run ogi transform install shodan-host-lookupOr use the Transform Hub UI inside OGI.
Community transforms in this registry inherit OGI's host-side transform cap overrides. Operators can centrally clamp or remove common max settings such as max_results, max_urls, max_links, max_content_chars, or timeout_seconds with the backend env var:
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=50,max_urls=25,max_links=40To remove a cap in a local deployment:
OGI_TRANSFORM_SETTING_MAX_OVERRIDES=max_results=none,max_content_chars=noneThis is configured in the main OGI app, not in this registry repo.
| Category | Transforms |
|---|---|
| DNS | domain-to-ip, domain-to-mx, domain-to-ns, ip-to-domain, whois-lookup |
| Certificates | domain-to-certs, cert-transparency |
| domain-to-emails, email-to-domain | |
| IP | ip-to-asn, ip-to-geolocation |
| Social | username-search |
| Hash | hash-lookup |
| Web | domain-to-urls, url-to-headers, url-to-links, url-to-content, content-to-iocs |
| Infrastructure | organization-to-team-members |
- Fork this repo
- Add your transform under
transforms/<category>/<slug>/ - Include
plugin.yaml,README.md, andtransforms/*.py - Declare required secrets in
api_keys_required, nottransform_settings - Open a PR - CI validates automatically
When adding capped settings, prefer common names like max_results, max_urls, max_links, max_content_chars, or timeout_seconds unless the setting is genuinely transform-specific. That keeps operator-side overrides predictable across the ecosystem.
See CONTRIBUTING.md for the full guide.
AGPLv3