Skip to main content

Universal offensive-security engine, generic engine with knowledge as data

Project description

 ██████╗ ██████╗ ███████╗ ██████╗ ██████╗
██╔═══██╗██╔══██╗██╔════╝██╔═══██╗██╔══██╗
██║   ██║██████╔╝█████╗  ██║   ██║██████╔╝
██║   ██║██╔═══╝ ██╔══╝  ██║   ██║██╔══██╗
╚██████╔╝██║     ██║     ╚██████╔╝██║  ██║
 ╚═════╝ ╚═╝     ╚═╝      ╚═════╝ ╚═╝  ╚═╝

A universal offensive-security engine. One generic engine drives every scenario, web, internal network, AI agents, phishing. You change scenario by swapping data, plugins, and knowledge, never by editing the engine.

opfor mirrors codejury's "generic engine, knowledge as data" decoupling. The difference is that codejury reads code and judges, while opfor acts on live targets: it grows a live situation graph, gates every action by authorized scope, survives async waits, and keeps an audit ledger.

Layers

Layer What it owns Form
Capabilities How to reach a target and report the raw facts Capability, one tool per verb
Planner What to try next, gated on facts RuleSet under a scenario
Knowledge What a finding is and how severe Markdown the triage reads
Triage The verdict, the only place findings are minted Rule-based or model-backed
Kernel The blackboard, phase spine, scope, ledger, budget opfor/core/

The kernel is generic and names no host, contract, or person. A scenario is a plugin under opfor/scenarios/<name>/ that supplies capabilities, a planner, a triage, a declared terminal phase, and a knowledge/ tree.

Install

pip install opfor

The base install is keyless. Triage runs on the operator's Claude Code subscription by default, and a vendor API is used instead when a key is set. For the vendor SDKs install an extra, opfor[anthropic] or opfor[openai].

Use

opfor scenarios
opfor run attacksurface --root example.com

Develop

python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
pytest

See AGENTS.md for the architecture and the non-negotiable invariants.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opfor-0.2.0.tar.gz (172.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opfor-0.2.0-py3-none-any.whl (172.1 kB view details)

Uploaded Python 3

File details

Details for the file opfor-0.2.0.tar.gz.

File metadata

  • Download URL: opfor-0.2.0.tar.gz
  • Upload date:
  • Size: 172.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opfor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cce181aded4effc7f12b849c38853cfa4eb947805f919217be5d5e9f6dde32a5
MD5 2a196b9f18590dccd795de08601d6a6d
BLAKE2b-256 97816caa62b8288776acc1a3ad7b1e0bd56f3ee752f54e23b7d0513883d98f85

See more details on using hashes here.

Provenance

The following attestation bundles were made for opfor-0.2.0.tar.gz:

Publisher: publish.yml on aiseclabs/opfor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opfor-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: opfor-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 172.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opfor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d40ed8ed047393baf975c29670a7b17ef65b9eb6a9ef3ee253500969e705fd6
MD5 4dfc3f7214ee5af28a423675009628d5
BLAKE2b-256 4c3349cc295ad19f82fd11eced98f9db7c43efad6e5e4b6fae43a1153aedd0f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for opfor-0.2.0-py3-none-any.whl:

Publisher: publish.yml on aiseclabs/opfor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page