Skip to main content

IOCForge

Offline threat indicator extraction and normalization for incident responders, threat-intelligence analysts, and OSINT workflows.

Features: extracts IPv4 addresses, domains, HTTP(S) URLs, MD5, SHA-1, and SHA-256 hashes; refangs common hxxp, [.], (.), and [:] notation; deduplicates; exports JSON, CSV, and basic STIX 2.1 Indicator bundles. Does not make network requests, scan hosts, or enrich indicators.

Installation

Python 3.10+:

python -m pip install -e ".[dev]"

Examples

iocforge extract report.txt
iocforge extract report.txt --format csv --output indicators.csv
iocforge extract report.txt --format stix --output indicators.stix.json
cat report.txt | iocforge extract - --include-private
python -m iocforge extract report.txt

Library API

from iocforge import extract, export_json
print(export_json(extract("Observed hxxps://bad[.]example/path and 8.8.8.8")))

Development

python -m pytest -q
ruff check .
python -m build

Security and limitations

  • Only process reports you have permission to handle. Reports may contain sensitive URLs or identifiers; review output before sharing.
  • No automatic threat verdict: a matched indicator is not proof of malicious activity.
  • Domain parsing is heuristic (not Public Suffix List-aware). IPv6, emails, and nested URL artifacts are not supported in v0.1.0.
  • URLs containing embedded credentials are skipped. URL fragments are removed.
  • By default, non-global IPv4 addresses are excluded; --include-private includes them.
  • STIX output is a minimal Indicator bundle, not a complete threat-intelligence knowledge model. Consumers should validate it against their own STIX tooling.
  • Extracted indicators are never queried or contacted by IOCForge.

Publishing

Choose an available PyPI distribution name (currently configured as iocforge-cli), update project metadata, and configure PyPI Trusted Publishing for your repository. The release workflow publishes only on GitHub Releases.

Copyright © 2026 Noir Stack LLC. Licensed under the Proprietary Software License — Free Use, No Modification.

Metadata

Release files for iocforge-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iocforge-cli 0.1.0
File Size Uploaded Provenance Actions
iocforge_cli-0.1.0.tar.gz 6.5 kB Without provenance Details for iocforge_cli-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for iocforge-cli 0.1.0
File Interpreter ABI Platform Actions
iocforge_cli-0.1.0-py3-none-any.whl Python 3 none any Details for iocforge_cli-0.1.0-py3-none-any.whl

Total release size: 13.6 kB

Release files / iocforge_cli-0.1.0.tar.gz

Download URL iocforge_cli-0.1.0.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c8271927691a6962bbcfc810a342066dabc18d0c2861f9b21751adcc55251633
BLAKE2b-256 checksum
How to use checksums
02cf94aeae85a6efa9e9acee0afd7e4ac41cf9f1238eeb0c46a379faf4bbe08d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / iocforge_cli-0.1.0-py3-none-any.whl

Download URL iocforge_cli-0.1.0-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e83c841bac53626e2483bcc0dc371fad7bd53822b06b9b2c0b680c9f5e4129d2
BLAKE2b-256 checksum
How to use checksums
8b81f171f3b78d13cb9f7137a940b4b76f0cc4a174cd083d0d9e5fd312d86ca9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for iocforge-cli 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page